基本概念
- master:主分支,也是指针指向最新的一次提交;
- head:指向当前分支的指针
当我们创建新的分支,git就会新建一个指针(例如:dev),指向master相同的提交,再把head指向dev;就表示在dev分支上了
git指令
创建并切换分支
$ git checkout -b dev
该指令相当于
$ git branch dev // 创建分支
$ git checkout dev // 切换分支
查看分支
git branch
删除分支
git branch -d dev
对于某个分支已经提交了,但是没有和主分支master合并时,想要删除 (用大写D
),这种场景会在某个新功能开发到一般时,突然废弃不开发了
git branch -D dev
合并分支
git merge dev // 合并当前分支和dev分支
git解决冲突
有了分支在合并的时候就难免会有冲突
遇到冲突:
先打开文件修改后 再次add commit文件
git diff
: 查看的冲突
git保存仓库现场 与恢复仓库现场
正在dev分支上干活,突然有bug要解决,但是dev分支的开发还没干完,不想提交;
这是用:
git stash
: 把工作现场储存起来
等到你创建了新分支去解决bug,bug解决完了与master合并了,在回到dev分支上时;继续工作。
git stash list
:产看存储起来的分支
工作现场还在,Git把stash内容存在某个地方了,但是需要恢复一下,有两个办法:
一是用git stash apply
恢复,但是恢复后,stash内容并不删除,你需要用git stash drop
来删除;
另一种方式是用git stash pop
,恢复的同时把stash内容也删了:
git把本地的分支推送到远程仓库
默认情况是把本地的master(主分支)推送到远程仓库的origin分支;如果开发时新建了分支。
比如创建了dev分支,需要推送dev分支时,就用如下指令
git push origin dev
其实默认的push相当于
git push origin master
git远程分支的相关操作
查看本地仓库的分支
git branch
查看本地和远程的所有分支
git branch -a
删除一个本地的分支
git branch -d branch-name
删除一个远程仓库的分支
git push origin :branch-name
冒号前面的空格不能少,原理是把一个空分支push到server上,相当于删除该分支。