2014-11-08 74 views
1

我正在尝试一个git流的版本,可以用于一个小团队的开发人员来管理我们的开发过程,大多数员工都是新来的git和bitbucket。我有更多的经验,但我绝不是专家。我们需要对上游开发的pull请求进行一次提交,并且到目前为止制定的过程如下所示:压扁提交一个提交bitbucket的请求

假设上游存储库的现有分叉。此外,请注意,我知道这些命令中的一些可以结合使用,但我也尝试首先教授基本知识。这是如何记录的(或多或少,我在实际文档中更详细)。

# checkout 
$ git checkout develop 

# update 
$ git pull --rebase upstream develop 

# Create topic branch 
$ git branch <topic branch name> 

# Checkout topic branch 
$ git checkout <topic branch name> 

做的工作

# Add changes to index 
$ git add --all . 

# Commit changes 
$ git commit # and provide commit comment 

准备拉的要求,创建此分支,所以我们可以保持我们提交他们被压扁之前,以防万一拉请求被拒绝,或因任何原因。

# Branch the topic branch for a pull request 
$ git branch <topic branch>-pr 

# Checkout the topic branch 
$ git checkout <topic branch>-pr 

# Rebase to squash commits 
$ git rebase -i # Rebase and provide a commit message 
       # for all of the commits that are squashed 

# Something like the following is shown 
pick 1fc6c95 do something 
pick 6b2481b do something else 
pick dd1475d changed some things 
pick c619268 fixing typos 

# Change the word pick to squash for all but the first line, for example: 

pick 1fc6c95 do something 
squash 6b2481b do something else 
squash dd1475d changed some things 
squash c619268 fixing typos 

- >在这一点上,我有一个问题。我似乎无法完成一次提交。在这个分支中总是至少有两个提交,我已经看到了使用--root的选项,但是当我这样做时,bitbucket抱怨我的pull请求分支和上游分支不相关,我不能发出pull请求。

# Push branch to origin 
$ git push origin <topic-branch>-pr 

我觉得我很接近有一个工作过程,所以任何帮助将不胜感激。为了重订过去的4个提交git rebase -i HEAD~4 - https://github.com/ginatrapani/todo.txt-android/wiki/Squash-All-Commits-Related-to-a-Single-Issue-into-a-Single-Commit

为了壁球下一个承诺:

+0

你缺少你互动的rebase期间做了什么细节 – 2014-11-08 17:52:40

+0

对不起,我先挑提交和壁球所有的人,相应更新的问题。 – Mark 2014-11-08 21:22:10

+0

除了1fc6c95,你还有什么提交? – 2014-11-08 22:53:56

回答

1

您正确地做,结帐。

另外,如果它是一个新的分支,你应该在结帐之前做一个git-fetch或者git-pull。在完成任何工作之前,没有理由提供rebase,只有在工作开始并提交之后才能进行rebase。

+0

谢谢,但愿意把它归结为一个单一的承诺,包括rebase提交。在这种情况下,在完成任何工作之前做一个git pull --rebase是没有必要的,但我试图以某种方式编写文档以涵盖任何情况。这个想法是,我不知道结帐前发生了什么。他们可能已经在其中检查了另一个分支,然后在一段时间后回来。只是试图确保它们与上游分支无关,即使这有时会导致执行不必要的命令。那有意义吗? – Mark 2014-11-09 18:29:02

+0

事实证明,我只是在提交过程中重新投入太多,超出了我自己的承诺,进入了以前的历史。我想我现在已经明白了这个问题。感谢所有回复的人。 – Mark 2014-11-09 21:16:46