簡體   English   中英

Git rebase(Merge Squash)我的功能分支到另一個分支

[英]Git rebase (Merge Squash) my feature branch onto another branch

我正在尋找一個git命令來幫助我准備好進入Master時使用我的功能分支。 這個git命令會將我在分支上的所有更改壓縮到master之上的單個提交中。 我今天這樣做:

git rebase origin/master
git rebase -i HEAD~4

其中4是壁球的提交次數。 但是,這需要我知道我有多少提交。 我今天這樣做是通過運行:

git log HEAD...origin/master

然后計算提交。

我覺得應該有更好的方法來做到這一點。 或者這也是其他人如何做到的?

你所要做的就是:

git checkout feature_branch
git rebase master
git checkout master
git merge --squash feature_branch

作為git merge --squash文檔 git merge --squash說:

生成工作樹和索引狀態,就好像發生了真正的合並(合並信息除外),但實際上沒有提交或移動HEAD,也沒有記錄$ GIT_DIR / MERGE_HEAD導致下一個git commit命令創建合並承諾。 這允許您在當前分支之上創建單個提交,其效果與合並另一個分支(或章魚的情況下更多)相同。

之后,您可以git commit已經上演的更改。

以下是我所做的工作,這些工作來自於在大型團隊中工作的大量經驗:

# Get latest from master
git checkout master
git pull --rebase

# rebase master into your feature branch
git checkout feature/my-feature
git rebase master --preserve-merges

# merge feature into master
git checkout master

# DO ONLY ONE of the 2 options below
# if you only have one or (maybe) 2 commits in your feature branch
git merge feature/my-feature

# OR
# this forces an empty merge commit (useful if we need to roll things back)
git merge --no-ff feature/my-feature

# if you use Github, this should also close the pull request
git push origin master

希望這可以幫助!

我想你正在尋找git merge --squash 它應該將您的功能分支中的提交引入master並將其壓縮,以便您可以創建單個提交。

暫無
暫無

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

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