我有两个分支,比如 B1 和 B2。我在 B2 中,我有暂存和未暂存的文件。
我希望在 B1 中提交暂存文件(当我git add
编辑文件时我以为我在 B1 中)并且在 B2 中提交未暂存文件。
是否可以?如何?
我有两个分支,比如 B1 和 B2。我在 B2 中,我有暂存和未暂存的文件。
我希望在 B1 中提交暂存文件(当我git add
编辑文件时我以为我在 B1 中)并且在 B2 中提交未暂存文件。
是否可以?如何?
我敢肯定有一个更优雅的方式,但我能想出的是:
编辑
这个问题有一个详细的答案,或多或少符合我的建议。
git stash
在分支之间移动脏更改时非常强大。在您的情况下,您可以应用以下步骤:
git stash --keep-index
,这将只存储未暂存的文件git stash
,这将隐藏其余的,即暂存文件git stash pop
, 暂存文件将移至 B1git stash pop
,未暂存的文件将移至 B2之后,您可以单独提交每个分支中的更改。
如果修改后的暂存和未暂存文件通过切换到分支 B1 没有改变,您可以在不影响任何内容的情况下切换分支,然后您可以轻松提交文件并切换回 B2。
但是,如果您修改的文件在 B1 和 B2 之间更改,则无法切换分支。在这种情况下,您必须在切换分支之前存储您的更改。
git stash --keep-index
存储和保留暂存文件git reset HEAD
取消暂存文件git stash
存储您之前暂存的文件git checkout B1
切换到B1分店git stash pop
取消存储并删除您的最后一个存储git commit -a
在 B1 上提交您之前暂存的文件git checkout B2
切换到B2分店git stash pop
git commit -a
在 B2 上提交所有剩余的更改小心这些命令!我不是 git pro!:-)