git:我如何获得我的代码的最新版本?
我正在使用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 reset --hard HEAD git clean -xffd git pull
再次,这将会导致你在本地做出的任何改变,所以要谨慎使用。 考虑rm -Rf
时,这样做。
案例1:不关心当地的变化
-
解决scheme1:获取最新的代码并重置代码
git fetch origin git reset --hard origin/[tag/branch/commit-id usually: master]
-
解决scheme2:删除文件夹并再次克隆:D
rm -rf [project_folder] git clone [remote_repo]
案例2:关心当地的变化
-
解决scheme1:与新的在线版本不冲突
git fetch origin git status
将会报告如下内容:
Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded.
然后得到最新版本
git pull
-
解决scheme2:与新的在线版本冲突
git fetch origin git status
将会报告如下内容:
error: 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
提交您的本地更改
git add . git commit -m 'Commit msg'
尝试获取更改(将失败)
git pull
将会报告如下内容:
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 add . git commit -m 'Fix conflicts' git pull
将会报告如下内容:
Already up-to-date.
更多信息: 如何使用'git reset –hard HEAD'恢复到以前的提交?
我怀疑发生了什么事情可能是因为你删除了你修改过的文件(因为你不关心这些修改),现在git正在删除这个修改。
这是一个将你的修改从你的工作副本移动到“隐藏”(如果事实上certificate你再次需要它们)的方法,那么你可以把最新的修改从上游拉下来。
git stash git pull
如果您想要检索文件(与上游更改和所有文件可能存在冲突),请运行git stash apply
将这些更改git stash apply
在代码顶部。 这样,你有一个“撤消”的方法。
你必须先合并你的文件。 做一个git status
,看看什么是需要合并的文件(意味着你需要先解决冲突)。 一旦完成,做git add file_merged
并再次pull
你。
如果你只是想扔掉你的工作文件夹中的所有东西(例如,失败或中止合并的结果),并恢复到一个干净的以前提交,做一个git reset --hard
。
我知道你想垃圾你的本地变化,并拉下你的遥控器上的东西?
如果一切都失败了,如果你(很可以理解)害怕“重置”,最简单的办法就是将原点复制到一个新的目录中,并将旧的目录废弃。
通过运行这个命令,你会得到最近的标签,通常是你的项目的版本:
git describe --abbrev=0 --tags
这听起来像你有core.autocrlf问题。 core.autocrlf = true可以给你像在Windows上描述的那样的问题,如果CRLF换行符被检入存储库。 尝试禁用资源库的core.autocrlf,并执行硬重置。