总结git的常用命令

  • git init:初始化一个git仓库,即.git目录
  • git add:把工作区的文件提交到暂存区
  • git commit:把暂存区的文件提交到仓库,git commit -m '本次提交的说明'
  • git status:查看工作区或暂存区的状态

版本回退

  • 可以用git reset --hard commit_id,也可以用git reset --hard HEAD^,说明commit_id提交的版本号,git reset --hard HEAD^表示回退上一个版本,git reset --hard HEAD^^回退到上上个版本,git reset --hard HEAD~100表示表示回退到往上100个版本
  • 版本回退前,用git log可以查看提交历史,以便确定要回退到哪个版本。git log --pretty=oneline查看简单的版本信息
  • 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

撤销修改

  • 场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。说明:git checkout -- file其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”
  • 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
  • 场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考上文版本回退,不过前提是没有推送到远程库。
  • git rm:删除文件

添加到远程仓库

  • 要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;
  • 关联后,使用命令git push -u origin master第一次推送master分支的所有内容;
  • 此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
  • git clone '远程仓库地址' 从远程仓库克隆项目到本地

创建与合并分支

  • git branch:查看分支
  • git branch <name>:创建分支
  • git checkout <name>:切换分支
  • git checkout -b <name>:创建与切换分支
  • git merge <name>:合并分支到当前分支
  • git branch -d <name>:删除分支
  • git branch -D <name>:删除未合并的分支
  • 合并分支的可能会出现冲突,冲突出现的原因就是两个人对了同一个文件的的相同位置进行了不同操作,解决冲突再提交即可

bug分支

  • 修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;当手头工作没有完成时,先把工作现场git stash一下(注意git stash之前要先git add一下),然后去修复bug,修复后,再git stash pop,回到工作现场。

多人协作

  • 多人协作的工作模式通常是这样:
    • 首先,可以试图用git push origin branch-name推送自己的修改;
    • 如果推送失败,则因为远程分支比你的本地更新不一样,需要先用git pull试图合并;
    • 如果合并有冲突,则解决冲突,并在本地提交;
    • 没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功
  • 如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。这就是多人协作的工作模式,一旦熟悉了,就非常简单。
原文地址:https://www.cnblogs.com/wan-fei/p/8523922.html