在分支dev上添加文件a后,回到master 查看会有该文件,再回到dev add,commit后,master分支上的a才会不见
用到的新命令
1.git checkout -b 分支名:创建当前分支的一个分支,并切换到该分支,-b参数表示创建并切换
2.git checkout 分支名:切换到该分支
3.git branch:列出所有分支,当前分支前面会标一个*号。
4.git branch 分支名:创建分支
5.git branch -d 分支名:删除指定的分支
6.git merge 分支名:合并指定分支名 到当前分支
1.创建dev分支
[root@VM_0_11_centos learn_git]# git checkout -b dev
Switched to a new branch 'dev'
<== git checkout -b dev命令相当于下面两行
[root@VM_0_11_centos learn_git]# git branch dev
[root@VM_0_11_centos learn_git]# git checkout dev
2.列出所有分支
[root@VM_0_11_centos learn_git]# git branch
* dev <== 当前分支会标记'*'号
master
3.在当前分支dev上修改readme.txt内容,在最后添加一行
[root@VM_0_11_centos learn_git]# cat readme.txt
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes.
Creating a new branch is quick. <== 新加的一行
4.切换到master分支查看readme.txt
[root@VM_0_11_centos learn_git]# git checkout master
M readme.txt
Switched to branch 'master'
[root@VM_0_11_centos learn_git]# cat readme.txt
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes.
Creating a new branch is quick. <== makter分支也同步了信息,原因是dev还未commit,master指针和dev指向同一处
5.切回dev分支,add和commit dev分支下的readme.txt,dev分支任务完成
[root@VM_0_11_centos learn_git]# git checkout dev
M readme.txt
Switched to branch 'dev'
[root@VM_0_11_centos learn_git]# git add readme.txt
[root@VM_0_11_centos learn_git]# git commit -m "branch test"
[dev 1d24cf9] branch test
1 file changed, 1 insertion(+)
6.切换回mater分支查看readme.txt,发现最后一行的信息不见了
[root@VM_0_11_centos learn_git]# git checkout master
Switched to branch 'master'
[root@VM_0_11_centos learn_git]# cat readme.txt
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes.
<==最后一行信息不见了,原因是dev指针向前移动一个位置了,而当前的master指针还在原来的位置上
7.把dev分支合并到master分支,重新查看master分支下的readme.txt
[root@VM_0_11_centos learn_git]# git merge dev
Updating c0ef94e..1d24cf9
Fast-forward <==这次合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快
readme.txt | 1 +
1 file changed, 1 insertion(+)
[root@VM_0_11_centos learn_git]# cat readme.txt
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes.
Creating a new branch is quick. <== 数据又回来了
8.删除dev分支
[root@VM_0_11_centos learn_git]# git branch -d dev
Deleted branch dev (was 1d24cf9).
[root@VM_0_11_centos learn_git]# git branch
* master <== 只剩下主分支了