git merge和git stash使用场景和注意事项

版权声明:本文为博主原创文章,未经博主允许不得转载。 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,按回车键即可

是的,和修改文本的操作一致。

猜你喜欢

转载自blog.csdn.net/weixin_37490221/article/details/82988656
今日推荐