git - 如何撤消对本地提交的文件的更改

问题描述 投票:1回答:4

我在当地的BranchA上做了以下跟踪:

  1. 修改FileA(错误)
  2. git add FileA
  3. git commit -m "Modified FileA"

因此,FileA在我的本地提交(从未被推到远程)我的本地分支BranchA(也从未被推到远程)。

如何还原对FileS的更改?

更新和我如何解决它

我从SourceTree中撤消了对FileA的更改而不是git,因为我意识到它对我来说更简单。

为此,在SourceTree中,r-c在提交文件FileA>“Log Select ...”>上选择之前的提交(你之前的提交)> r-c并选择“重置为此提交”。这完成了工作,但谢谢大家

git git-commit revert
4个回答
4
投票

要专门撤消该文件中的更改,但保持提交不变,否则:

1)将fileS还原到以前的状态

git checkout HEAD^ -- path/to/fileA

2)包括你在Branch上做的最后一次提交

git commit --amend

(而且由于它尚未被推动,下次不需要用力推动。)


2
投票

首先,将分支重置为先前的提交:

git reset @^ --mixed

然后你可以使用checkout将特定文件重置为旧状态:

git checkout -- files...

完成后,您可以重新提交更改:

git add files...
git commit -m "message"

1
投票

您可以使用git reset HEAD~1将当前分支索引重置为先前的提交。添加--hard以重置您的工作目录,或者如果您想要优化更改并重新启动,请将其关闭。

如果您从那时起进行了其他更改,请使用git rebase将您的违规提交首先移至堆栈顶部。


1
投票

另一种方法(我假设你的提交只在文件中有变化,你想要丢弃):

在你的BranchA

git rebase -i HEAD~2

它将给出两个提交的列表,按历史排序asc。最后一个是您想要改变的。所以,你想放弃那个提交。将光标移动到第二个提交,而不是pick类型drop,或只是d

保存你的更改(取决于你的编辑,CTRL + X + SHIFT + Ynano:wqvim,就是这样。

© www.soinside.com 2019 - 2024. All rights reserved.