Skip to content

Jakevin/gitflow

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gitflow

Git flow 練習用專案

Git flow 簡介

  • 主要分支

    • master: 永遠處在 production-ready 狀態,也就是跟 itunes 上的版本一致
    • develop: 最新的下次發佈開發狀態
  • 支援性分支

    • feature: 開發新功能都從 develop 分支出來,完成後 merge 回 develop
    • release: 要 release 的版本,只修 bugs。從 develop 分支出來,完成後 merge 回 master 和 develop。這裏使用 build version 當作 release name, ex: release/1.0.0
    • hotfix branches: 等不及 release 版本就必須馬上修 master 趕上線的情況。會從 master 分支出來,完成後 merge 回 master 和 develop。一樣使用 build version 當作 hotfix name, ex: hotfix/1.0.0
  • 小工具(建議熟悉 git 指令之後再來使用)

指令

  • push branch 到遠端

    • git flow feature publish some_awesome_feature
    • git push origin feature/some_awesome_feature
  • 追蹤一個遠端的 branch

    • git flow feature track some_awesome_feature
    • git checkout -b feature/some_awesome_feature -t origin/feature/some_awesome_feature
  • 刪除遠端的 branch

    • git push origin :feature/some_awesome_feature
    • 注意:git-flow 小工具不會自動刪除已經存在遠端的 feature branch,要手動刪除

如何合併 Branch

  1. 先確定 develop 是最新的 git pull origin develop
  2. 對 feature branch 做 git rebase develop (這裏最難,要學會 interactive mode,可以拿掉某個 commit 以及合併或修改內容)
  3. 在從 develop bracnh 做 git merge feature/some_awesome_feature –no-ff,–no-ff 的意思是會強制留一個 merge commit log 記錄,這可以讓 commit tree 看清楚發生了 merge 動作。(因為我們剛做了 rebase,而 git 預設的合併模式是 fast-forward,所以如果不加 –no-ff 是不會有 merge commit 的) 這個 merge commit 的另一個額外方便之處是,如果想要 reset/revert 整個 branch 只要 reset/revert 這個 commit 就可以了
  4. 如果此 feature branch 有 remote branch,要先砍掉 git push origin :feature/some_awesome_featuregit push origin develop (這是因為 rebase 一個已經 push 出去的 repository,然後又把修改的 history push 出去,會讓 develop branch 產生大問題)

待補充


About

practice git flow

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%