簡體   English   中英

如何將develop分支中的git提交合並到一個功能分支

[英]How to merge git commits in the develop branch to a feature branch

我的git倉庫中有一個開發分支和一個功能分支。 我添加了一個開發提交,現在我想將該提交合並到我的功能分支。 如果我這樣做

git checkout feature
git merge develop

我最終得到了合並提交。 由於我將頻繁地將關於開發的新提交合並到我的功能分支,所以我想避免所有這些不必要的合並提交。 我看到這個答案建議做一個git rebase develop但它最終會重新繞過我的分支方式而且rebase失敗了。

更新:我最終做的是

git checkout feature
git merge develop # this creates a merge commit that I don't want
git rebase # this gets rid of the merge commit but keeps the commits from develop that I do want
git push

更新:我剛剛注意到,當我合並然后rebase到功能分支時,開發時的原始提交會獲得不同的哈希。 我不認為這就是我想要的,因為最終我會將功能合並到開發中,我猜這不會很好。

要將一個分支集成到另一個分支,您必須合並或重新綁定。 因為在任何其他地方沒有引用的引用(不合並到其他本地分支;沒有被推送到任何遠程分支)的rebase提交是唯一安全的,所以合並通常更好。

如果您的功能分支純粹是本地的,那么您可以在開發之前對其進行重新定義。 但是,理解rebase如何工作需要時間,在此之前,很容易意外地產生重復或丟棄的提交。 合並提交可能看起來很嘈雜,但合並保證始終是安全和可預測的。

要獲得更好的視圖,請嘗試在圖表中記錄所有內容:

git log --all --graph --oneline --decorate

同樣值得考慮的是你是否真的需要 develop合並到feature的提交。 通常它們是可以分開的東西,直到feature合並到后期develop

如果您經常發現需要在featuredevelop代碼,那么可能表明您的功能分支太長時間運行。 理想情況下,功能應該以這樣的方式分割,即它們可以獨立工作,而不需要在整個過程中進行定期集成。

如果您只想從develop分支提交一個提交,您可以在feature分支中挑選它:

 git checkout feature
 git cherry-pick -x <commit-SHA1>

提交將作為一個新的應用程序應用於您的分支(如果它不會產生沖突),並且當您將合並回feature分支時,Git將處理它而不會發生沖突。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM