多个开发人员有效地处理多个分支

时间:2014-07-23 10:57:54

标签: git git-branch

我是一个使用git的开发人员,仅仅是出于基本目的,但是现在开发人员团队已经增加了一些,我发现我的git技能可能不是管理用于多个开发人员的git存储库的最佳选择。所以我想知道以下工作行为是否是我们可以遵循的最佳方案:

我们有5名开发人员在一个git存储库上工作。 每个开发人员都在他自己的分支上工作,所以他只允许提交并推动他的分支。 我们有一个主分支,用于存储用于提供预生产环境的稳定代码。 我们有一个开发分支,我们合并,因此将每个开发人员推送的代码存储在他自己的分支上。

工作流程如下:


#First time
git clone git@domain:my_repository.git
git checkout develop
git checkout -b my_branch

#Everyday before coding, developers fetch and merge develop branch
git fetch --all
git rebase origin/develop

git commit -m 'Some work done' src/
#before push, fetch and merge again develop branch changes
git fetch --all
git rebase origin/develop
git push origin my_branch
#Only when previous push is blocked, the following command should be run
git rebase origin/my_branch
git push origin my_branch

Now, someone has to update develop branch so developers can always work with the last version of the code developer by his team mates
git fetch --all

git checkout some_developer_branch
git pull origin some_developer_branch
git rebase origin/develop
git push origin some_developer_branch

git checkout develop
git pull origin develop
git merge some_developer_branch
git push origin develop

#Now i repeat the process again in order to merge another developer branch.

看到这是一个整洁的过程,迫使我保持​​开发分支更新,让开发人员获取并合并其他队友代码,我想知道这是避免代码冲突并让每个开发人员使用上一个版本的最佳行为代码。

1 个答案:

答案 0 :(得分:2)

我们使用具有存储库的远程服务器。我们让开发人员克隆它并在自己的开发分支上工作。一旦他们的更改正在运行,他们将执行拉,提交和推送。这使远程存储库保持最新,这样每个人都可以获得最新的代码。

通常情况下,我会在早上做第一件事来获取所有最新的代码然后如果我在白天有任何事情要做,我仍然会在推动之前做一些最新的事情。如果我确实忘记了拉动或存在合并冲突,取决于它是什么,我将继续执行我的提交,以便合并可以发生,或者我将进行存储,以便我可以在拉动后处理合并。 / p>

这种方式对我们有用,并且看起来比上面的示例更简单,命令更少。也许您真正需要的只是网络上的另一台机器来托管存储库而不是您。至少对我来说似乎是你正在托管存储库而不是将它放在不同的机器上。

希望这有帮助。