为了账号安全,请及时绑定邮箱和手机立即绑定

重置本地存储库分支,使其与远程存储库头一样

重置本地存储库分支,使其与远程存储库头一样

Git
拉莫斯之舞 2019-06-24 13:34:54
重置本地存储库分支,使其与远程存储库头一样如何将本地分支重置为与远程存储库中的分支类似的分支?我做了: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你能告诉我为什么我要修改这些东西吗?我没碰过这些文件?如果是的话,我想把那些去掉。
查看完整描述

3 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

将分支设置为与远程分支完全匹配可以分两个步骤完成:

git fetch origin
git reset --hard origin/master

如果您想在执行此操作之前保存当前分支的状态(以防万一),您可以这样做:

git commit -a -m "Saving my work, just in case"
git branch my-saved-work

现在,您的工作被保存在分支“我保存的工作”上,以防您决定要返回它(或者希望稍后查看它,或者将其与更新的分支区分开来)。

请注意,第一个示例假设远程回购的名称为“原产地”,并且远程回购中名为“master”的分支与本地回购中当前签出的分支匹配。

顺便说一句,您所处的这种情况看上去很像一种常见的情况,在这种情况下,已经对非裸存储库的当前签出的分支进行了推送。你最近有没有参与当地的回购?如果不是,那就不用担心了-一定是其他原因导致这些文件意外地被修改了。否则,您应该意识到,不建议将其推入非裸存储库(特别是不推荐到当前签出分支)。


查看完整回答
反对 回复 2019-06-24
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

首先,重置到以前获取的HEAD相应的上游分支:

git reset --hard @{u}

指定@{u}或冗长的形式@{upstream}不需要显式指定远程回购和分支的名称。

接下来,根据需要删除未跟踪的文件,也可以用-x:

git clean -df

最后,根据需要获取最新的更改:

git pull


查看完整回答
反对 回复 2019-06-24
  • 3 回答
  • 0 关注
  • 656 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信