我是一个使用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.
看到这是一个整洁的过程,迫使我保持开发分支更新,让开发人员获取并合并其他队友代码,我想知道这是避免代码冲突并让每个开发人员使用上一个版本的最佳行为代码。
答案 0 :(得分:2)
我们使用具有存储库的远程服务器。我们让开发人员克隆它并在自己的开发分支上工作。一旦他们的更改正在运行,他们将执行拉,提交和推送。这使远程存储库保持最新,这样每个人都可以获得最新的代码。
通常情况下,我会在早上做第一件事来获取所有最新的代码然后如果我在白天有任何事情要做,我仍然会在推动之前做一些最新的事情。如果我确实忘记了拉动或存在合并冲突,取决于它是什么,我将继续执行我的提交,以便合并可以发生,或者我将进行存储,以便我可以在拉动后处理合并。 / p>
这种方式对我们有用,并且看起来比上面的示例更简单,命令更少。也许您真正需要的只是网络上的另一台机器来托管存储库而不是您。至少对我来说似乎是你正在托管存储库而不是将它放在不同的机器上。
希望这有帮助。