git rebase有哪些用法?

時間 2021-05-05 17:15:57

1樓:

我來說兩個經典用法,來看看git rebase用法有多麼誘人~

[案例]去除提交列表中的某個commit,例如在master分支上A→B→C→D→E→F,除去D。

方案一:

git checkout C; //將HEAD切換到C提交

git cherry-pick master^;//master^即E,將E放到C後面,E的HSA1值改變

git cherry-pick master; //master即F,將F放到E後面,F的HSA1值改變

git checkout master; //將HEAD切換到master分支

git reset --hard HEAD@ ;//將HEAD切換到最新的F

方案二:

採用變基的方式

git rebase --onto C E^ F //前開後閉區間,E^即D,表面C後面加上(D,F]

git checkout master;

git reset --hard HEAD@

方案三:

互動式變基

git rebase -i D^

問題2:如何合併歷史提交?

[案例]在master分支上A→B→C→D→E→F,合併D到C,即A→B→CD→E→F。

方案一:

git checkout D;

git reset --soft HEAD^^

git commit -c c //-c表示重用C的提交資訊

git cherry-pick E;

git cherry-pick F;

git checkout master;

git reset --hard HEAD@

方案二:

用變基命令

git checkout D;

git reset --soft HEAD^^

git commit -c c //-c表示重用C的提交資訊

git tag newbase

git rebase --onto newbase E^ master

git tag -d newbase //清理該tag

方案三:

互動式變基

git rebase -i C^將第二行的pick 更改為 squash,兩者將合併。

2樓:hengjin xu

rebase的使用場合要看具體情況,並非取代merge.

把乙個branch的commit 拿到另乙個branch上,git提供了2個方法。

1.merge(其中merge根據具體的common ancestor又分兩種型別,fast-forward 和 three-way )

2.rebase

具體git的工作原理可參考pro git book。

3樓:

瀉藥。如果你問命令的用法,man git-rebase如果你需要在網頁上檢視,

Git - git-rebase Documentation如果你問 rebase 使用的場合,

用來替代 merge

用來修改 commit 歷史

介詞 in 有哪些用法?

已登出 刷過了English Prepositions Explained的in部分,我大概說一下 in的概念是這樣的 o 也就是有乙個東西被圍在邊界裡面了,和into相比,更加強調狀態而不是動作 說一下幾個困難的地方吧 其中一種是in circumstances,因為 circum 其實有in的意...

IF函式有哪些奇妙的用法?

星有靈稀 if算不,在原始資料表不能改動的情況下,就對Vlookup的查詢造成了困擾。在這種情況下,if搭配Vlookup的作用就會被凸顯出來 比如上圖中需要對ID進行匹配Name,如果不改動原始表,Vlookup是無法使用的,但通過搭配if,可以看到可以徹底扭轉局面,這其中的原理就要歸功於if的真...

忌廉槍有哪些創新用法?

嬌禹輝z 先裝忌廉,不過忌廉要裝一半瓶子的量,剩下的一半是給一氧化二氮的,要不然充氣就沒有意義了。然後裝瓶蓋和忌廉嘴,擰緊之後,把瓶子上下來回使勁搖3到5下讓氣和忌廉充分融合。然後往容器裡打奶油就成型了。追問 還有忌廉槍用完了忌廉怎麼清洗啊?如果拆出來那些氣會不會一下子漏光了,我之前用的乙個氣彈都還...