1. git checkout -b - 建立、切換分支
如果想以當前的 master 分支為基礎建立新的分支,我們需要用到 git checkout -b 命令。切換到 feature-a 分支並進行提交,執行下面的命令,建立名為 feature-a 的分支。
git checkout -b feature-a
strong@foreverstrong:~/github_work/git-tutorial$ git checkout -b feature-a
switched to a new branch 'feature-a'
strong@foreverstrong:~/github_work/git-tutorial$
實際上,連續執行下面兩條命令也能收到同樣效果。
git branch feature-a
git checkout feature-a
建立 feature-a 分支,並將當前分支切換為 feature-a 分支。這時再來檢視分支列表,會顯示我們處於 feature-a 分支下。
git branch
strong@foreverstrong:~/github_work/git-tutorial$ git branch
* feature-a
master
strong@foreverstrong:~/github_work/git-tutorial$
feature-a 分支左側標有 「*」,表示當前分支為 feature-a。在這個狀態下像正常開發那樣修改**、執行 git add 命令並進行提交的話,**就會提交至 feature-a 分支。像這樣不斷對乙個分支 (例如 feature-a) 進行提交的操作,我們稱為「培育分支」。
下面來實際操作一下。在 readme.md 檔案中新增一行。
# git tutorial
這裡我們新增了 feature-a 這樣一行字母,然後進行提交。
git add readme.md
git commit -m "add feature-a"
strong@foreverstrong:~/github_work/git-tutorial$ git add readme.md
strong@foreverstrong:~/github_work/git-tutorial$
strong@foreverstrong:~/github_work/git-tutorial$ git commit -m "add feature-a"
[feature-a 6df1569] add feature-a
1 file changed, 1 insertion(+), 1 deletion(-)
strong@foreverstrong:~/github_work/git-tutorial$
於是,這一行就新增到 feature-a 分支中了。
2. 切換到 master 分支
現在我們再來看一看 master 分支有沒有受到影響。首先切換至 master 分支。
git checkout master
strong@foreverstrong:~/github_work/git-tutorial$ git checkout master
switched to branch 'master'
strong@foreverstrong:~/github_work/git-tutorial$
strong@foreverstrong:~/github_work/git-tutorial$ git branch
feature-a
* master
strong@foreverstrong:~/github_work/git-tutorial$
strong@foreverstrong:~/github_work/git-tutorial$ cat readme.md
# git tutorial
strong@foreverstrong:~/github_work/git-tutorial$
然後檢視 readme.md 檔案,會發現 readme.md 檔案仍然保持原先的狀態,並沒有被新增文字。feature-a 分支的更改不會影響到 master 分支,這正是在開發中建立分支的優點。只要建立多個分支,就可以在不互相影響的情況下同時進行多個功能的開發。
3. 切換回上乙個分支
我們再切換回 feature-a 分支。
git checkout -
strong@foreverstrong:~/github_work/git-tutorial$ git branch
feature-a
* master
strong@foreverstrong:~/github_work/git-tutorial$ git checkout -
switched to branch 'feature-a'
strong@foreverstrong:~/github_work/git-tutorial$ git branch
* feature-a
master
strong@foreverstrong:~/github_work/git-tutorial$
strong@foreverstrong:~/github_work/git-tutorial$ git checkout master
switched to branch 'master'
strong@foreverstrong:~/github_work/git-tutorial$ git branch
feature-a
* master
strong@foreverstrong:~/github_work/git-tutorial$ git checkout feature-a
switched to branch 'feature-a'
strong@foreverstrong:~/github_work/git-tutorial$ git branch
* feature-a
master
strong@foreverstrong:~/github_work/git-tutorial$
像上面這樣用 「-」 (連字元) 代替分支名,就可以切換至上乙個分支。當然,將 「-」 替換成 feature-a 同樣可以切換到 feature-a 分支。
references
(日) 大塚弘記 著, 支鵬浩, 劉斌 譯. github入門與實踐[m]. 北京:人民郵電出版社, 2015. 1-255
git命令的使用總結1 git checkout
git clone 即可將 拉下 當 更改後,通過git status,就可以看到 的檔案唄更改了,git status s 可以簡易的顯示當前git狀態 新新增的未跟蹤檔案前面有?標記,新新增到暫存區中的檔案前面有a標記,修改過的檔案前面有m標記。m有兩個可以出現的位置,出現在右邊的m表示該檔案被...
github 的分支操作
首先需要當前目錄設定為倉庫目錄 一 建立本地分支 1 檢視有哪些分支 git branch 2 建立乙個分支 git branch name 其中name是分支名 3 切換到分支 git checkout name 說明 可以將2和3合起來操作,建立 切換分支 git checkout b name...
Git 分支的操作
git是linux創始人linus用c語言寫的分布式版本控制系統 而且有乙個head指標,指標指向的是最近一次的提交,每次提交都有乙個commitid,我在這個欄目的其他有講到這些。一次提交我們可以認為是一次快照,我們可以用git reset hard commitid到達某次提交後的狀態 mast...