git经验分享

312 阅读2分钟

1、误删分支 恢复方法

强制删除了一个分支(本地+远程)而后又想重新使用这个分支,该怎么找回该分支上的代码呢?

比如删除了test本地和远程分支,此时在master分支上

  1. git log -g 显示已经commit信息

    1. 如果commit的内容过多的话,我们可以进行过滤查找:

      1. git log -g --author="xx@kanzhun.com"  // 根据用户名过滤,模糊匹配
      2. git log -g --grep "xx"  // 根据commit时候的提交信息查找,模糊匹配
  2. 根据commit信息找到对应的commitId

  3. git branch [新分支] commitId

image.png

2、停止git合并

有些情况,我们想终止合并,还原到合并之前的状态,vscode中没有找到相关复原功能

git merge --abort 可以停止合并 => 即使中间已经做了合并处理,也会恢复到合并之前的状态

image.png

3、远程仓库回滚

一定要前提做好分支备份,以防操作失误造成代码丢失

删除最后一次提交记录

git revert HEAD //  销前一次 commit
git push origin master

revert和reset的区别

  • revert是放弃指定提交的修改,但是会生成一次新的提交,需要填写提交注释,以前的历史记录都在

  • 而reset是指将HEAD指针指到指定提交,历史记录中不会出现放弃的提交记录。

备注:

  • git revert HEAD                  撤销前一次 commit
  • git revert HEAD^               撤销前前一次 commit
  • git revert commitId (比如:369dfed)撤销指定的版本,撤销也会作为一次提交进行保存。
  • git revert HEAD~1 表示撤销最近两次提交,因为撤销的不是最近一次提交,那么代码一定会有冲突,合并代码只需要把当前的代码全部去掉,保留之前版本的代码就可以了

image.png

删除历史某次提交

1、git rebase -i "commitId"^   // 需要注意最后的^,它表示包含本次的提交

会弹出交互式命令,删除不需要的commitid(可以是多个)

image.png

pick:可以更改提交顺序、删除提交

2、git push origin master -f