由于某种原因,我现在不能推动,而我昨天可以做到。也许我搞砸了配置或其他东西。
这就是发生的事情:
当我使用 git push origin master
我的工作目录和远程存储库是什么样的:
(注意:从 2020 年 10 月开始,任何新存储库都是使用默认分支创建的main,而不是master。您可以将现有存储库默认分支从 重命名master为main。2014 年答案的 其余部分已更新为使用“ main”)
main
master
如果 GitHub 存储库看到新的提交被推送到它,当你在本地工作时,我建议使用:
git pull --rebase git push
完整的语法是:
git pull --rebase origin main git push origin main
使用 Git 2.6+(2015 年 9 月),完成后(一次)
git config --global pull.rebase true git config --global rebase.autoStash true
一个简单的git pull就足够了。 (注意:在Git 2.27 Q22020中,amerge.autostash也可用于您的常规拉取,无需变基)
git pull
merge.autostash
这样,您将在新更新的(或: )--rebase之上重播(部分)您的本地提交。origin/main``origin/yourBranch``git pull origin yourBranch
--rebase
origin/main``origin/yourBranch``git pull origin yourBranch
请参阅Git 袖珍书的第 6 章使用变基拉取更完整的示例。
我会推荐一个:
# add and commit first git push -u origin main
这将在您的本地主分支与其上游分支之间建立跟踪关系。 之后,该分支的任何未来推送都可以通过简单的方式完成:
git push
由于 OP已经重置并在以下位置重做其提交origin/main:
origin/main
git reset --mixed origin/main git add . git commit -m "This is a new commit for what I originally planned to be amended" git push origin main
没有必要pull --rebase。
pull --rebase
注意:git reset --mixed origin/main也可以写成git resetorigin/main,因为这个--mixed选项是使用时的默认选项git reset。
git reset --mixed origin/main
git resetorigin/main
--mixed
git reset