git-如何撤消对本地提交文件的更改
我一直在我的本地git-如何撤消对本地提交文件的更改,git,git-commit,revert,Git,Git Commit,Revert,我一直在我的本地BranchA上做以下事情: 修改文件a(错误) git添加文件a git提交-m“Modified FileA” 因此,FileA位于本地分支BranchA(也从未推送到远程)的本地提交(从未推送到远程)中 如何将更改还原到FileA 更新以及我是如何解决的 我从SourceTree撤销了对FileA的更改,而不是从git撤销,因为我意识到这对我来说更简单 为此,在SourceTree中,提交文件文件A上的r-c>“日志选择…”>选择上一次提交(您之前的提交)>提交文件上的r-
BranchA
上做以下事情:
文件a
(错误)git添加文件a
git提交-m“Modified FileA”
FileA
位于本地分支BranchA
(也从未推送到远程)的本地提交(从未推送到远程)中
如何将更改还原到FileA
更新以及我是如何解决的
我从SourceTree撤销了对FileA的更改,而不是从git撤销,因为我意识到这对我来说更简单
为此,在SourceTree中,提交文件文件A上的r-c>“日志选择…”>选择上一次提交(您之前的提交)>提交文件上的r-c,然后选择“重置为此提交”。这完成了任务,但谢谢大家您可以使用
git reset HEAD~1
将当前分支索引重置为上一次提交。添加--hard
以重置工作目录,或者,如果要优化更改并重新提交,请将其关闭
如果此后进行了其他更改,请先使用
git-rebase
将违规提交移动到堆栈顶部。可以使用git-reset-HEAD~1
将当前分支索引重置为上一次提交。添加--hard
以重置工作目录,或者,如果要优化更改并重新提交,请将其关闭
如果此后您进行了其他更改,请首先使用git rebase将违规提交移动到堆栈顶部。要具体撤消该文件中的更改,但保持提交不变,请执行以下操作: 1)将文件A恢复到以前的状态
git checkout HEAD^ -- path/to/fileA
2)在上次提交BranchA时将其包括在内
git commit --amend
(由于尚未推送,下次无需强制推送。)要具体撤消该文件中的更改,但保持提交不变,请执行以下操作: 1)将文件A恢复到以前的状态
git checkout HEAD^ -- path/to/fileA
2)在上次提交BranchA时将其包括在内
git commit --amend
(由于尚未推送,下次无需强制推送。)首先将分支重置为上一次提交:
git reset @^ --mixed
然后,您可以使用签出
将特定文件重置为旧状态:
git checkout -- files...
完成后,您可以重新提交更改:
git add files...
git commit -m "message"
首先,将分支重置为上一次提交:
git reset @^ --mixed
然后,您可以使用签出
将特定文件重置为旧状态:
git checkout -- files...
完成后,您可以重新提交更改:
git add files...
git commit -m "message"
另一种方法(我假设您的提交仅在文件中有更改,您希望放弃这些更改):
在你的小枝里
git rebase -i HEAD~2
它将给出两个提交的列表,按历史asc排序。最后一个是你想要改变的。因此,您希望放弃该提交。将光标移动到第二个提交位置,而不是选择类型拖放,或者只选择d
保存您的更改(取决于您的编辑器,它可以是CTRL
+X
+SHIFT
+Y
用于nano
或:wq
用于vim
,也就是这样。另一种方法(我假设您的提交仅在文件中有更改,您希望放弃):
在你的小枝里
git rebase -i HEAD~2
它将给出两个提交的列表,按历史asc排序。最后一个是您希望更改的内容。因此,您希望放弃该提交。将光标移动到第二个提交,而不是选择类型拖放,或者只选择d
保存您的更改(取决于您的编辑器,对于nano
或:wq
对于vim
,它可以是CTRL
+X
++而不是整个提交。我在提交中有FileA、FileB、FileC,我只想将FileA恢复到我之前的版本。)更改所以请关闭--hard,这样您就可以优化(git checkout--FileA)并重新提交。但我只希望撤销一个文件,而不是整个提交。我在提交中有FileA、FileB、FileC,我只希望FileA在更改之前还原为版本。所以请关闭--hard,这样您就可以优化(git checkout--FileA)由于git checkout HEAD^--path/to/fileA
首先将文件写入索引,然后写入工作树,因此实际上不需要在此处执行git add
步骤。但这是最短的步骤(可能是最好的)要使用的Git命令集;向上投票…谢谢,我接受你的答案,但因为我是从SourceTree改为从SourceTree执行的,所以没有机会尝试。在SourceTree中,提交文件上的r-c>日志选择…>选择上一次提交(在你之前的一次)>提交上的r-c,然后选择“重置到此提交”。这样做了,但谢谢大家,因为git checkout HEAD^--path/to/fileA
首先将文件写入索引,然后写入工作树,实际上不需要在这里执行git add
步骤。但这是最短的步骤(可能是最好的)要使用的Git命令集;向上投票…谢谢,我接受你的答案,但因为我是从SourceTree改过来的,所以没有机会尝试。在SourceTree中,提交文件上的r-c>日志选择…>选择上一次提交(在你之前的一次)>r-c,然后选择“重置到此提交”。这完成了任务,但谢谢大家