git创建、切换、合并、删除分支
创建分支
git branch 分支名
切换分支
git checkout 分支名
合并分支
git merge 分支名
关于合并冲突问题的解释:
所谓冲突,无非就是像两个分支中存在同名但内容却不同的文件, Git 不知道你要舍弃哪一个或保留哪一个,所以需要你自己来决定。 此时执行 git status 命令也会显示需要你解决的冲突
删除分支
git branch -d 分支名
由于 Git 的分支原理实际上只是通过一个指针记载,所以创建和删除分支都几乎是瞬间完成。
注意:如果试图删除未合并的分支,Git 会提示你“该分支未完全合并,如果你确定要删除,请使用 git branch -D 分支名 命令。
关于匿名分支
什么时候会出现这种情况:
1.依次创建三个文件并提交(每创建一个文件提交一次)
我们知道branch 命令创建一个分支,然后使用 checkout 命令切换分支。
如果在没创建分支的情况下执行 checkout 命令,会有怎样的事情发生呢?执行 git checkout HEAD~ 命令:
当前的 HEAD 指针处于分离状态,你可以环顾四周,做一些实验性修改并提交它们,并且你可以在这个状态中丢弃任何你所做的提交,而不影响任何分支,做法是执行 checkout 命令切换回别的分支。
如果你希望创建一个新分支,并保持你所做创建的提交,你可以(现在或稍后)通过使用带有 -b 选项的 checkout 命令实现。例如:
git checkout -b <new-branch-name>
HEAD 指针当前指向 52861cf... 2.txt
大致意思就是说:
呃,说人话就是:你使用了 checkout 命令但没有指定分支名,所以 Git 帮你创建了一个匿名分支,OK,既然是匿名,那么当你切换到别的分支时,这个匿名分支中的所有提交都会被丢弃掉(因为你都没给人家命名,反正以后都找不回了,不丢了干啥?)。因此,你可以利用匿名分支来做做实验什么的,反正不会有负面影响。