###Git使用问题

	#@date: 		2014-05-04
	#@author: 		gerui
	#@email:		forgerui@gmail.com

一、git reset的使用

  1. 今天修改了代码,就git add ./,添加到提交缓存中,但是突然发现不对,不想提交了,想回到未添加缓存的情况,这篇博客给出了解决方法,很简单:

     git reset .
    
  2. 之后继续看这篇博客,又学习到了不少撤销操作的知识。

  3. git reset HEAD 可以撤销当前版本内的修改,即add到缓存的东西,撤销的提交文件为已修改未缓存。这里 git reset HEAD~1 撤销一次提交操作,如果改为 git reset HEAD~2 则是撤销两次提交操作。

  4. git reset --soft HEAD ,这样的操作会使提交的文件设为已修改已缓存。

  5. git reset --hard HEAD ,这个操作会使提交的文件删除修改,回归到未修改前的状态,这个操作之后,使用 git status 命令查看没有变动内容。

  6. 可以通过以下方式在别的分支tmp上开发不成熟的功能。如下面,你先在master分支上提交了两个版本的内容,但发现这个功能不成熟,不能提交到master,所以你把现在的开发进度放到tmp分支(1),并回滚master分支上的两个提交(2),最后切换到tmp分支继续开发新功能(3)。

     git branch tmp						(1)
     git reset --hard HEAD~2		   	                (2)
     git checkout tmp					(3)
    
  7. git checkout -- a.txt可以将a.txt改为未修改之前的内容,这是个不可逆过程,撤销之后就不可恢复。

  8. git reflog可以记录每次操作,可以使用git reset --hard ea873cf去回退到指定的位置。

原文地址:https://www.cnblogs.com/gr-nick/p/3788015.html