版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_37490221/article/details/82988656
在使用git的时候又是有许多的场景需要使用到分支合并和修改暂存。比如说我修改这一个分支,这个时候想合并一下主分支看看都动了哪些都写,提前把冲突给解决了,但是会出现一个问题,那就是git会提醒你:
zaomianbaoMBP:***-***-*** zaomianbao$ git checkout dev
error: Your local changes to the following files would be overwritten by checkout:
src/main/java/com/***/controller/***Controller.java
src/main/java/com/***/domian/***RequestModel.java
src/main/java/com/***/service/***Service.java
src/main/java/com/***/service/impl/***ServiceImpl.java
src/main/java/com/***/service/impl/***ServiceImpl.java
Please commit your changes or stash them before you switch branches.
Aborting
你这个时候是不能切换分支的,这个时候我们要么commit我们的修改,但是我的修改还不是一个完整的成果啊,要么使用stash暂存我们的修改。我选择stash:
zaomianbaoMBP:***-***-*** zaomianbao$ git stash
Saved working directory and index state WIP on dev20180929/***_***_**: 9a295a6 *****
zaomianbaoMBP:***-***-*** zaomianbao$ git status
On branch dev20180929/***_***_**
Your branch is up to date with 'origin/dev20180929/***_***_**'.
nothing to commit, working tree clean
zaomianbaoMBP:***-***-*** zaomianbao$ git checkout dev
Switched to branch 'dev'
Your branch is up to date with 'origin/dev'.
zaomianbaoMBP:***-***-*** zaomianbao$ git pull
remote: Enumerating objects: 60, done.
remote: Counting objects: 100% (60/60), done.
remote: Compressing objects: 100% (52/52), done.
remote: Total 60 (delta 31), reused 0 (delta 0)
Unpacking objects: 100% (60/60), done.
...
zaomianbaoMBP:***-***-*** zaomianbao$ git checkout dev20180929/***_***_**
Switched to branch 'dev20180929/***_***_**'
Your branch is up to date with 'origin/dev20180929/***_***_**'.
zaomianbaoMBP:***-***-*** zaomianbao$ git merge dev
Merge made by the 'recursive' strategy.
src/main/java/com/***/service/ssdl/model/***.java | 42 ++++++++++++++++++++++++++++++++++++
src/main/java/com/***/service/***.java | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/main/java/com/***/service/***.java | 31 ++++++++++++++++++++++++++
src/main/java/com/***/service/***.java | 2 +-
zaomianbaoMBP:***-***-*** zaomianbao$ git stash pop
博主首先
git stash
将当前分支的更改暂存起来,然后查看了一下状态
git status
看,没有可提交的内容了,工作区很干净,因为修改已经被存起来了,这个时候我再切换分支
git checkout dev
切换完分支后,拉取最新更改,看看都有哪些更改
git pull
然后再切换到起初的那个开发的分支
git checkout dev20180929/***_***_**
开始合并dev
git checkout dev20180929/***_***_**
最后再将之前暂存的修改放出来
git stash pop
这是博主没有冲突需要修改,如果有冲突则要修改冲突。
注意
在git merge的时候,我们会进入修改页面,这个时候git想要我们给此次merge添加注释,内容大致如下
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
# # Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
但是我们可以选择试用默认的注释而不做修改,直接进行以下操作即可:
- 按键盘左上角"Esc"
- 输入":wq",注意是冒号+wq,按回车键即可
是的,和修改文本的操作一致。