前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Git冲突:commit your changes or stash them before you can merge.

Git冲突:commit your changes or stash them before you can merge.

作者头像
week
发布2018-08-24 14:27:43
6970
发布2018-08-24 14:27:43
举报
文章被收录于专栏:用户画像用户画像

一、问题背景

今天用git pull来更新代码,遇到了下面的问题:

代码语言:javascript
复制
susanxiao:push_management jiangxingqi$ git pull origin master
From git.tv.sohuno.com:taotaoli/push_management
 * branch            master     -> FETCH_HEAD
error: Your local changes to the following files would be overwritten by merge:
	pom.xml
Please commit your changes or stash them before you merge.
Aborting

二、解决方案

1.stash

通常遇到这个问题,你可以直接commit你的修改;但我这次不想这样。

看看git stash是如何做的。

git stash

代码语言:javascript
复制
susanxiao:push_management jiangxingqi$ git stash
Saved working directory and index state WIP on master: 81e62a8 jiangxingqi:统计pushback库中push_temp表中的category数据量,并存入ms库push_total_data

git pull

代码语言:javascript
复制
susanxiao:push_management jiangxingqi$ git pull
Merge made by the 'recursive' strategy.
 .../vrs/service/pushpool/FilterRepeatService.java  |   8 +
 .../service/pushpool/FilterRepeatServiceImpl.java  |  49 +++
 .../vrs/service/pushpool/PushPoolServiceImpl.java  |   7 +-
 .../com/sohu/tv/vrs/dao/push/rw/MatchVideoDao.java |  12 +-
 .../java/com/sohu/tv/vrs/entity/MatchVideo.java    |  36 ++-
 .../pushpool/RepeatManageController.java           |  65 ++++
 .../common/mapper/MatchVideoDao.xml                |  39 +++
 .../src/main/webapp/WEB-INF/page/repeat/list.jsp   | 352 +++++++++++++++++++++
 8 files changed, 565 insertions(+), 3 deletions(-)
 create mode 100644 push_management_web/src/main/java/com/sohu/tv/vrs/controller/pushpool/RepeatManageController.java
 create mode 100644 push_management_web/src/main/webapp/WEB-INF/page/repeat/list.jsp

git stash pop

代码语言:javascript
复制
susanxiao:push_management jiangxingqi$ git stash pop

On branch master

Your branch is ahead of 'origin/master' by 2 commits.

  (use "git push" to publish your local commits)



Changes not staged for commit:

  (use "git add <file>..." to update what will be committed)

  (use "git checkout -- <file>..." to discard changes in working directory)



	modified:   pom.xml



Untracked files:

  (use "git add <file>..." to include in what will be committed)



	.DS_Store

	.gitignore

	push_management_basic/.settings/org.eclipse.wst.validation.prefs

	push_management_dao/.settings/org.eclipse.wst.validation.prefs

	push_management_task/.settings/org.eclipse.wst.validation.prefs

	push_management_task/src/main/java/com/sohu/tv/vrs/timer/push/PushTmpCategoryIsNullCnt.java

	push_management_web/src/main/webapp/WEB-INF/page/pushpool/dataList2.jsp

	push_management_web/src/test/java/com/sohu/tv/vrs/service/PushTmpTest.java



no changes added to commit (use "git add" and/or "git commit -a")

Dropped refs/stash@{0} (d36dac98bcad717b8684abbab73c7d4ffd05c680)

git push

代码语言:javascript
复制
susanxiao:push_management jiangxingqi$ git push
Counting objects: 65, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (43/43), done.
Writing objects: 100% (65/65), 5.41 KiB | 1.08 MiB/s, done.
Total 65 (delta 28), reused 0 (delta 0)
To git.tv.sohuno.com:taotaoli/push_management.git
   db3aa9c..8144cdd  master -> master
susanxiao:push_management jiangxingqi$ git stash list
susanxiao:push_management jiangxingqi$ 

git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。 git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。 git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。 git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的那些节点都消失了。

2.放弃本地修改,直接覆盖之

代码语言:javascript
复制
git reset --hard
git pull
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年01月05日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档