如何跟踪我的开发git分支中的origin/master
我是git的新手,我想知道如何处理一个非常基本的场景。我读了很多关于git的stackoverflow的帖子,但仍然无法找出答案。如何跟踪我的开发git分支中的origin/master
我们有一个每个人都在研究的起源/主远程分支。 我有一个我想实现的功能,可能需要时间来开发。同时,人们可能正在检查源代码/主人的代码。
会是什么我的工作流的样子和我应该如何去建立我的Git分支,给出了以下需求:
我希望能够提交代码更改我的分支,他们推到我们的服务器上的一个远程分支,所以我不会因为我的电脑被炸而发生变化。
我想让我的分支与主分支保持同步。
我想尽量减少定期合并。我喜欢git rebase的概念,所以我想最大限度地利用它,因此快速合并。
在某些时候,我们将不得不将我的分支FeatureA合并到origin/master中。
汇总:
如何设置,从产地/主拉,但推到原点/ MY-BRANCH一个分支?
我的工作流程会是什么样子?
更新:
谢谢@ will-pragnell!您的解决方案和以下内容有什么区别?
在github本页面提示:
https://github.com/diaspora/diaspora/wiki/Git-Workflow
为了得到从开发主干上的最新更新,做一个一次性设置输入建立主GitHub库为远程:
$ 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 -b myFeature
推送一个新的远程分支(见this stackoverflow question如果需要此步骤的详细信息)
git push origin myFeature
现在,您可以在myFeature分支上轻松工作,在需要时使用上述命令,而不必搞乱主分支。当你需要得到别人对主做提交的持有,你可以这样做是这样的:
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 master
git merge myFeature
git push origin master
git checkout -b FeatureA
(创建和结帐分支)git push origin FeatureA
(推新创建的分支原点)
新的分支FeatureA工作。您不希望频繁合并,然后再分配
git rebase origin
将来每当你想合并到主。
git checkout master
git merge FeatureA
git push origin master
任何时候我做'git rebase master'然后'git push origin/multi-senders'我得到以下'ssh:xxx ![拒绝]多发件人 - >多发件人(非快发) 错误:无法将某些引用推送到'ssh:// xxx' 为防止您丢失历史记录,拒绝非快进更新。 再次按下之前合并远程更改(例如'git pull')。有关详细信息,请参阅'git push --help'的'快速转发注意事项'部分 – ben39
谢谢@ will-Pragnell!我的问题更新如下:你的解决方案和以下内容有什么区别? github上的这个页面建议:https://github.com/diaspora/diaspora/wiki/Git-Workflow 为了从开发中获得最新的更新,请执行一次性设置以建立主要的GitHub回购通过输入一个远程: $ git的远程添加上游GIT中://github.com/diaspora/diaspora.git, $ GIT中取上游, $ GIT中结帐主, $ GIT中变基上游/主, $ git的结帐100-retweet-bugfix, [请确保所有提交的分支必要], $ git rebase master – ben39
做完之后: 'git checkout master git merge myFeature git推起源大师' 我得到 '! [拒绝]多发件人 - >多发件人(非快发) 错误:无法将某些引用推送到'ssh:// xxx' 为防止您丢失历史记录,拒绝非快进更新 在再次推送之前合并远程更改(例如'git pull')。有关详细信息,请参阅 '关于'快速前进'的快速注释'部分“# – ben39
关于您的第二条评论 - 在您尝试合并之前,是否已重新绑定到主服务器上? (当我有一个空闲的时刻,稍后再看看你的第一条评论 - 对不起,这里超级忙!) –