git提交和推送在重新基址后不起作用

git提交和推送在重新基址后不起作用,git,egit,Git,Egit,我只是重新设置了一个分支与主分支的基础,然后提交并推送最终结果 这似乎奏效了。Git状态正在显示 没有要提交的内容,正在清理目录 但是,当我检查远程存储库时,更改的文件没有到达。这让人困惑,也有点害怕,因为我当地的客户说,所有文件都可以安全地远程存储,而事实并非如此 关于以下方面的任何建议: 如何在本地git认为没有什么可推的情况下强制推送到远程? 如何确保客户端正确指示同步状态? 如何确保客户端正确指示同步状态 推送前,您可以通过以下方式检测推送是否为快进: git rev-list orig

我只是重新设置了一个分支与主分支的基础,然后提交并推送最终结果

这似乎奏效了。Git状态正在显示

没有要提交的内容,正在清理目录

但是,当我检查远程存储库时,更改的文件没有到达。这让人困惑,也有点害怕,因为我当地的客户说,所有文件都可以安全地远程存储,而事实并非如此

关于以下方面的任何建议:

如何在本地git认为没有什么可推的情况下强制推送到远程? 如何确保客户端正确指示同步状态? 如何确保客户端正确指示同步状态

推送前,您可以通过以下方式检测推送是否为快进:

git rev-list origin/yourBranch ^yourBranch
如果返回任何提交,这意味着您的分支历史记录将替换来自源代码的分支历史记录,您必须强制执行该操作。
更多信息请参见。

对于第一个问题,答案是否定的,但如果有什么,而本地git认为什么都没有,则不应该出现这种情况。Git保留一个远程跟踪分支来跟踪远程分支的状态。您可以使用git branch-a来查找它

git branch -a
对于重基后推送,最好添加选项-force with lease。因为这可能不是一个快速前进的合并后,再基地。git push将使用不带-force*选项的非快进合并失败。使用-force With lease,只有在执行重基时代码不再是最新代码时,推送才会失败。它可以确保你不会覆盖其他人的新提交

git push origin yourBranch --force-with-lease
对于第二个问题,您可以使用git日志检查您的分支和远程跟踪分支之间是否存在提交,例如:

git log --graph --pretty=oneline origin/yourBranch..yourBranch 

原来这是由于非快进错误造成的。更改正在本地提交,但没有远程推送。