git-我应该多久获得一次最新的更改

git-我应该多久获得一次最新的更改,git,git-pull,Git,Git Pull,作为一名git新手,我了解基本知识,但有一件事让我感到不安,那就是我的更改是否需要几天才能完成 我会首先创建一个新的分支branch-a,然后继续工作,但我听说我应该每天从remote获取最新的代码更改,至少每天一次,以减少冲突的可能性 当我实际上在本地分支上仍在进行编码时,我应该多久将更改从remote转到我的分支-A 如果我在自己的本地branch-A上做了几天的编码,我应该每天提取/合并到brach-A还是本地master 更新 我想我不清楚我需要澄清什么 假设我使用功能分支 假设团队规模

作为一名git新手,我了解基本知识,但有一件事让我感到不安,那就是我的更改是否需要几天才能完成

我会首先创建一个新的分支
branch-a
,然后继续工作,但我听说我应该每天从remote获取最新的代码更改,至少每天一次,以减少冲突的可能性

  • 当我实际上在本地分支上仍在进行编码时,我应该多久将更改从remote转到我的
    分支-A
  • 如果我在自己的本地
    branch-A
    上做了几天的编码,我应该每天提取/合并到
    brach-A
    还是本地
    master
  • 更新

    我想我不清楚我需要澄清什么

    假设我使用功能分支

    假设团队规模中等,无论我们是否在“同一”领域工作,请帮助我了解什么是安全的最佳实践

    话虽如此,我这样做是因为这是我所知道的(不确定什么是rebase,我说过我是新手,但会阅读,好的):

    获取最新更改并合并到开发中

    git fetch origin
    git merge origin/develop
    
    从新更新的开发分支创建新分支

    git checkout -b branch-A
    
    今天就开始工作,做准备和提交

    git add.
    git commit -m "my message"
    
    第二天,我想确保从远程获取所有更改,以减少冲突的可能性。因此,我想再次执行fetch/merge,但请注意,我现在在我的分支-A上

    git add.
    git commit -m "my message"
    
    我该怎么做?我是这样做的吗

    git fetch origin
    git merge origin/branch-A
    
    git fetch origin
    git merge origin/develop
    
    还是像这样

    git fetch origin
    git merge origin/branch-A
    
    git fetch origin
    git merge origin/develop
    

    这个问题完全取决于有多少人同时处理同一段代码。如果你正在使用一个新的功能(例如,新文件),那么花一个月的时间来合并,而不必向下合并——你无论如何都不会发生冲突。如果你有三个程序员都试图修复同一个文件中的24个不同的bug,那么每30分钟合并一次

    不要对此感到焦虑或“不安”。我不认为三个连续的合并冲突比一个三倍大的合并冲突更容易。在许多情况下,连续的合并冲突最终只是一次又一次地更改相同的内容,如果每天在同一对循环上有一堆琐碎的冲突,那么您每天都会浪费更多的时间进行合并


    我绝对建议你每天做一次主拉。它为您提供了所有更改的良好视觉效果,如果您在正在处理的文件上看到大量+/-,那么您最好合并,因为这可能是一个重构。如果只是对您的文件进行了少量更改,那就别管它了。

    关于1-考虑到同时对项目进行更改的人数以及您应该在“同一领域”工作的人数,您的决策+实践对您的团队最为有效

    根据经验,与主开发分支同步的次数越少,解决冲突的可能性就越大

    我可以说,我几乎每天从主开发分支做一次重基,有时更频繁,但这又取决于我上面解释的事情

    从技术上讲,如果分支是由“主开发分支”(主开发分支)创建的,如下所示:

    git checkout -b my_branch
    
    然后你就做了:

    git commit -am "some commit"
    git commit -am "another commit"
    
    那么,做以下事情是不值得的:

    git fetch --all
    git rebase origin/master
    
    在这种情况下,您的提交将是历史上的“最后一次”(尽管它们的sha1将更改,这不是问题,因为它只是您的分支),并且您的分支还将包含来自master的最新更改

    关于第2条

    如果您独自一人/在一个非常小的团队中工作,那么您可能总是可以直接提交给master,并且根本不使用分支,尽管这不是使用git的推荐方式

    我可以自己说,我对单个功能使用一个功能分支,通常,它“存活”1-3天。然后我通过拉取请求机制将其合并回master-我打开拉取请求,我的团队成员审查并批准我的更改,然后我合并回master

    这种工作方式有很多优点,但它超出了git提供的基本“裸”命令,更多的是关于使用git在项目中工作的良好实践,git是一种非常通用和灵活的工具。 因此,我建议您阅读pull请求,看看是否可以在您的团队中采用它们 假设您当前在分支机构A上:

    易懂
    
    git commit-am“确保保存挂起的更改”
    git签出开发
    git pull#或fetch像往常一样合并到develop中
    git签出分支-A
    #如果其他人也可能在分支A上工作,git会在此处合并origin/branch-A。
    #它会让你知道,如果其他人改变了分支机构A,它就“过时了”
    git合并开发
    

    这是更新分支的最清晰的方法

    容易打字 这只有在您没有更改本地开发和获取合并是一个简单的快进的情况下才有效。如果你不能快进,它会让你知道

    
    git commit-am“确保保存挂起的更改”
    git-fetch-origin-develope:develope#更新您的本地develope
    #git fetch origin branch-A:branch-A#如果其他人正在处理您的分支。
    git合并开发
    

    注意,如果您忘记了这里的
    git-fetch-origin分支-A:branch-A
    ,它不会让您知道您已经过时,因为
    git-fetch-origin-develope
    只会获取develope

    提出建议 建议1
    
    git获取源
    git合并源/分支-A
    

    这个,实际上什么都没做。原点/分支-A可能与您当地的分支-A相同。如果其他人也在分支-A上工作,您会接受他们的更新,这很酷。但你从来没碰过我

    建议2
    
    git获取源
    #如果其他人正在触摸branch-A,请确保在此处git合并origin/branch-A
    git合并源/开发
    

    这会让你高兴的