git工具使用

167 阅读2分钟

「这是我参与11月更文挑战的第5天,活动详情查看:2021最后一次更文挑战

git下载安装:

1.sudo apt-get install git-core

2.git --version,可查看git版本

3.初始化本地用户

      $git config --global user.name  LDAP帐号

      $git config --global user.email  LDAP帐号@thundersoft.com

生成SSH密钥

$ssh-keygen -t rsa -C “youremail@xxx.com

       注:一路回车,不用输密码这样,在家目录 .ssh目录下应该会生成两个文件id_rsa, id_rsa.pub

git 常用命令

新建分支:

1.git branch [-r/-a]列出所有分支[列出所有远程分支/列出所有本地分支和远程分支]

2.git branch [branch-name] 新建一个分支,但依旧停留在当前分支

3.git checkout -b [branch] 新建分支,并切换到该分支
   git checkout [branch-name] 切换到指定分支,并更新工作区
   git checkout - 切换到上一个分支

4.git merge [branch] 合并指定分支到当前分支上

5.git rebase用于把一个分支的修改合并到当前分支
  git rebase A B    把B分支修改合并到A分支
  
  在rebase的过程中,也许会出现冲突(conflict). 在这种情况,Git会停止rebase并会让你去解决 冲突;在解决完冲突后,用"git-add"命令去更新这些内容的索引(index), 然后,你无需执行 git-commit,只要执行:    git rebase --continue,这样git会继续应用(apply)余下的补丁。$ git rebase --abort来终止rebase的行动。
  我们在使用git pull命令的时候,可以使用--rebase参数,即git pull --rebase,这里表示把你的本地当前分支里的每个提交(commit)取消掉,并且把它们临时 保存为补丁(patch)(这些补丁放到".git/rebase"目录中),然后把本地当前分支更新 为最新的"origin"分支,最后把保存的这些补丁应用到本地当前分支上。

6.git branch -f main HEAD~3       main分支向上切换三个分支
  git checkout HEAD~4        向上切换三个分支HEAD

7.git reset HEAD~1   向后移动一个分支,撤销commit,回退远程分支的版本
  git revert HEAD 撤销最近一次提交,代码回退了,版本是向前的 

8.git cherry-pick C2 C4    在当前版本下,复制C2,C4版本
  git rebase -i HEAD~4   弹出交互式的界面让用户编辑完成合并操作,HEAD~4制定编辑区间

9.git commit --amend 对最新版本进行修改

10.git tag  不会随着新的提交而移动。

git tag v1 C1  给C1设置标签v1

远程分支:


1.git clone 在本地创建一个远程仓库的拷贝

2.git fetch 从远程仓库获取数据(1.从远程仓库下载本地仓库确实的提交记录,2.更细远程分支指针)

3.git pull 抓取更新在合并到本地分支

  git pull 就是git fetch和git merge的缩写

4.当你本地仓库提交了新版本,而远程仓库也有同事提交了新版本,使用git pull --rebase, git push命令相当于(git fetch, git rebase o/main ,git push)

使用git pull,git push 命令相当于(git fetch,git merge o/main,git push)

5.团队合作中,可能main被锁定, 需要一些Pull Request流程来合并修改

6.git push origin main 代表在本地仓库中的“main”分支,获取所有的提交,再到远程仓库“origin”中找到“main”分支,将远程仓库中没有的提交记录都添加上去

7.git push origin foo:main  本地仓库的foo分支push到远程仓库的main分支

8.git push origin :foo   若远程仓库有foo分支,则会删除

  git fetch origin :foo    若本地仓库没有foo分支,则会新建

9.git pull origin bar~1:bugFix

 相当于:git fetch origin bar~1:bugFix; git merge bugFix