我正在处理分支feature-a
,我需要在源代码的不相关部分对feature-b
进行更改。我忘记了(或者太懒了)制作辅助工作树,并编辑了一些应该在 feature-b
分支中更改的文件。
我现在可以创建一个工作树并rsync
我对工作树的未提交更改。或者我可以在当前分支上进行更改,然后使用 git-cherry-pick
/git-rebase
将它们放到正确的位置。
但实际上我只是希望能够在 feature-b
上进行提交来反射(reflect)我的编辑,而无需实际更改分支、切换主工作树的内容等。
这可以通过 Git CLI 实现吗?
最佳答案
是的,这是可能的。但您必须使用 git 低级命令(又名 git plumbing )。基本任务是:
- 为更改的文件创建新对象 (
git hash-object -w
) - 为包含已更改文件的目录创建新树 (
git write-tree
) - 创建一个新的提交对象,引用根目录的树和相应的父提交 (
git commit-tree
) - 将分支移至新提交
- 推分支
请注意,对于最后两个步骤,您可以使用高级 git 命令,前三个步骤比较棘手。
chapter 10.2中的示例几乎可以满足您的要求。
关于git - 是否可以在不更改分支的情况下在另一个分支上进行 Git 提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70571696/