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