Eclipse Git 文件级冲突

Eclipse Git Conflict at File Level

我只通过 eclipse 使用过 git,所以不确定如何在命令行上测试它。我只在两个项目上使用了 git,而且都是内部网 git 存储库。在第一个项目中,只有在远程和本地更改文件中的同一行时,拉取请求才会失败。在我当前的项目中,我进行了拉取,如果更改了同一文件,则无论是否更改了同一行(本地和远程),它都会失败。这是 git 存储库或 eclipse 中的设置吗?

澄清一下,当我说 "fail" 时,我的意思是 eclipse 甚至没有尝试拉动并给我一条关于冲突的消息。

我切换到新分支并进行本地提交,然后切换回主分支并拉取然后合并我的临时分支。这并不困难,但是,

我想知道为什么一个项目 eclipse git 如果一个文件有本地和远程更改(只要不在同一行),为什么它只会拉下更改,但在我当前的项目中它不会尝试如果有任何文件更改(即使文件中只有不同的行被更改),则拉取。

在我的上一个项目中,我是否在本地提交更改并不重要,除非它是同一文件中的同一行,否则它会拉取。

例如,我刚刚执行了 team->sync 并看到了传入的文件,所以我只是在文件中放了一个马车 return 并保存了。它立即在日食中显示为冲突。在我的上一个项目中,它不会那样做。它会认为行的变化是不同的,并且不会显示出冲突。我认为这是日食设置。


更新

一位使用命令行的同事没有我遇到的问题,所以我认为这是一个日食设置。奇怪,因为我在上一个项目中使用了 eclipse。同样的版本。所以我将开始查看 eclipse 设置。

您可能有未提交的本地更改。

下面一个一个试试

git stash;
git pull;
git stash apply;

当您说拉取失败时,我假设您对本地文件进行了一些更改但尚未提交。错误描述可能类似于

Please commit your changes or stash them before you merge

如果这些更改不重要并且您想返回到更改发生之前的阶段,那么请执行

git reset HEAD YOUR_FILE
#or
git reset HEAD --hard

如果对文件的这些更改是您想要的。您应该在拉取之前提交文件。

git add YOUR_FILE
git commit -m 'Updated the file'
git push origin YOUR_BRANCH

如果您认为这些更改未完成并且不想半途提交某些内容,您可以将更改移动到堆栈以使用 stash

清理工作目录
git status #check to see working directory state
git stash #push a new stash onto your stack
git stash list #see the stashes that you have stored
git stash apply #to reapply your most recent stash
#or 
git stash apply YOUR_STASH_ID #to reapply a specific stash
#or
git stash pop #to apply the stash and then immediately drop it from your stack