git: How do I get the latest version of my code?
我使用的是Git 1.7.4.1。我想从存储库中获取我的代码的最新版本,但我遇到了错误…
1 2 3 4 5 6 7 8 | $ 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'. |
我已经删除了该工具抱怨的文件的本地副本,但我仍然收到错误。如何从远程回购中签出最新版本?-戴夫
如果您不关心任何本地更改(包括未跟踪或生成的文件或子目录,而这些文件或子目录恰好就在这里),只想从repo中得到一个副本:
1 2 3 | git reset --hard HEAD git clean -xffd git pull |
同样,这会使您在本地所做的任何更改成为核弹,因此请小心使用。做这件事的时候,想想
案例1:不关心局部变化
解决方案1:获取最新代码并重置代码
1
2git fetch origin
git reset --hard origin/[tag/branch/commit-id usually: master]解决方案2:删除文件夹并再次克隆:d
1
2rm -rf [project_folder]
git clone [remote_repo]。
案例2:关注局部变化
解决方案1:与新的联机版本没有冲突
1
2git fetch origin
git status将报告如下内容:
1Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded.。
然后获取最新版本
1git pull。
解决方案2:与新的联机版本冲突
1
2git fetch origin
git status将报告如下内容:
1
2
3
4error: Your local changes to the following files would be overwritten by merge:
file_name
Please, commit your changes or stash them before you can merge.
Aborting。
提交本地更改
1
2git add .
git commit -m ‘Commit msg’尝试获取更改(将失败)
1git pull。
将报告如下内容:
1
2
3Pull 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'.号
打开冲突文件并修复冲突。然后:
1
2
3git add .
git commit -m ‘Fix conflicts’
git pull号
将报告如下内容:
1Already up-to-date.号
更多信息:如何使用"git reset--hard head"恢复到以前的提交?
我怀疑发生的事情可能是你删除了你修改过的文件(因为你不关心这些更改),现在Git将删除视为一个更改。
这里有一种方法可以将您的更改从工作副本中移到"存储"(如果事实证明您曾经再次需要这些更改,则可检索),这样您就可以将最新的更改从上游拉下来。
1 2 | git stash git pull |
号
如果您想要检索您的文件(可能与上游更改和所有更改发生冲突),请运行
你必须先合并你的文件。执行
尝试此代码
1 2 | cd /go/to/path git pull origin master |
号
如果您只想丢弃工作文件夹中的所有内容(例如合并失败或中止的结果),并恢复到以前的干净提交,请执行
通过运行此命令,您将获得通常是项目版本的最新标记:
1 | git describe --abbrev=0 --tags |
号
我知道你想把你的本地变化弄得一团糟,然后把遥控器上的东西拉下来?
如果所有其他方法都失败了,如果你(很容易理解)害怕"重置",那么最简单的方法就是将源复制到一个新目录中,然后丢弃旧目录。
我觉得你好像有核心问题。汽车问题。core.autocrlf=true可以给出与您在Windows上描述的问题类似的问题,如果将crlf新行签入存储库。尝试为存储库禁用core.autocrlf,然后执行硬重置。