git 使用流程規範(merge-request)

git 使用流程規範(merge-request)

若是你的git workflow 採用此模式,謹記必定要忘記 git merge,除了在 master 分支上 git pull 可使用 git pull,其餘分支若是要 git pull應該使用 git pull --rebase
使用 git rebase 的黃金法則就是:分支的開發者儘可能是一我的,重寫提交歷史不會影響別人git

  1. 新建分支fetch

    # 建立分以前,先切換到 master 分支,更新到最新版本,確保你的新分支是基於最新版本的master
    # 在 master 分支上基本上只有一個操做 git pull
    git checkout master
    git pull
    # 建立分支 git checkout 命令是切換分支,加上參數 -b 表示若是分支不存在,就建立,且當即切換到新建立的分支
    git checkout -b myfeature
  2. 分支開發code

    # 添加工做區改變的文件到暫存區,儘可能git add file1 file2, 不提倡 git add *
    git add *
    # 查看當前工做區的狀態
    git status
    # 把暫存區內容放入版本庫,加上 verbose 參數的話會對變化比較且顯示
    git commit --verbose
  3. 撰寫提交信息開發

    git 提交的信息很是重要
    第一行是信息摘要50字之內同步

    空一行,
    第三行羅列出改天緣由,主要變更,注意事項
    切記提交有意義的 commit messageworkflow

  4. 與主幹同步it

    # 拉取遠端倉庫全部變動內容到本地倉庫
    # 注意和 git pull 的區別,git pull=git fetch + git merge(rebase)
    git fetch origin

    假設分支 myfeature 是幾我的共同開發,這個時候 須要執行ast

    # 此操做可能會產生衝突,且解決完以後 push 的時候,可能要加上 --force 參數強制推送代碼,改變提交歷史記錄,慎用
    git pull --rebase
  5. 合併 commit
    此處的操做是最複雜的file

    #rebase 命令和 merge 相仿,-i參數表示交互模式
    git rebase -i origin/master

    使用交互模式,能夠合併同一個分支裏面的多個 commit 爲一個或者多個,能靈活控制 commit。
    當執行 rebase 發生衝突的時候,先解決衝突文件,使用git add 標誌全部衝突爲已經解決。 最後 git rebase --continue 完成 rebase 流程request

  6. 推送代碼到遠端

    # push 命令加上 --force 參數,由於 rebase 以後,分支歷史改變,跟遠程分支不必定兼容
    # 
    git push -u origin myfeature
  7. 請求代碼合併 merge-request

相關文章
相關標籤/搜索