git的分支操作是在开发主线上分离出来,单独列出分支。可以理解为像是复制出一个文件夹,然后在这个文件夹下操作。
列出分支命令:git branch
代码语言:javascript复制$ git branch master* newtest
这是我的两个分支,master和newtest ,newtest前面的*表示的是当前使用的意思,表面当前所处的分支是newtest分支。
创建分支命令:git branch (branchname)
代码语言:javascript复制$ git branch newtest1111$ git branch master* newtest newtest1111
使用命令branch新建了一个分支,再查看可以看到分支新建成功了。
这里注意,我是在newtest分支上进行的分支新建,新建出来的newtest1111分支的内容是和newtest一样的。
代码语言:javascript复制创建 切换分支:git checkout -b <name> 这个命令可以创建切换命令合一
切换分支命令:git checkout (branchname)
当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容, 所以多个分支不需要多个目录。
进行分支切换的时候,如果有一些工程文件可能会由于格式等原因,打开的时候出现变动,git要求你重新commit或这stash。这里使用stash比较方便。
stash修改
代码语言:javascript复制git stash 命令会把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录。
比如下面的中间状态,通过git stash命令推送一个新的储藏,当前的工作目录就干净了。
代码语言:javascript复制git stash save [stashMessage]
可以使用以上命令加入标记,类似于注释,stashMessage就是注释,方便后续查找的时候方便识别
恢复缓存stash
代码语言:javascript复制git stash pop 命令恢复之前缓存的工作目录
这个命令是取出最近一次储藏的修改到工作区,如果要取出特定的使用如下命令
代码语言:javascript复制git stash apply stash@{index}
index是数字,表示不同的缓存,可通过git stash list查询相应数字
查看现有stash
代码语言:javascript复制git stash list
移除stash
代码语言:javascript复制git stash drop 后面可以跟着stash名字
git stash list
stash@{0}: xxx
stash@{1}: xxx
stash@{2}: xxx
$ git stash drop stash@{0}
合并分支命令:git merge
你可以多次合并到统一分支, 也可以选择在合并之后直接删除被并入的分支。
将A合并到B,先切换到B,使用命令git merge A进行和并。如果A和B都包含某个相同的文件,会有冲突,先解决冲突再提交。
删除分支命令:git branch -d (branchname)
对于不再需要的分支可以使用删除命令进行删除