我正试图推动本地变化:
git push all
“all”表示在github和远程服务器上的repo - 在我的.git / config中:
[remote "all"]
url = git@github.com:...myrepo.git
url = ssh://usrname@servername/myrepo.git/
最初假设不应该在服务器上手动更改任何内容,但最终确实发生了。但是服务器上的更改是非实质性的,我想覆盖它们以获得我本地仓库的精确副本。所以,现在我无法推送到远程服务器获取错误:
remote: error: Your local changes to the following files would be overwritten by merge:
remote: Please, commit your changes or stash them before you can merge.
我知道以前类似问题的答案,但不幸的是“git push origin --force all”不起作用,抛出同样的错误
请帮忙!提前谢谢!答案 0 :(得分:1)
好吧,那就完全合情合理了。您的网络上的遥控器不是裸露的。即,你在做它;它有自己的工作目录。实际上,您要尝试推送的分支目前已经过检出。要添加,您还有一些尚未提交的修改。 Git会拒绝在那里改变你的变化。
正确的工作流程是从遥控器上拉出更改。
但是,你也可以
git clone --bare
完成的。答案 1 :(得分:0)
请参阅push的手册页。
您不能拥有一个遥控器代表的多个repos。将“github”和“network”添加为单独的遥控器。在您的最后一个推送示例中,“all”被视为分支名称!。
语法为git push remote-name branch-name:remote-branch-name
,如果省略{和}冒号,则隐含remote-branch-name
。
然后,您将使用push命令的--all
选项推送到github和网络遥控器。
git push --all
在为要推送的所有地点设置单独的遥控器后,会有意义。