我是git的新手,想知道如何处理一个非常基本的情况。我在stackoverflow上读了很多关于git的文章,但仍然无法找到答案。
我们有一个名为origin/master的远程分支,大家都在上面工作。我有一个叫做FeatureA的功能需要实现,可能需要一些时间来开发。与此同时,人们可能会向origin/master检入代码。
考虑到以下需求,我的工作流程会是什么样子,我应该如何设置我的git分支:
我希望能够将代码更改提交到我的分支,并将它们推送到我们服务器上的远程分支,以防我的电脑出问题而丢失更改。
我希望保持我的分支与主分支同步。
我希望尽量减少常规合并。我喜欢git rebase的概念,因此希望最大化其使用,从而进行快进合并。
在某个时候,我们将不得不将我的FeatureA分支合并到origin/master中。
总结:
我如何设置一个从origin/master拉取但推送到origin/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 master git merge myFeature git push origin master
但我得到了如下错误信息:! [rejected] multi-senders -> multi-senders (non-fast-forward) error: failed to push some refs to 'ssh://xxx' 为防止您丢失历史记录,非快进更新被拒绝。 在再次推送之前,合并远程更改(例如'git pull')。有关详细信息,请参见“git push --help”中的“有关快进的注意事项”部分。
- ben39