2013年6月27日 星期四

git 在local開branch後cherry-pick到欲push的branch

起源:
假設git專案的名稱叫做devel
當其他人有改devel後push上去,你如果沒有git pull有時候會發生conflict
還有我需要在devel 和 devel_2 兩個branch之間交互工作,但devel可能只改到一半還不足以commit一個新的版本
原本的作法很蠢...
都是git diff 看自己改了什麼,紀錄到記事本,然後 git reset --hard 後 git pull (做git pull時今天測試沒有reset,仍然正常pull下來,可能其他人沒有改我改的那隻而產生衝突) 或git checkout devel_2

後來看網路上寫說git branch的強大,打算用下面流程做:
1. 在本地開一個分支
2. 然後再checkout 遠端的分支
3. 再cherry-pick 本地分支提交的版本到遠端分支 
4. 再push到遠端

實做:
git branch local_branch
(修改)
git commit -m "commit ..."
git checkout devel
git cherry-pick -n local_branch-commit-id
git commit -m "commit ..."
git push


沒有留言:

張貼留言