场景介绍
假设开发分支为:develop
你的名字叫张三,你的分支名应叫:develop/zhangsan
(此时远程端还未创建)
创建自己的分支
# clone一份开发分支的代码
git clone -b develop SSH地址
# 切换到开发分支
git checkout develop
# 拉取开发分支最新的代码
git pull
# 创建并切换到自己的功能分支
git checkout -b develop/zhangsan
# 将远程开发分支的代码合并到自己的功能分支
git pull origin develop
# 将自己本地的功能分支同步到远程(此时远程端就有了自己的功能分支)
git push --set-upstream origin develop/zhangsan
# 查看一下提交日志
git log
日常使用
指令版
- 将本地自己新写的代码commit到暂存库中
git add .
commit -m "xxx"
- 确保本地在自己的功能分支,合并远程开发分支代码到本地功能分支
git pull origin develop
- 解决冲突。有冲突的代码会被列出来让你二选一
- 提交本地功能分支代码到远程功能分支
git add .
git commit -m "xxx"
git push
如果需要可以看看分支对应状态、提交状态和提交日志
git branch -vv(分支对应状态)
git status(当前提交状态)
git log(提交日志)
- 登陆GitLab发起合并请求
IDEA版
我个人很喜欢用IDE的Git,因为真的很直观
工具就是为了方便使用的,而不是故意难为自己成为炫耀的资本
-
首先点击菜单中的
VCS-Git-StashChanges
,在Message
中填写一个标示,就和游戏存档点一样,保存你现在
的代码
-
点击右下角的分支,选择
开发分支
并切换过去Checkout
,此时idea中的代码是开发分支的旧版本
-
点击右上角的蓝色小按钮,拉取
开发分支的新版本
-
右下角切换到自己的功能分支,再次点击右下角的
开发分支
并点击Merge into Current
总结一下,这4步操作简单来说:保存你修改的代码-本地开发分支与远程开发分支保持同步-最新开发分支的代码覆盖到你的功能分支上。
之后再释放你第一步保存的代码解决冲突。不难看出这些操作的目的就是为了把冲突放在自己的功能分支上解决,而本地的开发分支只负责与远程的开发分支同步
- 点击
VCS-Git-UnStashChanges
并选择你刚刚保存的代码,此时会让你解决冲突,左边是本地刚拉取的最新版开发分支的代码,右边是你自己修改的代码,中间是结果,当全部冲突解决完毕,会提示保存 - 点击右上角的小对号,将本地自己新写的代码commit到暂存库中,Commit Message中填写提交信息
- 最后点击菜单栏中的
VCS-Git-Push
即可推送到自己远程的功能分支上 - 登陆GitLab提交合并代码
补充
- 可以在行标上点击右键并选择
Annotate
查看修改人 - git branch --track [本地] origin/[远程]
Q.E.D.