2011-10-17 81 views
4

在工作中,每個開發人員都有自己的開發分支,即我們的工作。分支= dev_name_of_employee。 IE瀏覽器。 dev_jon取當前Git分支並將其內容「重置」爲主

dev_jon具有超過100個提交中的新功能,它尚未準備好進行測試或部署,因此我創建了另一個分支以將該新功能放入名爲staging_jon(可以稱之爲holding_jon)中。

現在我需要從另一個功能開始,並讓dev_jon包含master的內容。一種迴歸主人的東西。

如何在不刪除dev_jon及其遠程分支的情況下執行此操作,然後從主服務器重新創建它?我無法完成所有這些更改,因爲它們已經被推送。

或者是否有更好的方式讓每位員工在開發過程中都能在自己的同事處工作?

+4

不要給開發者個人分支,而是使用每個功能的分支。這樣,開發人員可以分享分支,而無需詢問「您的分支或我的分支」。 –

+0

根據發佈後獲得的經驗,通過開發人員名稱進行分支是一個糟糕的主意。分支的前綴是一個類型,然後是一個引用票證管理系統的票證ID,後面加上一個簡短的描述,例如:'bug/3452-table-search-broken'或'feature/89756-add-該-things'。 – Jon

回答

9

在dev_jon,你可以這樣做:

git reset --hard master 

可能無法直接適用/相關性,但你可以看看GitHub的流程:http://scottchacon.com/2011/08/31/github-flow.html

+0

GitHub Flow建議不爲每個開發人員保留一致的branch_name,即dev_jon,但爲每個新功能創建一個新分支。這可能是應該如何。我試着'git reset --hard master',看看這是否符合我的要求。謝謝。 – Jon

1

我不認爲你目前的模式是非常理想的,開發人員應該能夠同時開發多個功能,因此每個開發人員只有一個分支不是最靈活的。反正這裏你的情況我會做什麼假設dev_jon正在跟蹤origin/master的:

git reset --hard origin/master 

這也假設你目前dev_jon分支。

希望它能幫助,

+0

是的,我不認爲是理想的。 – Jon

1

您可以執行硬重置,讓您的dev-jon分支是一樣的高手,但你必須要小心,當你來到發佈您的新作品。遠程分支origin\dev_jon將是你的老功能,當你來推你會得到像下面這樣

! [rejected]  dev_jon -> dev_jon (non-fast-forward) 
error: failed to push some refs to '/tmp/example' 
To prevent you from losing history, non-fast-forward updates were rejected 
Merge the remote changes (e.g. 'git pull') before pushing again. See the 
'Note about fast-forwards' section of 'git push --help' for details. 

警告考慮創建一個特性分支通過larsmans的建議。

相關問題