我有一个 git repo,我只是将它推送到服务器。然后我在服务器上设置了一个接收后挂钩。我想检查它是否有效。我必须再次提交以查看它是否有效?我真的很想在尝试设置此设置时强制推动,而不是继续进行没有实际价值的提交。它不起作用,我就是不明白。
$ git push --force origin master
Everything up-to-date
我有一个 git repo,我只是将它推送到服务器。然后我在服务器上设置了一个接收后挂钩。我想检查它是否有效。我必须再次提交以查看它是否有效?我真的很想在尝试设置此设置时强制推动,而不是继续进行没有实际价值的提交。它不起作用,我就是不明白。
$ git push --force origin master
Everything up-to-date
您需要推送一个较旧的提交来实现这一点。例如,您可以使用以下注释在当前 HEAD 之前推送提交:
git push --force origin HEAD^:master
在此之后,您可以再次推送 HEAD 提交:
git push origin master
但是,与其一直推送,不如考虑手动调用钩子。这通常更容易——但当你认为一切正常时,不要忘记用实际的推动来测试。
您可以使用一些肮脏的技巧:
git stash save && git push --force origin "stash@{0}:master" && git stash pop
这做了 3 件事:
这将有效地将所有文件推送到远程,而无需创建本地提交。