所以我git克隆了一个repo并且当时没有想到所以我没有做一个git分支。我做了很多改变,并不需要保留它们,此时我只想要远程仓库的最新资料。有没有办法我可以合并,现在必须处理最新的远程仓库和我所掌握的变化之间的差异?我只想要最新的远程repo master而不是别的。
答案 0 :(得分:1)
git checkout master
git fetch
git reset --hard origin/master
您还可以使用git branch -D <branch name>
删除您不需要的任何额外分支。
答案 1 :(得分:1)
您可以删除和更改未提交的
git reset --hard
然后拉新东西
git pull
答案 2 :(得分:1)
这取决于你是否已经提交了它们:
您可以简单地使用the --rebase
argument进行拉取,这将在您自己的提交之前应用来自远程的所有提交(或至少尝试):
git pull --rebase origin master
在这种情况下,您需要使用the stash
command,它会进行未分级的更改并将其从工作目录中保存下来。之后您可以再次申请:
git stash
git pull origin master
git stash pop
# merge any conflicts
你的问题建议两个接近 - 一个:保存我的本地更改并将其应用于更新的主人(见上文),两个:不关心我的本地更改,只是重置为原点。在这种情况下,简单的重置将执行:
git fetch
git reset --hard origin/master
答案 3 :(得分:1)
如果您已经提交了这些不受欢迎的更改,则应使用git log
检查上游的最后一次提交,然后使用git reset --hard <HASH>
重置为此点。
如果你还没有从上游git reset --hard origin/master
获取最新信息,那就更容易了。
更快(更脏)的解决方案是如此简单地删除您的目录并再次克隆 - 但不推荐。