git回退
清除未跟踪的文件
git clean -dxf清除所有未跟踪文件,包括纳入ignored的文件。
如果要保留ignored的文件修改,使用参数-df
本地修改后,回退还没有缓存的文件(没有执行$git add a.txt)
$vim a.txt
$
git checkout a.txt
本地修改后,回退已经缓存的文件
git reset HEAD <文件路径> (撤销缓存)git checkout 文件路径 (回退修改)
本地修改后,回退已经提交的文件 (已经执行 $git commit -am "message" )
$vim a.txt
$git commit -am "message" a.txt
$
git reset master~1 (master分支向前回退一个提交)
这是,a.txt 的这次提交已经被取消了, 这是的状态是a.txt 刚被修改的状态,可以用
$
git checkout a.txt 回到a.txt 被修改前的状态。
情景3 将a.txt 文件回退到某个版本
$git log a.txt
选择回退的SHA1值,
$
git checkout SHA1 a.txt
此时a.txt 是 SHA1时的文件内容
注意这种方式只回退了文件内容,原来的提交的commit 信息还在
本地进行了修改但不想要了直接回退到最后一次提交
先用
git add . 目的是如果有新添加的文件但还没有用git add . 纳入版本控制则先把它纳入版本控制。否则git reset --hard 时不能把这些文件删除或者使用git clean -dx先把新添加未纳入版本控制的文件删除再用
git reset --hard HEAD
From WizNote
转载于:https://www.cnblogs.com/mang/archive/2013/03/22/2976497.html