Git revert及其他一些回退操作

  放弃本地的代码和本地提交,希望会退到远程分支的某次提交时,使用git reset --hard fa042ce。

  本地已提交,但是发现有问题,想要撤销本地的提交,使用git checkout /trs/test.java。

  想要恢复本地提交和远程库最新版本一致,但又保留本地的代码,使用git reset origin/master。

 

  git revert创建一个新的版本,这个版本的内容与我们要回退到的目标版本一样,但是HEAD指针是指向这个新生成的版本,而不是目标版本。

  git revert是新建一个commit,之前的commit会保留,在gerrit想回退至某个版本时很有用。

 

  git log 命令可以显示所有提交过的版本信息,git reflog 可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)。

  例如执行 git reset --hard HEAD~1,退回到上一个版本,用git log则是看不出来被删除的commitid,用git reflog则可以看到被删除的commitid,我们就可以买后悔药,恢复到被删除的那个版本。

 

  本地没有add的文件丢失后,可以尝试IDEA等工具的Local History,有历史记录的话可以被恢复。

  reset之前如果执行过git add 操作的话,执行 git fsck --lost-found,然后到.git/lost-found目录下找找看有没有你丢失的文件。

 

  

  

posted on 2018-12-09 21:31  lnlvinso  阅读(6371)  评论(0编辑  收藏  举报