gpt4 book ai didi

git - 如何从上次提交中删除某些行并将它们添加到 git 中的新提交中?

转载 作者:行者123 更新时间:2023-12-04 13:43:12 26 4
gpt4 key购买 nike

在我上次提交中,我在文件中添加了某些行,这些行应该作为单独的提交添加。如何仅撤消提交中的那些行而不完全删除它们(因为我稍后仍需要添加它们)?

我知道我可以做 git reset HEAD~1完全撤消提交,然后修补添加 git add -p只有我需要的行,然后再次提交。我实际上是在寻找一种更清洁的解决方案(如果存在的话)

最佳答案

@~ 的一些更改不应该在 @但是在另一个分支中,因此请在此处重置它们:

git reset -p @~ -- that/file
git commit

在那里提交他们
git checkout another
git commit -p -- that/file
git checkout @{-1}    # aannd we're back
git commit -- path 中有特殊情况逻辑上面写着“我不在乎索引是什么样子,只提交对我给你的特定路径的更改,而忽略其他所有内容”。它是专门为这样的情况而构建的,在这种情况下,您修复了需要单独录制的内容。只需修复工作树中摆在您面前的内容,然后将更改发送到您想要记录的任何位置和方式。

顺便说一句,这也是 rebase 的一个方便快捷方式,可以完全重构您当前的分支
git reset --soft `git merge-base @{u} @`

然后为您的更改做补丁提交,根据需要切换和/或创建分支。一旦你对那个工作流感到满意,甚至还有 git checkout --merge ,它以您当前的提示为基础运行即兴内容 merge ,解决小冲突明显比进行 stash 和流行舞蹈更容易。

关于git - 如何从上次提交中删除某些行并将它们添加到 git 中的新提交中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53773511/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com