我目前正在从事的项目使用 Git 和 Gitflow 工作流方法。我在使用 Gitflow 时遇到了一个绊脚石,我相信它源于 Git 的底层功能。问题在于功能分支。
使用 Subversion,我可以创建存储库的两个分支,将它们签出以在我的工作区中分离 Eclipse 项目并并行编辑它们。我可以在这两个项目中彼此隔离地编辑文件。我对一个分支中的文件所做的更改不会反映在另一个分支中,反之亦然。
使用 Git,我还可以在我的存储库克隆中创建两个功能分支。但是,每当我在一个分支中创建或编辑文件时,如果我在切换到第二个分支之前没有提交这些更改,那么这些更改也会出现在第二个分支中。同样,如果我随后在第二个分支中更改同一个文件,然后再次切换到第一个,则该文件包含我迄今为止所做的所有更改,无论更改时我在哪个分支上。
更糟糕的是,如果我在第二个分支中添加并提交我的更改,那么第二个分支中的文件现在将包含从第一个和第二个分支所做的所有更改,并且这些更改从第一个分支中完全消失!
有没有办法让功能分支彼此隔离,这样文件和对文件的更改在提交之前不会反映在两个功能分支上?
我意识到我可以在切换到另一个分支之前简单地提交我的更改,或者为每个功能创建一个单独的存储库克隆。然而,这两种方法似乎都违背了拥有分支的目的。