星期三, 1月 17, 2018

[GIT] git rebase 用法


如果我要從master branch做一個新的branch,
並且一直sync master的資料,可以用以下做法:

# / git checkout -b newbranch master
(做新的branch)

# /  git checkout newbranch
(切到新的branch)

# / git push origin newbranch
(checkin 新的branch)

但如果在新的branch改了東西,還沒有checkin,
這時如果要sync master的資料時會出現問題。

# / git pull --rebase
Cannot pull with rebase: You have unstaged changes.
Please commit or stash them.

這時要用git stash方式來暫存你之前改的東西,

# / git stash
# / git stash list
(存進暫存器)
# / git rebase origin/master
(sync master branch)
# / $git stash pop
(把之前存進去的修改再pop出來)

但如果你已經在新的branch有commit過東西到新的branch上,
要重新rebase的話可能會有問題,
會顯示你新的branch有多一筆commit,
所以我們可以使用merge來把舊的branch給sync過來。

# / cd newbranch
# / git merge master

或者

# / git merge master newbranch


ref_1
ref_2
ref_3
ref_4


沒有留言: