我看到一个奇怪的行为,我不知道这是一个错误还是一个功能。
在 1 号机器上,我执行 git reset --hard someCommit && git push -f 。然后重置会传播到所有计算机(我可以通过从另一台计算机执行 git pull
或 git log
来查看更改)。
在运行 JGit 的 2 号机器上,我执行:git.pull().call()
,但未应用重置,磁盘上的文件也未更改。而且 git.log().call() 并不指向恢复的提交。
我做错了什么?
最佳答案
喜欢Tim据描述,您可能需要强制在其他计算机上获取。
PushCommand::call()
的返回值将告诉您推送是否成功以及为何失败。
要强制拉入 JGit,请按照以下示例操作:
git.fetch()
.setForce( true )
.setRefSpec( new RefSpec( "refs/heads/someBranch:refs/remotes/origin/someBranch" ) )
.call();
git.reset()
.setMode( ResetType.HARD )
.setRef( "someBranch" )
.call();
关于JGit不拉远程重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37956037/