美文网首页
Git出现冲突error: Your local changes

Git出现冲突error: Your local changes

作者: warmsirius | 来源:发表于2019-08-27 06:41 被阅读0次

参考博客

一、问题发生背景

今天尹老大在git上更新了一些代码,我需要和他同步,然后我进入自己的git文件,直接git pull,然后出现了报错,大概报错如下(粘贴别人的):

D:\Android\***\*****>git checkout master
error: Your local changes to the following files would be overwritten by checkout:
        app/build.gradle
Please commit your changes or stash them before you switch branches.

二、git报错原因

原因:当前分支有未跟踪的文件,checkout 命令会覆盖它们,请缓存(stash)或者提交(commit)。

三、解决办法

选择A:未跟踪文件的内容改动很重要,保存修改

两种方法:按照信息提示,分别是:缓存(stash)或者提交(commit)

  • 方法1:把当前任务暂存起来,再获取远端的最新文件,然后合并,代码如下:
git stash //暂存正在进行的工作
git pull
git stash pop //合并暂存的代码
  • 方法2:发起一个commit 存到提交历史
git add.
git commit -m 'commit message'

选择B:未跟踪文件的内容改动不重要,放弃修改

两种方法:①清除修改;②强制分支切换

  • 方法1:清除未跟踪文件【推荐做法】
git clean -n         //这个是清除文件预览
git clean -f         //强制清除文件

效果:

D:\Android\***\*****>git clean -n
Would rempve app/build.gradle
D:\Android\***\*****>git clean -f
Removing app/build.gradle
  • 方法2:强制分支切换

强制切换分支命令如下,结果同提示说的那样,会直接覆盖未跟踪的文件。

这个方式很粗暴,我们日常切换的时候,还是尽量不要使用 -f 强制切换,因为没有覆盖提示,很容易发生文件修改丢失,但是我们自己不知道。

git checkout -f <branch>        // <branch>为要切换到的分支名,注意不带“<>”

效果

D:\Android\***\*****>git checkout -f master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.

相关文章

网友评论

      本文标题:Git出现冲突error: Your local changes

      本文链接:https://www.haomeiwen.com/subject/kjxsectx.html