若是你的git workflow 採用此模式,謹記必定要忘記 git merge,除了在 master 分支上 git pull 可使用 git pull,其餘分支若是要 git pull應該使用
git pull --rebase
使用 git rebase 的黃金法則就是:分支的開發者儘可能是一我的,重寫提交歷史不會影響別人git
新建分支fetch
# 建立分以前,先切換到 master 分支,更新到最新版本,確保你的新分支是基於最新版本的master # 在 master 分支上基本上只有一個操做 git pull git checkout master git pull # 建立分支 git checkout 命令是切換分支,加上參數 -b 表示若是分支不存在,就建立,且當即切換到新建立的分支 git checkout -b myfeature
分支開發code
# 添加工做區改變的文件到暫存區,儘可能git add file1 file2, 不提倡 git add * git add * # 查看當前工做區的狀態 git status # 把暫存區內容放入版本庫,加上 verbose 參數的話會對變化比較且顯示 git commit --verbose
撰寫提交信息開發
git 提交的信息很是重要
第一行是信息摘要50字之內同步
空一行,
第三行羅列出改天緣由,主要變更,注意事項
切記提交有意義的 commit messageworkflow
與主幹同步it
# 拉取遠端倉庫全部變動內容到本地倉庫 # 注意和 git pull 的區別,git pull=git fetch + git merge(rebase) git fetch origin
假設分支 myfeature 是幾我的共同開發,這個時候 須要執行ast
# 此操做可能會產生衝突,且解決完以後 push 的時候,可能要加上 --force 參數強制推送代碼,改變提交歷史記錄,慎用 git pull --rebase
合併 commit
此處的操做是最複雜的file
#rebase 命令和 merge 相仿,-i參數表示交互模式 git rebase -i origin/master
使用交互模式,能夠合併同一個分支裏面的多個 commit 爲一個或者多個,能靈活控制 commit。
當執行 rebase 發生衝突的時候,先解決衝突文件,使用git add 標誌全部衝突爲已經解決。 最後 git rebase --continue 完成 rebase 流程request
推送代碼到遠端
# push 命令加上 --force 參數,由於 rebase 以後,分支歷史改變,跟遠程分支不必定兼容 # git push -u origin myfeature
請求代碼合併 merge-request