我创建了一个具有完全生产内容的新存储库。我希望在我的本地开发环境中拥有此内容。所以我需要从存储库中获取该内容。我所做的是,在我当地的主分公司:
获取内容(在分支原点/主页中)
git fetch
合并并覆盖我的本地主分支(正如此问题Git: Merging but overwriting changes中所解释的那样)。
git merge -X the origin / master
提交更改
git commit -am'合并覆盖表单origin / master'
但是当我做的时候
git diff origin/master
我应该看到没有差异,但我仍然看到它们。有人知道为什么吗?
other ways to force git overwrite files on pull我可以尝试,但我想了解我做错了什么。
答案 0 :(得分:0)
当你这样做时:
git diff origin/master
您正在与远程存储库进行比较
你说你做了一些提交(第3步),但你没有把它们推到遥控器上。因此你会看到变化。
如果要将本地更改为与远程相同。然后做:
git reset origin/master
会将本地存储库重置为与远程存储库相同。
请注意,ti会删除已修改的内容。
答案 1 :(得分:0)
“git merge -X theirs”将尝试合并更改而不会发生冲突。如果发生冲突,它将以你的冲突解决它。因此,如果它能够在没有冲突的情况下合并来自上游的更改,您将看到一个版本,它是您和他们的组合。
为了使您的主分支成为origin / master的精确副本,请尝试:
git checkout master
git fetch origin
git pull origin master
git reset --hard origin/master
重置将丢弃主分支上不在origin / master中的任何更改。