3、分支管理

创建使用分支

创建dev分支

git branch dev

 

一、创建并切换到新的分支(dev分支)

git switch -c dev

 

二、查看当前分支

git branch

 

三、修改完文件,并add、commit后,切换回master分支

git switch master

 

四、将dev合并到master

git merge dev

 

五、删除dev分支

git branch -d dev

 

六、查看分支合并情况

git log --graph --pretty=oneline --abbrev-commit

 

解决冲突

一、若合并分支发生冲突(git merge dev)

 

二、查看发生冲突的文件

git status

 

三、打开发生冲突的文件,手动更改再add、commit

 

四、删除分支

git branch -d dev

 

合并分支问题

一、若合并分支时使用的时Fast forward方式,后删除分支后会产生分支信息丢失

 

二、禁用Fast forward方式

git merge --no-ff -m "禁用fast forward合并" dev

 

Bug分支

一、在dev上开发遇到bug时,将当前工作区储藏起来

git stash

现在用git status 查看是干净的

 

二、若问题在master上,就在master上建立bug分支

三、切换bug分支解决问题后,切回master进行合并,并删除bug分支

 

四、切换回dev分支,查看藏起来的工作

git stash list

 

五、两种恢复方法

1、一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除

2、用git stash pop恢复stash内容也会删

 

六、可对当前工作进行多次隐藏,隐藏后查看列表

git stash list

 

七、恢复其中一次

git stash apply stash@{0}

 

八、在master上的bug,dev也会存在,记住提交bug时的commit id

git cherry-pick 4c805e2

这样dev上的bug也会解决

 

Feature分支

一、每添加一个新功能就添加一个feature

 

二、功能实现后添加到dev,并删除分支

 

三、若开发Feature的过程中,这个功能突然说不需要了

//切换回dev,强制删除Feature分支
git branch -D feature

 

多人协作

一、当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin

 

二、查看远程库信息

//查看远程库名称
git  remote

//查看远程库详细信息
git remote -v

 

三、将本地的master推送到远程的master

git push origin master

 

四、将本地的master推送到远程的dev

git push origin dev

 

默认clone下来的项目只有master分支,怎么关联远程的dev分支到本地?

git checkout -b dev origin/dev

做完开发add、commit后,推送到远程的dev分支

git push origin dev

若有人做了同样的更改,你git push oringin dev推送不上去?

//需要将先用git pull把最新的提交从origin/dev抓下来,然后,在本地合并,解决冲突,再推送

//指定本地dev分支与远程origin/dev分支的链接
git branch --set-upstream-to=origin/dev dev

//pull文件下来,手动更改
git pull
//随后再push上去 git push origin dev

 

Rebase

rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。

一、将git log --graph --pretty=oneline --abbrev-commit 变直线

git rebase

二、查看

git log --graph --pretty=oneline --abbrev-commit

 

posted @ 2020-06-28 14:19  JaydenQiu  阅读(112)  评论(0)    收藏  举报