多分支开发
常用命令
-
查看分支
git branch # 绿色表示当前所在分支
-
新建分支
git branch 分支名
-
切换分支
git checkout 分支名 git checkout -b 分支名 # 表示创建并移动至该分支
-
删除分支
git branch -D 分支名
-
分支合并
git merge 分支名
需要注意的是:在合并分支时一定要先回到主分支在进行分支的合并
若是, 合并过一次后, 从分支删除了某一文件, 那么再次合并, 主分支内的该文件也会被删除
分支合并冲突
-
冲突
冲突一般指的是同一文件同一位置的代码, 在两种版本的仓库合并是, 版本的管理软件无法判断应该保留哪个一个版本, 因此会提示该文件发生冲突, 而冲突一般都需要去手动解决.
-
查看冲突
git diff diff --cc 6.py index cb1c3c7,22d8095..0000000 --- a/6.py +++ b/6.py @@@ -1,1 -1,1 +1,5 @@@ -print('this is 6.py') ++<<<<<<< HEAD +print('this is 6.py') ++======= ++print('this is 6.py') ++>>>>>>> d8d92fe2b69111f99dd034bdd02c853d8eabdd31
-
解决冲突
# 冲突报错 CONFLICT (add/add): Merge conflict in 6.py Auto-merging 6.py Automatic merge failed; fix conflicts and then commit the result. CONFLICT关键字 解决冲突就是将冲突文件中的 <<<<<<< HEAD ======= >>>>>>> d8d92fe2b69111f99dd034bdd02c853d8eabdd31 删除 然后重新add, commit 最后合并分支即可
-
常见错误
-
git出现 [rejected] dev - dev (fetch first)的原因–不可跨版本提交
问题非常明显就是你当前的仓库和远程仓库中的数据没有同步,并且推送的时候有冲突,说明别的开发者已经更新了仓库,但你没有及时的拉取
-
解决方法–拉取版本库中最新版
首先先git pull同步代码
然后再git push推送 -
git push 无法推送
- 有可能是克隆的分支没有获取管理员的权限
- 有可能是克隆的分支没有获取管理员的权限
-
线上分支合并
-
线上分支和并, 在pull Request中, 指向从那个分支合并至哪个分支
-
报绿色表示无冲突, 可以正常合并
-
合并分支 – 普通合并
普通合并是指, dev上的所有日志被直接合并至主分支
-
扁平化分支 – 变基
忽略dev分支中的日志记录, 只留一个最后合并的日志记录
-
-
线下分支合并提交
- 线下分支正常合并
- git merge 被合并分支名
- git push origin master
- 切换至dev
- git push origin dev
合并分支冲突解决
- 上文提过
远程仓库回滚
- 本地回滚版本
- git reset --hard xxxx
- 强制提交至线上
- git push origin master -f
- 一般不使用, 但是使用也没事, 顶多麻烦点, 傻逼点
其他
- pull与fetch区别
- git pull: 拉取并合并
- git fetch: 拉取但需要手动合并