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

浙公网安备 33010602011771号