git高階淺入之rebase與merge差異

2022-07-12 13:42:10 字數 1772 閱讀 9834

相比較於git merge,我們在初級篇已經學習過merge操作,每次使用merge合併分支時候,會將兩個分支又合到一條分支上,這樣造成的問題就是在乙個git分支樹上好多交叉,如果你希望commit的時候不要出現分支,可以使用rebase替代

我們新建乙個git專案,然後建立乙個空的test.js檔案並commit,這時候的分支圖是這樣的

接下來我們在master分支修改test.js檔案並commit,然後建立乙個分支branch1,並在branch1上修改test.js檔案,並提交。然後我們看下分支圖

如果這時候我們在master分支合併branch1的話

打叉了!打叉了!打叉了!

ok,我們回退到上乙個版本,回退後分支是這樣的

試下使用rebase的效果,進行如下操作

報了個錯,說rebase的時候有衝突,那麼我們vim test.js衝突的地方修復,然後執行下面

git add .

git rebase --continue // 繼續rebase (同時普及一下另外乙個git rebase --abort 放棄本次rebase)

這個時候分支是這樣的:

然後我們回到master,去merge branch1(這樣的目的是因為能從上圖看到,master所指向的位置靠後了,要將其更新到最前面)

為什麼需要再branch1上rebase而不是在master上直接rebase?看下圖

其實就從字面意思來理解在branch1上git rebase master就是說把branch1的基準重新定位到master分支指向的最新一次commit處,

git操作 git 操作之 rebase

在使用git提交 時,提交次數過多導致不好檢視和codereview 所以有必要把幾次相關的提交合併來減少提交次數 注意 在rebase命令之前需要commit 或者 stash 或者 revert 一下當前的改動,否則會報錯 第一步 在提交的資料夾下開啟 git 視窗 右鍵選擇 git bash ...

git合併之 merge和rebase

合併有兩種方法 git rebase和git merge 優先用 rebase!區別 git checkout dev git merge master 或者,你也可以把它們壓縮在一行裡。git merge master dev git checkout dev git rebase master ...

CSS 之 淺入淺出

css,層疊樣式表 英語 cascading style sheets,簡寫css 又稱串樣式列表 層次結構式樣式表檔案,一 種用來為結構化文件 如html文件或xml應用 新增樣式 字型 間距和顏色等 的計算機語言。層疊 是指乙個 檔案的樣式可以從其他的樣式表中繼承下來。讀者在有些地方可以使用他自...