我想更新未跟踪的存储库,并且在本地对文件进行了更改。
我所做的是
git fetch
git branch -a
-列出所有分支机构
git diff --stat --color master origin/master
-这将我的本地与远程进行比较。
然后我做git push
,将其输出给我。
更新被拒绝,因为the tip of your branch is behind...
但是我不想从远程存储库中提取更改,因为我在本地进行了一些更改。我想将更改推送到远程存储库。
答案 0 :(得分:0)
注意:如果您不真正了解自己在做什么,则可能会产生不可逆转的后果。
如果您不希望覆盖远程存储库中的更改,请使用git push -f
答案 1 :(得分:0)
这种情况发生在本地分支和远程分支都发生更改时,并且不允许您将更改推送到远程分支的原因是,如果您将本地更改覆盖到远程更改中,只是推送更改。
解决此问题的一种方法是在git中使用名为rebase
的功能。它的作用是在远程分支的顶部重放您的更改,以确保您的分支是最新的,然后在远程分支上进行构建。
您应该能够通过运行以下命令更新本地分支来解决此问题:git pull --rebase
。这将拉动远程更改,然后在这些更改之上重播本地更改。
您可以在这里阅读有关git-rebase的更多信息:https://git-scm.com/book/en/v2/Git-Branching-Rebasing
但是,如果您真的想覆盖远程分支,则--force
中还有一个git push
选项。除非您真的知道自己在做什么,否则我不建议您这样做。有关可用于推送的选项的更多信息,请参见:https://git-scm.com/docs/git-push