分支管理:
branch指令
git branch #檢視分支清單
git branch -v #檢視分支清單,更詳細的
git branch -a #檢視所有的分支,保護遠端分支
git branch --merged #檢視那些分支已經合并到目前分支
git branch --no-merged #檢視所有為合并的分支
git branch -d #删除指定分支(已合并,不會造成工作丢失的分支)
git branch -D #強制删除指定分支(慎用,可能會造成工作丢失)
工作流程執行個體:
分支的建立與合并
實際工作中可能會用到類似的工作流,你将經曆如下步驟:
1、開發某個網站
2、為實作某個新的需求,建立一個分支
3、在這個分支上開展工作
正在此時,突然有一個嚴重的bug需要解決,你将按照如下方式來處理:
1、切換到你的線上分支
2、為這個緊急任務建立一個分支,并在其中修複它
3、在測試通過之後,切換回線上分支,然後合并這個修補分支,最後将改動推送到線上分支
4、切換回你最初工作的分支上,繼續工作
git checkout -b iss53 #建立并切換到iss53分支
echo '#!/usr/bin/env python' > a.py #修改檔案内容
git commit -a -m 'test1' #送出
git log --pretty=oneline --decorate #檢視分支狀況
git checkout master #切換回master分支
git checkout -b test #建立并切換到test分支
echo '#coding:utf-8' > a.py #修改檔案内容
git commit -a -m 'testbranch1' #送出
git merge test #将test分支合并到master分支
git branch -d test #删除test分支
git checkout iss53 #切換分支
echo 'import os' > a.py #修改檔案内容
git commit -a -m 'v1' #送出
git merge iss53 #因為在不同的分支中修改了同一個檔案的不同為,所有産生了沖突
Auto-merging a.py
CONFLICT (content): Merge conflict in a.py
Automatic merge failed; fix conflicts and then commit the result.
git status #檢視沖突的情況
git mergetool #打開mergetool開始解決沖突,mergetool會啟用預設的文本編輯器并帶領你解決沖突
git status #檢視是否解決完畢
git add -A #解決完後跟着所有檔案
git commit -m 'ok' #送出并合并分支
本文轉自 紅塵世間 51CTO部落格,原文連結:http://blog.51cto.com/hongchen99/1977998