2014-01-31 66 views
1

我有一個應用程序,它增加了額外的調試功能,這些功能使我更容易開發。 但是,我無法提交這些更改。所以我需要一種方法來在「增強」分支上實現我的功能,然後當我最終完成時,將其推送給主設備。使用多個分支來開發功能的Git工作流程

有跡象表明,我已經找到了兩個工作流: -

工作流程#1:

1. Checkout augmented branch 
    2. Make changes 
    3. Stash the changes 
    4. Switch to master 
    5. Apply the stash and resolve conflicts 
    6. Commit and push to master 

工作流#2:

1. Checkout augmented branch 
    2. Make changes 
    3. Switch branches using git checkout -m 
    4. Check everything is fine and commit to master 

而對於這兩個工作流程我將來自主服務器的更改重定向到「增強」分支,以便所有內容保持最新狀態。

我應該注意哪些缺陷?有沒有更好的方法?

+1

需要注意的一點是:有一天,您需要在生產或SIT中使用這些調試功能,而且您和您的上司會希望您將它們合併爲主。 –

+0

在這種情況下,我們可以將它重新綁定到沒有? –

+0

erm。爲什麼不設置一個系統屬性'logging = info'並將其讀入。因爲如果它在產品中斷 - 即使幾秒鐘輕彈'logging = debug'也是一個救星。如果它的Java - 嘗試'log4j'。如果那是無關緊要的道歉,在我們的團隊中我們有很多發展,人們不能承諾「主人」。 'master'必須始終匹配生產。變更只能在投入生產時合併到「主」中。在合併到「master」之前,合併到其他人也已合併的集成流中。測試然後選擇性地合併到'master'中。 –

回答

0

所以我需要一種方法來實現我的功能在「增強」分支,然後當我最終完成,把它推到主。

這將在master(因爲您是唯一一個與該分支機構合作)的基礎上定期重定義您的「augmented_branch」。

一旦您確信使用您的版本的其他團隊,合併到master將是一個簡單的快速合併。

+0

如果我這樣做,那麼增強分支上的其他承諾更改也不會適用於主?我不希望發生這種情況。 –

+0

@eddardstark不會,一個rebase會讓你的「'augmented_branch'」提交被隔離。主人不會意識到這些提交。 – VonC