重置本地存储库分支就像远程仓库HEAD
如何将本地分支重置为与远程存储库上的分支一样?
我做了:
git reset --hard HEAD
但是当我运行git status
,
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: java/com/mycompany/TestContacts.java
modified: java/com/mycompany/TestParser.java
你能告诉我为什么我有这些'修改'? 我没有触及这些文件? 如果我这样做,我想删除这些。
将分支设置为与远程分支完全匹配可以分两步完成:
git fetch origin
git reset --hard origin/master
如果您想在执行此操作之前保存当前分支的状态(以防万一),您可以执行以下操作:
git commit -a -m "Saving my work, just in case"
git branch my-saved-work
现在你的工作被保存在分支“my-saved-work”中,以备你决定是否需要它(或者希望稍后查看它或者与你的更新分支进行比较)。
请注意,第一个示例假设远程仓库的名称是“origin”,并且远程仓库中名为“master”的分支与本地仓库中当前签出的分支相匹配。
顺便说一句,你所处的这种情况看起来很像一个常见的情况,那就是已经对非裸仓库的当前签出的分支进行了推送。 你最近推入了你的本地回购? 如果没有,那么不用担心 - 其他的东西一定会导致这些文件意外地被修改。 否则,您应该意识到不建议将其推入非裸存储库(特别是不要存入当前检出的分支)。
我需要做的(解决方案在接受的答案):
git fetch origin
git reset --hard origin/master
其次是:
git clean -f
删除本地文件
要查看哪些文件将被删除(而不实际删除它们):
git clean -n -f
首先,重置到先前获取的相应上游分支的HEAD
:
git reset --hard @{u}
指定@{u}
或其详细形式@{upstream}
的优点是不必显式指定远程回购和分支的名称。
接下来,根据需要删除未跟踪的文件,也可以使用-x
:
git clean -df
最后,根据需要获取最新更改:
git pull
链接地址: http://www.djcxy.com/p/675.html
上一篇: Reset local repository branch to be just like remote repository HEAD
下一篇: Saving Android Activity state using Save Instance State