Git 用 master 替换当前的远程分支

Git replacing current remote branch with master

感觉自己会做,但是做不到

我正在尝试创建 github 个页面。在远程源上,我有 2 个分支:master 和 gh-pages。

我不小心用我不想要的更新更新了远程 gh-pages;我希望我的远程 gh-pages 看起来完全像远程主机或本地主机。 (我的本地主人与远程主人保持同步)。问题是,当我尝试拉取 gh-pages 时,它与我本地的 master 冲突。

如何用 remote/local master 替换远程分支 gh-pages? (假定当前远程 gh-pages 与 remote/local master 冲突)

Blah-Air:SomeBranch blablah$ git pull origin gh-pages
remote: Counting objects: 15, done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 15 (delta 1), reused 15 (delta 1), pack-reused 0
Unpacking objects: 100% (15/15), done.
From https://github.com/SomeGitHub/SomeBranch
 * branch            gh-pages   -> FETCH_HEAD
 * [new branch]      gh-pages   -> origin/gh-pages
Auto-merging index.html
CONFLICT (add/add): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.

^ 如您所见,我需要解决冲突,但我不确定如何解决。

首先,如果您希望远程始终与 master 分支同步,您可能不应该在本地 gh-pages 分支上进行开发。我觉得如果我不在不同的分支上开发,我会犯和你一样的错误。

但要摆脱这种情况,您可以使用 git reset --hard HEAD^ 到 return 到父提交,然后使用 git push origin gh-pages -f 强制推送指向正确提交的分支。如果您想在本地 gh-pages 上保留该提交,请尝试将您的本地 master(应该已经在正确的提交)强制推送到您的远程 gh-pages