天天看点

git分支操作

基本概念

  • 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上,相当于删除该分支。