分支——Git使用(二)

項目開發時很難一條主線走到底,必不可免的要建立分支。修改Bug或添加新特性時修改的未加驗證的代碼直接提交到主分支,絕對會讓和你一塊兒工做的小夥伴們崩潰,這時候建立分支就很必要了。git

在Git中建立分支的成本很低,並且支持本地分支,在本地分支上開發對其餘小夥伴基本沒有影響。blog

git branch是常規的分支管理命令。開發

首先建立一個git庫,it

mkdir mygit
cd mygit
git init

建立了mygit文件夾,進入文件夾後,建立git庫。ast

增長readme文件,class

echo "hello, my git." > readme.txt

 提交,test

git add readme.txt
git commit -m "init and add readme.txt"

使用git status,看一下當前庫的狀態,bug

$ git status
On branch master
nothing to commit, working directory clean

只有一個分支(branch)master,使用git branch命令查看,也是如此,項目

$ git branch -av    #增長-av參數,輸入全部分支的詳細信息
* master 0e9691a init and add readme.txt

增長一個新的分支my_branch1,di

git branch my_branch1

切換到新分支,

git checkout my_branch1

修改readme.txt文件,

$ cat > readme.txt << EOF
> hello, my git.
> Git is very useful!
> EOF

 提交,

git add .
git commit -m "test branch modify"

查看readme.txt文件,

$ cat readme.txt
hello, my git.
Git is very useful!

切換到master分支,

git checkout master

查看readme.txt文件,

$ cat readme.txt
hello, my git.

從my_branch1分支切換到master分支後,readme.txt文件也被替換了。

將my_branch1分支下的修改合併到master分支,

git merge my_branch1

查看readme.txt文件,

$ cat readme.txt
hello, my git.
Git is very useful!

已經將my_branch1分支的修改合併到了master中,如今刪除my_branch1分支,

$ git branch -d my_branch1
Deleted branch my_branch1 (was a937765).

在git中建立分支,基本沒有什麼成本,在修改bug或者添加新功能時,咱們能夠盡情的建立分支修改。

多我的合做時,合併分支常常遇到衝突的狀況,咱們來模擬一下,

建立分支my_branch2,

git branch my_branch2

切換到my_branch2分支,修改readme.txt文件,在其後追加,

git checkout my_branch2
echo "Git is very great." >> readme.txt

提交,

git add readme.txt
git commit -m "test branch merge conflict"

切換到master分支,修改readme.txt文件,並提交,

git checkout master
echo "git is great." >> readme.txt
git add readme.txt
git commit -m "test branch merge conflict"

合併my_branch2分支,

$ git merge my_branch2
Auto-merging readme.txt
CONFLICT (content): Merge conflict in readme.txt
Automatic merge failed; fix conflicts and then commit the result.

產生衝突了。

查看readme.txt文件,

$ cat readme.txt
hello, my git.
Git is very useful!
<<<<<<< HEAD
git is great.
=======
Git is very great.
>>>>>>> my_branch2
<<<<<<< HEAD與=======之間是master分支代碼,=======與>>>>>>> my_branch2之間是my_branch2分支代碼,咱們但願保留my_branch2分支修改的代碼,編輯readme.txt文件以下:
hello, my git.
Git is very useful!
Git is very great.

提交,

git add readme.txt
git commit -m "test branch merge conflict"
相關文章
相關標籤/搜索