新增文件在未提交之前不属于任何分支,即使暂存了也不属于任何分支。因为分支指针指向的都是提交对象。
分支列表
Rench@DESKTOP-I532HP0 MINGW64 /d/learnGit/learnBranch (master)
$ git branch
dev
iss53
* master
*标记的为当前分支
查看每一个分支的最后一次提交
Rench@DESKTOP-I532HP0 MINGW64 /d/learnGit/learnBranch (master)
$ git branch -v
dev 975b21e modify DESCRIPTION.txt in branch dev
iss53 0cd71e9 add new file named iss53.txt
* master 5d5dff9 merge conflict
切换分支
当你切换分支的时候,Git 会重置你的工作目录,使其看起来像回到了你在那个分支上最后一次提交的样子。 Git 会自动添加、删除、修改文件以确保此时你的工作目录和这个分支最后一次提交时的样子一模一样。
git checkout <branch-name>
新建分支并切换到该分支
# 新建的分支是以当前分支为基础,当前工作目录中的文件在新分支中都可见。
git checkout -b <new-branch-name>
# 等效于下面2条命令
git branch <branch-name>
git checkout <branch-name>
合并分支
要将a分支merge到master分支,命令如下:
#首先要切换到master分支
git checkout master
#执行merge命令
git merge a
解决冲突文件
冲突文件展示
this is a description
<<<<<<< HEAD
I will modify the same place in different branch.
=======
This is dev message
>>>>>>> dev
<<<<<<< HEAD和=======之间的内容是当前分支的内容
=======和>>>>>>> dev 之间的是dev分支的内容
解决冲突后<<<<<<<<HEAD、=======、>>>>>>>>dev 这些内容都要删除掉。
解决冲突的方式可以手动在vim中编辑,或者在可视化工具中操作。
冲突解决完成后,使用git add <file>标记文件为已解决,并使用git commit提交
删除分支
合并之后一般会删除不需要的分支
# 删除a分支
git branch -d a
查看已经合并的分支
git branch --merge
查看尚未合并的分支
git branch --no-merge
网友评论