2014-11-08 104 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

相關問題