如何在我的dev-git分支中跟踪origin/master

如何在我的dev-git分支中跟踪origin/master,git,branch,git-track,Git,Branch,Git Track,我是git新手,我想知道如何处理一个非常基本的场景。我在stackoverflow上读了很多关于git的帖子,但仍然没有找到答案 我们有一个每个人都在处理的origin/master远程分支。 我有一个想要实现的功能,可能需要时间来开发。同时,人们可能正在将代码签入源代码/主代码 考虑到以下需求,我的工作流程会是什么样的?我应该如何设置我的git分支机构: 我希望能够将代码更改提交到我的分支,并将它们推送到服务器上的远程分支,这样我就不会丢失更改,以防我的计算机崩溃。 我想让我的分支机构与主分支

我是git新手,我想知道如何处理一个非常基本的场景。我在stackoverflow上读了很多关于git的帖子,但仍然没有找到答案

我们有一个每个人都在处理的origin/master远程分支。 我有一个想要实现的功能,可能需要时间来开发。同时,人们可能正在将代码签入源代码/主代码

考虑到以下需求,我的工作流程会是什么样的?我应该如何设置我的git分支机构:

  • 我希望能够将代码更改提交到我的分支,并将它们推送到服务器上的远程分支,这样我就不会丢失更改,以防我的计算机崩溃。

  • 我想让我的分支机构与主分支机构保持最新联系。

  • 我希望最小化常规合并。我喜欢git rebase的概念,因此我希望最大限度地利用它,从而实现快速合并。

  • 在某个时候,我们必须将我的分支合并到origin/master中。

  • 总结:

    如何设置从原点/主节点拉入但推送到原点/MY-branch的分支

    我的工作流程是什么样的

    更新:

    谢谢你@will pragnell!您的解决方案与以下解决方案有什么不同

    github上的此页面建议:

    为了从开发主干获取最新更新,请通过输入以下命令一次性设置将主GitHub repo建立为远程:

    $ git remote add upstream git://github.com/diaspora/diaspora.git
    $ git fetch upstream
    $ git checkout master
    $ git rebase upstream/master
    $ git checkout 100-retweet-bugfix
    
    [确保在分支机构中根据需要承诺所有内容]

    $ git rebase master
    

    您可能不希望有一个分支从主分支拉出并推到您自己的分支。您想要的是从主节点拉到本地主节点,在本地处理重定基址,然后推到您自己的远程分支以获得该功能。这是一个相当标准的工作流程,可以为您提供完全的控制和最少的合并。就我个人而言,我会这样做:

    git checkout master
    git pull (this will just fast-forward if you don't make any local changes to master)
    git checkout myFeature
    git rebase master
    
    创建一个新的本地分支

    git checkout -b myFeature
    
    将其推送到新的远程分支(查看是否需要有关此步骤的更多信息)

    现在,您可以在myFeature分支上轻松地工作,在需要时使用上面的命令按下,而不会弄乱主分支。当您需要获得其他人在master上完成的提交时,您可以这样做:

    git checkout master
    git pull (this will just fast-forward if you don't make any local changes to master)
    git checkout myFeature
    git rebase master
    
    当您的功能完成后,您可以将您的分支合并或重设为master,以便其他人都可以获得您的新功能。像这样:

    git checkout master
    git merge myFeature
    git push origin master
    

    git签出-b FeatureA
    (创建和签出分支)
    git推送原点功能(将新创建的分支推送到原点)

    在新的分支机构工作。您不希望频繁合并然后重新设置基础

    git rebase origin  
    
    将来,无论何时,只要您想合并到master中

    git checkout master  
    git merge FeatureA  
    git push origin master  
    

    谢谢你@will Pragnell!我的问题更新如下:你的解决方案和下面的有什么区别。github上的此页面建议:为了从开发主干获取最新更新,请一次性设置,通过输入:$git remote add upstream将主github repo建立为远程git://github.com/diaspora/diaspora.git,$git fetch upstream,$git checkout master,$git rebase upstream/master,$git checkout 100 retweet错误修复,[确保在分支中根据需要提交所有内容],$git rebase master执行后:
    git checkout master git merge myFeature git push origin master
    我得到了`![拒绝]多发件人->多发件人(非快进)错误:无法将某些引用推送到'ssh://xxx'为防止丢失历史记录,拒绝了非快进更新并合并远程更改(例如'git pull')再次推之前。有关详细信息,请参阅“git推-帮助”中的“关于快进的说明”部分。“关于您的第二条评论-您在尝试合并之前是否重新设置到master上?(稍后我有空时将查看您的第一条评论-抱歉,这里太忙了!)git hub上的指南似乎增加了一个步骤,即添加一个名为“上游”的新远程设备。在我的指南中,我假设您不需要这样做,因为您在问题中说:“我们有一个每个人都在使用的源/主远程分支。”我还没有使用github,但我认为这是该指南中介绍的用例所特有的。每当我使用“git rebase master”然后使用“git push origin/multi senders”时,我会得到以下
    到ssh:xxx![拒绝]multi senders->multi senders(非快进)错误:无法将某些引用推送到'ssh://xxx'为防止丢失历史记录,拒绝了非快进更新。请在再次推送之前合并远程更改(如'git pull')。有关详细信息,请参阅'git push--help'中的'Note about fast forwards'部分。