分支合并
需求
团队协同开发中,需要对版本进行控制。
一、实现方式
1.1、命令行方式实现
创建测试文件
查看本地分支
git branch -a
dev
* master
remotes/origin/HEAD -> origin/master
remotes/origin/dev
remotes/origin/master
切换到dev分支
E:\IdeaProjects\SilverStar>git checkout dev
Switched to branch 'dev'
A src/test.txt
Your branch is up to date with 'origin/dev'.
提交到远程仓库
git add .
git commit -m"测试"
[dev ac19b5a] 测试
1 file changed, 1 insertion(+)
create mode 100644 src/test.txt
git push # 提交到远程仓库,如果是第一次提交需要使用 git push -u origin dev
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 16 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 346 bytes | 346.00 KiB/s, done.
Total 4 (delta 1), reused 0 (delta 0), pack-reused 0
将dev分支合并到master
首先切换到 master
分支
git checkout master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.
每次提交前建议都pull
一次,这样不会出错
E:\IdeaProjects\SilverStar>git pull origin master
From http://e-cology.top:84/zhanghuan/SilverStar
* branch master -> FETCH_HEAD
Already up to date.
开始合并
E:\IdeaProjects\SilverStar>git merge dev
Updating 6a1c32b..ac19b5a
Fast-forward
src/test.txt | 1 +
1 file changed, 1 insertion(+)
create mode 100644 src/test.txt
可以查看一下本地git状态
git status
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
(use "git push" to publish your local commits)
nothing to commit, working tree clean
可以看到是有一条commit
记录的,接着我们将他提交到远程仓库
git push origin master
可以看到matser
分支已经将dev
分支新增的内容同步过来
1.2、IDEA 方式实现
第二种方式呢,我们使用 IDEA (java开发IDE)将刚才添加的内容删除,并同步节点。我们可以直接从主分支
master
删除,然后同步分支dev
就可以,也可以从分支dev
删除,然后同步主分支master
。这里采用第二种
切换到主分支,删除text.txt
Local
里面,鼠标右键matser
分支,checkout
,然后删除test.txt
Remote
里面同样选择master
提交
选择左侧 commit
侧边栏,勾选我们删除的文件,填写commit消息之后,点击commit and push
进行提交
选择push
可以看到master
分支多了一条提交记录,而且远程仓库也删除了。
同步到dev分支
Local
和Remote
都选择dev
分支,右键checkout
接着选择Local
里面的dev
,鼠标右键选择 Merge Selected into Current
,成功后可以看到的dev 后面是由一个 绿色的提交箭头的。
push
到远程仓库`
右键 dev
选择 push
新增的文件已经被删除。