我的git工作流程正确,并且按照我的团队计算



我正在帮助一些人完成一个项目,但我以前从未协作使用Git,所以我生锈了,想正确地解决这个问题。

背景

没有叉子。建议我直接制作回购的克隆,然后分支。

origin/master包含当前版本的生产准备代码

origin/develop包含下一个版本的最新开发更改的代码

我的git工作流程

  1. 克隆我本地机器的存储库:

    $ git clone <origin-url>

  2. 创建新分支:

    $ git checkout -b newFeature develop

  3. 进行更改,舞台并提交它们:

    $ git add .
    $ git commit -m "<message>"
    
  4. 将更改更改为远程 newfeature 分支(该分支在Origin Repo中尚不存在):

    $ git push origin newFeature
    
  5. 提交拉动请求将origin/newFeature合并到origin/develop中。

  6. 接受拉请请求时删除本地分支:

    $ git branch -d newFeature

问题

  • 我是否正确地认为我需要确保我的本地develop分支在推高newFeature分支之前使用origin/develop最新?这样,我将帮助我的同事避免合并冲突并允许快速合并?

  • 最好的方法是什么?我应该定期将origin/develop分支拉到本地机器吗?

  • git会通知我,当我尝试推开分支时,代码不是最新的吗?它会阻止推动吗?

  • 是否有必要在第2阶段特别分支develop?如果我只使用此命令,这是否重要?

    $ git checkout -b newFeature

我是否正确地认为我需要确保我的本地开发分支在推高newfeature分支之前与Origin/Deverition保持最新?这样,我将帮助我的同事避免合并冲突并允许快速合并?

是。在您推动之前:

git checkout develop
git pull origin develop
git checkout newFeature
git rebase develop

这假定没有其他在newFeature上工作的人,就像您的情况一样。如果其他人也得到了您的分支机构,那么rebase可能需要与他们进行其他交流,或者您可能需要(尽管我个人讨厌,因为在所有级别上这完全是错误的,尽管大多数人都是这样做的),但请合并develop而是进入newFeature

最好的方法是什么?我应该定期将原点/发展分支拉到本地机器吗?

绝对。使用git,您会尽量频繁地进行,拉动,尽可能地做。这样做的时间越早,您的合并的可能性就越小,这使您无法出路(从某种意义上说,您无法理解巨大的变化所做的事情)。较小的单元更容易处理。

git会通知我,当我尝试推开分支时,代码不是最新的吗?它会阻止推动吗?

是的,它将不允许这样做,并给您一个有意义的信息。您只能推动快进,或者,如果不可能快速前进(即差异),您可以进行强制推动,就像更换目标一样,并且会让您在同事中陷入困境除非您是"所有人"。您永远无法在推动时进行隐式合并,它是"/或",设计。

请注意,此处的例外是"您的" newFeature分支,假设您是唯一在此工作的人。然后,在您的重置如上所示之后,您将完全遇到这种"阻塞"情况,并且必须使用" - 力量",以将其推向遥控器。只要没有其他人拉你的树枝并在上面努力,这很好。

是否有必要在第2阶段进行专门开发?如果我只使用此命令,这有关系吗?git checkout -b newFeature

此命令分支从您的工作目录中的当前分支中分开,因此从理论上讲,如果您感到困惑,可能会出错。克隆之后,默认情况下,master分支处于活动状态。因此,是的,您要么需要明确指定develop,要么事先进行git checkout develop

最新更新