git - 如何撤消对本地提交文件的更改
git - How to undo changes to a locally committed file
我一直关注,一直在我的本地 BranchA
:
- 修改
FileA
(错误)
git add FileA
git commit -m "Modified FileA"
因此,FileA
在我的本地分支 BranchA
上的本地提交(从未推送到远程)(也从未推送到远程)。
如何恢复对 FileA 的更改?
更新以及我是如何解决的
我从 SourceTree 而不是从 git 撤消了对 FileA 的更改,因为我意识到这对我来说更简单。
为此,在 SourceTree 中,在提交的文件 FileA > "Log Select ..." > select 上一次提交(你之前的提交)> r-c 上选择 "Reset to this commit"。完成了工作,但谢谢大家
您可以使用 git reset HEAD~1
将当前分支索引重置为上一次提交。添加 --hard
以重置您的工作目录,或者如果您想细化更改并重新提交,请将其关闭。
如果您从那时起进行了其他更改,请先使用 git rebase
将有问题的提交移至堆栈顶部。
具体撤消该文件中的更改但保持提交不变:
1) 将文件 A 恢复到之前的状态
git checkout HEAD^ -- path/to/fileA
2) 包括你在 BranchA 上所做的最后一次提交
git commit --amend
(而且还没有推过,下次不用用力推了)
首先你将你的分支重置为之前的提交:
git reset @^ --mixed
然后您可以使用 checkout
将特定文件重置为旧状态:
git checkout -- files...
完成后,您可以重新提交更改:
git add files...
git commit -m "message"
另一种方法(我假设你的提交只在文件中发生了变化,你想丢弃):
在你的 BranchA
git rebase -i HEAD~2
它将给出两个提交的列表,按历史升序排列。最后一个是你想改变的。所以,你想放弃那个提交。将光标移动到第二个提交,而不是 pick
键入 drop
,或者只是 d
.
保存您的更改(取决于您的编辑器,对于 nano
或 [=19,可能是 CTRL
+X
+ SHIFT
+Y
=] vim
,就是这样。
我一直关注,一直在我的本地 BranchA
:
- 修改
FileA
(错误) git add FileA
git commit -m "Modified FileA"
因此,FileA
在我的本地分支 BranchA
上的本地提交(从未推送到远程)(也从未推送到远程)。
如何恢复对 FileA 的更改?
更新以及我是如何解决的
我从 SourceTree 而不是从 git 撤消了对 FileA 的更改,因为我意识到这对我来说更简单。
为此,在 SourceTree 中,在提交的文件 FileA > "Log Select ..." > select 上一次提交(你之前的提交)> r-c 上选择 "Reset to this commit"。完成了工作,但谢谢大家
您可以使用 git reset HEAD~1
将当前分支索引重置为上一次提交。添加 --hard
以重置您的工作目录,或者如果您想细化更改并重新提交,请将其关闭。
如果您从那时起进行了其他更改,请先使用 git rebase
将有问题的提交移至堆栈顶部。
具体撤消该文件中的更改但保持提交不变:
1) 将文件 A 恢复到之前的状态
git checkout HEAD^ -- path/to/fileA
2) 包括你在 BranchA 上所做的最后一次提交
git commit --amend
(而且还没有推过,下次不用用力推了)
首先你将你的分支重置为之前的提交:
git reset @^ --mixed
然后您可以使用 checkout
将特定文件重置为旧状态:
git checkout -- files...
完成后,您可以重新提交更改:
git add files...
git commit -m "message"
另一种方法(我假设你的提交只在文件中发生了变化,你想丢弃):
在你的 BranchA
git rebase -i HEAD~2
它将给出两个提交的列表,按历史升序排列。最后一个是你想改变的。所以,你想放弃那个提交。将光标移动到第二个提交,而不是 pick
键入 drop
,或者只是 d
.
保存您的更改(取决于您的编辑器,对于 nano
或 [=19,可能是 CTRL
+X
+ SHIFT
+Y
=] vim
,就是这样。