Git基础命令操作:创建本地分支、更新合并、远程提交

[toc]

介绍

Git是一个开源的分布式版本控制系统,现在基本上是软件开发、深度学习等各种与敲代码有关的项目都要是Git来完成版本管理了。 当然还有其他的版本控制工具,像是SVN等,但是现在基本上都是老一批的程序员大叔们在用了。

为什么要用Git

软件开发,深度学习调参,代码肯定会有各种各种的改变,说不定这个版本还能运行,下个版本就GG了,与其找半天bug甚至根本找不出来还不如回滚旧版本。

Git有两种使用方式,Git Bash 、Git GUI

  • Git Bash

对于新手特别是没接触过linux的童鞋来说,一开始就用Git bash可能会挺蓝瘦。但是,我建议用Git Bash

  • Git GUI

    相比Git Bash,Git GUI的界面就没那么简洁啦(git bash界面确实简洁,就用户名+命令行)

    功能来说Git GUI也确实没有Git Bash灵活,唯一的好(坏)处就是不用敲命令行

建议不管打算用Git Bash还是Git GUI都先了解下Git Bash的基础命令以便更快速地了解分布式版本控制,这里先只介绍Git Bash的基础命令

安装Git

下载并安装Git,在我的电脑-鼠标右键添加属性-高级系统设置-环境变量-系统变量-Path处添加变量,例如安装路径是D:\Git,那么就添加变量

D:\Git\usr\bin\

D:\Git\usr\bin\ssh-keygen.exe

这样就能在电脑的任意文件夹位置打开git

本地

新建

在你存放项目代码的文件夹,输入代码新建Git本地仓库

  git init

新建之后会出现一个git文件夹,并且存放项目代码的文件夹会出现一个绿色的勾,表示已经同步到本地分支;命令行用户最后面有个master,表示在本地的master分支。

此时可以通过命令git branch查看本地分支

 git branch  #查看本地分支
 git branch -r  #查看远程分支
 git branch -a  #查看所有分支

在这里先不介绍远程,先学会本地版本控制

如果需要创建其他分支,可以用切换分支的命令加上参数创建分支

  git checkout dev #切换到本地的dev分支
  git checkout -b dev #创建并切换到本地的dev分支

更新

修改文件后,绿色的勾会变成红色的感叹号,表示更新到git的分支(如果切换到了master分支,就表示该文件没有更新到master分支,如果切换到dev分支就表示该文件没有更新到dev分支)

  git add -A  #将所有文件添加到暂存区
  git commit -m "first commit" #这一步是备注,注意这个步骤一定要有,否则会提交失败
  git push -u origin master #表示提交到远程master分支,在此只是因为没有关联远程分支暂且不管

合并

如果某个分支要更新到跟另一个分支的文件一样,使用merge

假设现在是在本地dev分支

  git checkout master #切换到本地master
  git merge dev #把本地dev分支合并到当前本地分支(master)中

关联远程

  git checkout master
  git remote add origin https://github.com/coneycode/hexo-git-backup.git #使用https,之后介绍ssh
  git fetch origin master #取回(名称为)origin服务器的master分支,即拉取远程master分支

远程

首次创建仓库提交

git init   # 本地创建仓库 
git add -A  # 提交所有文件
git commit -m "first commit"  # 提交文件至本地缓存区
git remote add origin https://github.com/githubusername/githubrepositories.git #添加远程仓库
git push -u origin master #提交代码至远程仓库master分支

已有本地仓库提交

git remote add origin https://github.com/githubusername/githubrepositories.git #添加远程仓库
git push -u origin master #提交代码至远程仓库master分支

如果是按照上面的方式提交,那么输入完git push -u origin master会弹出openssh的窗口,先输入账号名(就是仓库前的那个名字),再输入密码。每次都要这样岂不是很烦,所以推荐用SSH的方式提交。

SSH

如果是使用https拉取远程分支或者提交代码的话,是要输入账号密码的,麻烦的很,但是只要使用ssh就能省去填写账号密码啦~

原理是本地生产ssh公钥和私钥,将公钥放在远程服务器(github、gitlab、coding、gitee),私钥放在本地,识别到能配对就不用填账号密码了。

  • ssh-keygen -t rsa -C "[email protected]" #生产ssh密钥,文件位置在C:\Users\用户名\.ssh
    
    
  • 登录github,头像处下拉框选择settings ;
  • 点击侧边栏的SSH and GPG keys
  • 点击New SSH key,title可以任意填,并且将之前生成的 id_rsa.pub 的内容用文本编辑器打开复制到key`输入框中。
  • ssh -T [email protected]   #在本地电脑任意位置打开git bash输入此命令确认是否成功
    
    

    如果返回Hi username! You’ve successfully authenticated, but GitHub does not provide shell access.就说明成功啦!

    接下来就可以愉快地push代码了(前提是网速行,像baidu.com都打开的网速绝对不愉快)

参考资料

git官方中文文档

你可能感兴趣的:(Git基础命令操作:创建本地分支、更新合并、远程提交)