我试图从先前的提交(而不是HEAD)分支,但是当我提交那些更改时,不是将更改保留在分支中,而是抹去了我在HEAD上的提交。我可以看到这有什么用,但是我认为VC的意义是永久保留所有提交,以便您可以随时返回到先前的状态。
我如何编辑先前的提交并提交,而又不删除其在主控机上的提交呢?
谢谢!
编辑:
这是使我相信我的其他更改已被删除的图像
这是我认为已删除的隐藏分支。为什么gitk不显示其他分支(HEAD,master)
提交可能不会丢失。首先进行备份。检查您有哪些分支,以及其中有什么。如果您确实在任何分支中都找不到提交,那么您可能有兴趣了解reflog。
如果您没有安装存储库浏览器(我喜欢tig),则可以使用以下命令检查存储库:git log --graph --all --oneline --decorate
我如何编辑先前的提交并提交,而又不删除其在主控机上的提交呢?
如果要编辑的提交是先前的提交:
git add -u
如果不添加新文件,可以使用。git commit --amend
请修改上一个提交,然后执行此-C HEAD
操作。如果要编辑较早的提交,则需要使用rebase。可以交互方式完成:
git rebase -i
,这将打开一个编辑器:
pick
在行的开头更改为f
(用于修正)。这将尝试将您的编辑应用于较早的提交,并在较早的提交加上您的编辑基础上重新安排所有后续更改。如果以后的提交受您的编辑影响,则可能会发生合并冲突。Git将提供有关如何解决这些问题的说明。如果您不理解它们,则可以使用git rebase --abort
返回到开始的位置,其中所做的编辑是最新的提交。
请注意,您不应编辑已推送到共享存储库的提交。这可能会造成很多混乱。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句