1. 程式人生 > 其它 >Learn Git Branch學習隨筆

Learn Git Branch學習隨筆

一、提交與分支

  git commit  提交紀律

  git branch  簡單地指向某個提交記錄,*表示當前所在分支

  git checkout <name>  切換分支

  git checkout -b <your-branch-name>  建立並切換

二、合併分支

  1)方式1:git merge  產生一個特殊提交記錄,包含2個父節點

    git merge <branch-name>  合併另一個分支到當前分支(當前分支包含了程式碼庫所有修改)

    git chekout <branch-name> & git merge master  切換到<branch-name>分支,並git merge <master>合併master到當前分支(<branch-name>分支也包含了程式碼庫所有修改)

  2)方式2:git rebase  取出一系列的提交記錄,複製,在另一個地方逐步放下去  *在<branch-name>分支上

    git rebase master

    git checkout master

    git rebase <branch-name>

三、HEAD——指向你正在其基礎上進行工作的提交記錄

  通過hash值指定提交記錄(git log 檢視提交記錄的hash值)

  git checkout <hash值>  分離HEAD

四、相對引用

  1)^:向上移動1個提交記錄

  2)~<num>:向上移動多個提交記錄

    git checkout master^  切換到master的父節點

    git checkout master^^  切換到master的第2個父節點

    git checkout HEAD^

    git checkout HEAD~4

    git chekout HEAD^2

    git checkout HEAD~^2~2

五、強制修改分支位置(移動分支)

  git branch -f master HEAD~3

六、撤銷變更

  1)git reset  把分支退回幾個提交記錄,原來指向記錄就像從來沒提交過一樣

    git reset HEAD~2  退回之後,原生代碼庫根本不知道有退回的這2次提交(對遠端分支無效)

  2)git revert  撤銷更改,並分享給別人(通過push到遠端倉庫)

七、整理提交記錄

  1)git cherry-pick <提交hash值>...  將一些提交複製到當前所在的位置(HEAD)下面(需要知道提交記錄的hash值)

  2)互動式rebase(不知道提交記錄hash值時)

    git rebase -i HEAD~4  (1)調整提交記錄的順序  (2)刪除不想要的提交  (3)合併提交

八、本地棧式提交

九、Git Tags——永久地將特定的提交命名為里程碑,標識特定位置(不隨提交而移動)

  git tag V1 C1

十、git describe——描述tag

  git describe <ref>