Git/Bitbucket 上的测试和生产环境分支
Branches for Testing and Production Environments on Git/Bitbucket
我正在使用 Git 和 Bitbucket 来控制我的软件版本。
现在我在 bitbucket 中有 2 个原始分支:Testing 和 Master。
测试分支会自动更新我的本地服务器。并且主分支自动更新生产。
我有一个有 5 名开发人员的团队,每个人都有本地分支:Testing 和 Master。
问题是:当开发人员推送到 testing/origin 分支时,其他开发人员无法推送他们的修改,因为他们落后于 testing/origin。我知道他们可以 "git push -f" 但是 这会覆盖其他开发人员的最后一次提交 。我知道他们需要在推送之前 拉取 ,但是当他们拉取时,他们正在 获取其他开发人员的更改 ,而这不是我想要的想。我需要他们在测试分支上进行个人更改。
有什么办法可以解决这个问题吗?
对不起,如果你不明白,英语不是我的母语...
您可能需要考虑使用类似于 gitflow 的分支策略。 https://datasift.github.io/gitflow/IntroducingGitFlow.html
实现您的目标的唯一方法是让每个开发人员在自己的分支上工作。
最有可能的是,您可以简单地让每个开发人员创建自己的分支,该分支源自 testing
分支:
git checkout testing
git checkout -b my_testing
# work work work
git commit -m 'finished my work'
git push origin my_testing
至此,您的每个开发人员都已基于testing
创建了自己的分支,完成并提交了自己的工作,并将自己的分支推送到Bitbucket。现在他可以创建一个 拉取请求 并将 testing
分支作为目标。如果请求获得批准,它可以合并到 Bitbucket 中的 testing
。
合并完成后,所有开发人员的工作现在都将在 testing
。
最好的方法是让开发人员在本地计算机上从测试(父分支)创建一个新分支(子分支)并进行处理。但请注意,当代码准备好推送时,开发人员必须切换到父分支(测试),然后从远程测试中拉取所有最新的。
之后他们必须首先将子分支合并到父分支本地。此时,开发人员可能会遇到合并冲突。这时候使用http://meldmerge.org/之类的工具查看冲突,并与推送代码的另一个开发人员一起解决。最后,您本地的 Testing(Parent) 分支是最新的并且没有冲突。所以此时开发者可以将Testing分支推送到远程。
我正在使用 Git 和 Bitbucket 来控制我的软件版本。 现在我在 bitbucket 中有 2 个原始分支:Testing 和 Master。
测试分支会自动更新我的本地服务器。并且主分支自动更新生产。
我有一个有 5 名开发人员的团队,每个人都有本地分支:Testing 和 Master。
问题是:当开发人员推送到 testing/origin 分支时,其他开发人员无法推送他们的修改,因为他们落后于 testing/origin。我知道他们可以 "git push -f" 但是 这会覆盖其他开发人员的最后一次提交 。我知道他们需要在推送之前 拉取 ,但是当他们拉取时,他们正在 获取其他开发人员的更改 ,而这不是我想要的想。我需要他们在测试分支上进行个人更改。
有什么办法可以解决这个问题吗?
对不起,如果你不明白,英语不是我的母语...
您可能需要考虑使用类似于 gitflow 的分支策略。 https://datasift.github.io/gitflow/IntroducingGitFlow.html
实现您的目标的唯一方法是让每个开发人员在自己的分支上工作。
最有可能的是,您可以简单地让每个开发人员创建自己的分支,该分支源自 testing
分支:
git checkout testing
git checkout -b my_testing
# work work work
git commit -m 'finished my work'
git push origin my_testing
至此,您的每个开发人员都已基于testing
创建了自己的分支,完成并提交了自己的工作,并将自己的分支推送到Bitbucket。现在他可以创建一个 拉取请求 并将 testing
分支作为目标。如果请求获得批准,它可以合并到 Bitbucket 中的 testing
。
合并完成后,所有开发人员的工作现在都将在 testing
。
最好的方法是让开发人员在本地计算机上从测试(父分支)创建一个新分支(子分支)并进行处理。但请注意,当代码准备好推送时,开发人员必须切换到父分支(测试),然后从远程测试中拉取所有最新的。
之后他们必须首先将子分支合并到父分支本地。此时,开发人员可能会遇到合并冲突。这时候使用http://meldmerge.org/之类的工具查看冲突,并与推送代码的另一个开发人员一起解决。最后,您本地的 Testing(Parent) 分支是最新的并且没有冲突。所以此时开发者可以将Testing分支推送到远程。