我使用的是Git 1.7.4.1。

我想从存储库中获得我的代码的最新版本,但我得到错误:

$ git pull
….
M   selenium/ant/build.properties
….
M   selenium/scripts/linux/get_latest_updates.sh
M   selenium/scripts/windows/start-selenium.bat
Pull is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>' as appropriate to mark resolution, or use 'git commit -a'.

我已经删除了工具抱怨的文件的本地副本,但我仍然得到错误。

如何从远程存储库签出最新版本?


当前回答

回答你的问题只需两步:-

使用git Pull从你的git repo中提取最新的更改 使用git checkout——清理有未分阶段更改的本地工作目录。 这将显示从远程git回购到本地回购的最新更改。清除所有本地非分期更改。

请注意git结帐——。将丢弃您在本地工作目录中的所有更改。如果你想放弃对选定文件的任何更改,请使用git checkout——<filename>。如果你不想失去你的非阶段性变化使用git stash,因为它会清理你的本地工作目录的所有非阶段性变化,同时保存它,如果你将来需要它。

其他回答

如果你只是想扔掉你工作文件夹里的所有东西(例如失败或流产的合并结果),并恢复到上一次干净的提交,做一个git重置——很难。

在我听来你好像有核心自专制问题。核心。如果将CRLF换行签入存储库,那么selflf =true会出现您在Windows上描述的问题。试着禁用core。并执行硬重置。

如果你不关心任何本地更改(包括未跟踪或生成的文件或恰好在这里的子存储库),只需要从repo中复制:

git reset --hard HEAD
git clean -xffd
git pull

同样,这将破坏您在本地所做的任何更改,因此请谨慎使用。考虑rm -Rf。

我知道你想抛弃你的本地改动然后把遥控器上的东西拿下来?

如果所有这些都失败了,如果你(完全可以理解)害怕“重置”,最简单的事情就是克隆原点到一个新目录,并丢弃旧目录。

如果你使用Git GUI,首先获取然后合并。

通过远程菜单获取>>获取>>来源。 通过合并菜单>>合并本地。

出现以下对话框。

选择跟踪分支单选按钮(也是默认选择),让黄色框空,按合并,这应该更新文件。

在做这些步骤之前,我已经恢复了一些局部更改,因为我想无论如何都要丢弃这些更改,这样我就不必在以后通过合并来消除。