将主服务器上的本地更改移动到分支后,如何同步远程存储库?

时间:2014-03-06 18:38:48

标签: git version-control

我按照this SO question中给出的说明将最近提交的更改移动到了分支。

简而言之,我在当地的回购中做了以下事情,

git branch newbranch
git reset --hard HEAD~3 # Go back three commits
git checkout newbranch

我的远程仓库(只有我访问过)仍然在master中提交。

我目前无法将更改推送到远程,因为本地仓库缺少一些提交,并要求我通过拉动合并更改。

如何让远程仓库反映新分支?

2 个答案:

答案 0 :(得分:1)

您可以使用-f标志强行推送到远程仓库。

git push -f
  

-f, - force

     

通常,该命令拒绝更新不是的远程引用   用于覆盖它的本地ref的祖先。此标志禁用   支票。这可能导致远程存储库丢失提交;   小心使用它。

更多信息:git-push(1) Manual Page

答案 1 :(得分:1)

如果您推送到的远程存储库已使用

正确初始化
git init --bare --shared

然后

git push -f

仍然会失败,因为git配置文件将包含

[receive]
    denyNonFastforwards = true

您尝试推送的提交是非快进提交,因此您需要更改行为(至少暂时)以允许非快进提交。我通常只是取消注释上面的行,但你可以使用官方的git配置界面。