当出现合并冲突时,您可以编辑文件以决定最终停留的内容。
有没有办法获得相同的界面,即使这是一个快进提交?
这对我来说是做我想做的最简单的方式 我过早地删除了文件中大约20行代码并添加了新代码。
当我提交时,我想提交新代码并带回旧代码。
答案 0 :(得分:1)
当更改相同代码的多个位时发生合并冲突。在你的情况下,你已经改变了一些代码然后再改变它,所以没有冲突。
如果您不需要添加的代码,则可以执行还原提交。
如果您想要部分内容,则需要手动合并git show {commitid}:{pathToFile} > {oldFile}
然后您可以选择所需的代码
答案 1 :(得分:1)
当我提交时,我想提交新代码并带回旧代码。
有几种方法可以实现您的要求:
简单的一个就是复制你想要在你的文件中的代码并提交它。
git add -p
您始终可以使用互动add -p
。它允许您根据需要编辑添加的文件。
您可以选择添加哪一行而不是哪一行。
git rebase -i
提交文件后,您可以rebase
内容,编辑文件并将任何代码添加到文件中。
您可以使用作为交互式rebase的壁球。您只需要记住 rebase 的结果。 拥有该分支副本的任何人都必须删除它并再次获取,因为您的历史记录已更新。
完成重写历史记录后,您必须删除远程分支或使用-f
强制推送。
为了做一个git squash,请按照以下步骤操作:
// X is the number of commits you wish to squash
git rebase -i HEAD~X
一旦你压缩你的提交 - 选择e
来编辑所需提交的内容,进行更改并提交。在您的情况下,将缺少的文件添加到B
提交。
git format-patch
git format-patch
会在您的历史记录中为每次提交生成一个补丁(差异)文件,因此您可以再次按照您希望的方式对其进行编辑,然后git apply
修补程序