Git-在同一个文件中,如何在提交添加的同时撤消删除?

Git-在同一个文件中,如何在提交添加的同时撤消删除?,git,Git,当存在合并冲突时,您可以编辑一个文件以决定最终保留的内容 即使这是一个快进提交,有没有办法获得相同的接口 这对我来说是做我想做的事情最简单的方法。 我提前删除了一个文件中大约20行代码,并添加了新代码 提交时,我希望提交新代码并带回旧代码。当同一代码的多个位发生更改时,会发生合并冲突。在您的情况下,您已经更改了一些代码,然后再次更改,因此没有冲突 如果您不需要添加的代码,可以执行恢复提交。 如果您想要它的一部分,您需要手动合并git show{commitid}:{pathToFile}>{ol

当存在合并冲突时,您可以编辑一个文件以决定最终保留的内容

即使这是一个快进提交,有没有办法获得相同的接口

这对我来说是做我想做的事情最简单的方法。
我提前删除了一个文件中大约20行代码,并添加了新代码


提交时,我希望提交新代码并带回旧代码。

当同一代码的多个位发生更改时,会发生合并冲突。在您的情况下,您已经更改了一些代码,然后再次更改,因此没有冲突

如果您不需要添加的代码,可以执行恢复提交。 如果您想要它的一部分,您需要手动合并
git show{commitid}:{pathToFile}>{oldFile}


然后,您可以选择所需的代码

当同一代码的多个位发生更改时,会发生合并冲突。在您的情况下,您已经更改了一些代码,然后再次更改,因此没有冲突

如果您不需要添加的代码,可以执行恢复提交。 如果您想要它的一部分,您需要手动合并
git show{commitid}:{pathToFile}>{oldFile}

然后,您可以选择所需的代码

当我提交时,我希望提交新代码并带回旧代码

有几种方法可以实现您的要求:

最简单的方法就是复制您想要保存在文件中的代码并提交它

其他一些选择:
git add-p
您始终可以使用交互式
添加-p
。它将允许您根据需要编辑添加的文件

您可以选择要添加哪些行以及不添加哪些行


git-rebase-i
提交文件后,您可以重新设置内容的基础,编辑文件并将任何代码添加到文件中

您可以使用squash,它是一种交互式的重基。您只需记住,重设基础的结果是什么任何拥有分支副本的人都必须将其删除并重新获取,因为您的历史记录已更新

完成重新写入历史记录后,必须删除远程分支或使用
-f
强制推送


要进行git挤压,请执行以下步骤:

// X is the number of commits you wish to squash
git rebase -i HEAD~X
挤压提交后-选择
e
编辑所需提交的内容,进行更改并提交。在您的情况下,将缺少的文件添加到
B
commit


git格式补丁
git-format-patch
将在您的历史记录中每次提交时生成一个补丁(diff)文件,因此您可以按照自己的意愿编辑它,然后
git-apply
应用补丁

当我提交时,我希望提交新代码并带回旧代码

有几种方法可以实现您的要求:

最简单的方法就是复制您想要保存在文件中的代码并提交它

其他一些选择:
git add-p
您始终可以使用交互式
添加-p
。它将允许您根据需要编辑添加的文件

您可以选择要添加哪些行以及不添加哪些行


git-rebase-i
提交文件后,您可以重新设置内容的基础,编辑文件并将任何代码添加到文件中

您可以使用squash,它是一种交互式的重基。您只需记住,重设基础的结果是什么任何拥有分支副本的人都必须将其删除并重新获取,因为您的历史记录已更新

完成重新写入历史记录后,必须删除远程分支或使用
-f
强制推送


要进行git挤压,请执行以下步骤:

// X is the number of commits you wish to squash
git rebase -i HEAD~X
挤压提交后-选择
e
编辑所需提交的内容,进行更改并提交。在您的情况下,将缺少的文件添加到
B
commit


git格式补丁
git-format-patch
将在您的历史记录中每次提交时生成一个补丁(diff)文件,因此您可以按照自己的意愿编辑它,然后
git-apply
应用补丁


git add-p
听起来正是我所需要的。一步解决方案。目前,我提交了更改,现在必须将删除的代码复制粘贴回。我想我可以做
commit--amend
并有效地为第一次删除的commit取消删除该代码?我还没有尝试过,但我想我明天会尝试。如果它能工作,你肯定会得到这个复选标记。
git add-p
听起来它正是我所需要的。一步解决方案。目前,我提交了更改,现在必须将删除的代码复制粘贴回。我想我可以做
commit--amend
并有效地为第一次删除的commit取消删除该代码?我还没有尝试过,但我想我明天会尝试。如果它能工作,你肯定会得到这一个复选标记。