git 实用命令整理

1、git reset --hard HEAD~i

      本地代码回滚到指定之前第i个版本,如果已经提交远程分支,则会提交失败

2、git revert

      用于撤销某次提交,可以提交远程分支
      它会撤销某次提交,然后作为一个新的提交,因此提交历史不会丢失,貌似它每次只能撤销一次提交


      撤销一次提交:比较简单
      git revert HEAD    #撤销上一次提交
      git revert HEAD^   #撤下上上一次的提交
      git revert commit  #撤销指定commit id的提交


      撤销多次提交:也很简单 (其实撤销多次,看起来像是撤销一次^_^)
      例如:我当前master分支如下,A是当前head,但是我想撤销A、B、C并作为一次提交显示 

               A <-- B <-- C <-- D

      git revert --no-commit A

      git revert --no-commit B

      git revert --no-commit C

      git commit -m 'revert three commits'

3、git push -f origin local_branch:remote_branch

    加入-f参数,强制提交,远程端将强制更新到reset版本

    当需要对远程分支的多次提交撤销时,可以使用这两个命令,可以把本地撤销的提交同步到远程分支
    但是如果撤销错误,会导致找回比较麻烦,一般提交git pull不要带 -f参数

    公司内部会对master分支做限制不允许强制提交, 该方法一般不要用!!!

4、git cherry-pick

A - B - C - D - E [master]
          \
          F-G-H [feature]

     合并单个commit,如果想将提交G合并到master,可以
     git checkout master
     git cherry-pick G
     git cherry-pick 一次只能合并一个commit

5、git rebase

     合并连续多个commit,
     git checkout -b newbranch G   #创建新分支,保存到G的提交
     git rebase —onto master F^  #F^ 表示从 F 的 commit 开始合并
     这样就完成了commit F到G合并到master

6、git merge

     git checkout master

     git merge dev-branch

     可以实现将dev-branch分支合并到master,合并全部提交
     如果想精确地合并某次一次提交或多次提交,可以使用git cherry-pic和git rebase


git 管理代码确实很方便,更多的实用功能,慢慢添加吧,方便查找回顾

你可能感兴趣的:(git)