我刚刚用 Git 做了以下事情,但我不确定这是否是正确的做事方式。我所拥有的是一个包含一些东西的文件。然后有一个分支向这个文件添加额外的东西(扩展它,它是我们单独出售的插件)。假设 branch1 和 branch2 有一个包含以下内容的文件:
-----------
branch1
-----------
123
-----------
branch2
-----------
123
qwe
-----------
然后我在 branch1 的一个主要特性上做了一些工作,并对该分支进行了提交。之后,我将 branch1 合并到 branch2 以将此新功能也重新应用于文件的插件版本。现在文件是
-----------
branch1
-----------
1234
-----------
branch2
-----------
1234
qwe
-----------
但是代码不能完全工作,我现在需要切换到 branch2 并对在那里扩展文件的代码进行一些更改(将“qwe”更改为“qwer”)。但是,在工作时,我还在基本代码(“1234”)中发现了一些错误并修复了它们(将“1234”更改为“12345”)。现在我的 HEAD 位于 branch2 的工作目录具有以下内容
-----------
branch2 (working directory)
-----------
12345
qwer
-----------
现在我需要提交这个,我的目标是
-----------
branch1
-----------
12345
-----------
branch2
-----------
12345
qwer
-----------
我担心,如果我只是将其提交给 branch2,然后将单独重新应用 1234->12345 更改到 branch1 并提交,这将产生我正在寻找的结果,但 Git 会将其识别为两个独立且完全独立的提交,并且当我将来要经历类似的过程时(例如,branch1 中的 12345->123456,然后是 branch1->branch2 合并),我会在那个地方发生冲突。所以我的解决方案是使用交互式暂存仅将 qwe->qwer 更改提交到 branch2。然后 stash 剩余的更改(否则不允许切换回 branch1),切换到另一个分支,应用 stash,将 1234->12345 提交到 branch1,最后合并 branch1->branch2。
但是,这确实起到了作用,因为我对 Git 还比较陌生,所以我不太确定我是否以正确的方式以最好的方式使用了这些东西。请让我知道以上是否有意义,如果没有,请告诉我更好的方法。