我在当地的BranchA
上做了以下跟踪:
FileA
(错误)git add FileA
git commit -m "Modified FileA"
因此,FileA
在我的本地提交(从未被推到远程)我的本地分支BranchA
(也从未被推到远程)。
如何还原对FileS的更改?
更新和我如何解决它
我从SourceTree中撤消了对FileA的更改而不是git,因为我意识到它对我来说更简单。
为此,在SourceTree中,r-c在提交文件FileA>“Log Select ...”>上选择之前的提交(你之前的提交)> r-c并选择“重置为此提交”。这完成了工作,但谢谢大家
要专门撤消该文件中的更改,但保持提交不变,否则:
1)将fileS还原到以前的状态
git checkout HEAD^ -- path/to/fileA
2)包括你在Branch上做的最后一次提交
git commit --amend
(而且由于它尚未被推动,下次不需要用力推动。)
首先,将分支重置为先前的提交:
git reset @^ --mixed
然后你可以使用checkout
将特定文件重置为旧状态:
git checkout -- files...
完成后,您可以重新提交更改:
git add files...
git commit -m "message"
您可以使用git reset HEAD~1
将当前分支索引重置为先前的提交。添加--hard
以重置您的工作目录,或者如果您想要优化更改并重新启动,请将其关闭。
如果您从那时起进行了其他更改,请使用git rebase
将您的违规提交首先移至堆栈顶部。
另一种方法(我假设你的提交只在文件中有变化,你想要丢弃):
在你的BranchA
git rebase -i HEAD~2
它将给出两个提交的列表,按历史排序asc。最后一个是您想要改变的。所以,你想放弃那个提交。将光标移动到第二个提交,而不是pick
类型drop
,或只是d
。
保存你的更改(取决于你的编辑,CTRL
+ X
+ SHIFT
+ Y
为nano
或:wq
为vim
,就是这样。