如何在组中工作时为我的拉取请求维护一个分支?

时间:2015-12-16 12:15:50

标签: git bitbucket

我有权直接推送到掌握,但在我的团队中我们遵循更礼貌的机制:

  • git pull
  • git checkout -b myBranch
  • git merge master
  • 做我的东西... git add ... etc。
  • git push origin myBranch --force
  • 然后"问"在bitbucket web GUI上的一个Pull Request

但是我想知道是否有更直接的方式来说"我不再需要myBranch的本地副本,只是表现得像是一个新的分支,也是用于远程"

我已经阅读了Can I destroy and recreate a Git remote branch in one command?,我可以通过远程删除来解决这个问题,但是这一点让我感到不安。

编辑:此外,如果目前的工作方式导致同步错误,我想知道

3 个答案:

答案 0 :(得分:4)

  

我不再需要myBranch的本地副本了,就好像它是一个新的分支,也是远程的

如果您只想从当前主人那里获得一个全新的分支myBranch(失去myBranch的所有历史记录):

git fetch
git checkout -B mybranch origin/master

该命令将重置您的分支:来自git checkout

  

如果给出-B,则创建<new_branch>(如果它不存在);否则,重置   这是交易相当于:

$ git branch -f <branch> [<start point>]
$ git checkout <branch>

然后:

# work

# Before pushing, make sure you are up-to-date
git fetch
git rebase origin/master
git push --force -u origin myBranch

远程分支将重置为新的myBranch历史记录。

答案 1 :(得分:2)

根据您所包含的初始步骤以及您的评论,以下是我将从新功能或错误修复开始时采取的步骤:

git checkout master
git pull
git checkout -b myBranch

... do work ... add/commit/etc

... periodically when you want to get the latest from master...
git fetch
git rebase origin/master

git push --force origin myBranch

在rebase步骤中,当然您可能会遇到代码冲突,就像合并一样。解决这些冲突的过程将非常相似。 Git提供了有关如何继续执行这些步骤的说明。

因此,这些步骤与您最初发布的步骤非常相似,但是rebase将使您的历史更清晰(与合并相反),因为它可以防止无意义的合并提交。

答案 2 :(得分:0)

我有一些阅读文字: - )

好文章,分支机构如何在发展中取得成功。

http://nvie.com/posts/a-successful-git-branching-model/