git可以查看远程的reflog吗?
是否有可能查看远程的reflog? 也就是说,我想知道git reflog在另一台远程机器上的输出是什么。 
请注意,我不是要求远程跟踪分支的reflog(例如origin / master),我要求在其他机器上logging什么。
 答案基本上是“否”(除了在那台机器上),因为reflog是一些ref-name的本地重新赋值的日志。 从本质上讲,每次运行git update-ref -m msg <name> <target> ,都会logging更新…本地: .git/logs/<name>获取一行: 
 $ git update-ref -m foo HEAD HEAD^ $ tail -1 .git/logs/HEAD 2418b6ba8fd0289933c9351260a272b8e410867f 8d945134b0cead535d66af29c8eb4228b5dc3763 [redacted] <[redacted]> 1334106483 -0600 foo 
  (消息之前的东西,在这个例子中, foo不是空格,而是一个标签;为了SO的目的,我扩展了它)。 从概念上讲,所有其他移动分支的技巧都会调用git update-ref来完成它(一些是shell脚本,从字面意义上来说,其他的只是调用执行所有文件更新的C代码)…以及.git/logs组成reflog。 
如果在底层的git://和/或ssh://协议中有东西可以让你进入reflog,那就可以做了,但据我所知没有。
如果远程机器是github存储库,
- 
首先使用Github的Events API来检索提交SHA。 
 curl https://api.github.com/repos/<user>/<repo>/events
- 
确定任何分支中不再存在的孤立提交符的SHA 。 
- 
接下来,使用Github的Refs API创build一个指向孤立提交的新分支。 curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X POST -d '{"ref":"refs/heads/D-commit", "sha":"<orphan-commit-id>"}' https://api.github.com/repos/<user>/<repo>/git/refs将上述命令中的 <orphan-commit-id>replace为步骤2中标识的SHA。
- 
最后 git fetch新创build的分支到您的本地存储库。
 从那里你可以挑选或合并提交到你的工作。
看看这篇文章的一个实际例子。
 在GitHub上,如果你错误地做了一个git push --force之前去取得合并的变化,同时合并的分支被删除(是的,这发生在我身上),你可以寻找合并的拉请求,并去到提交部分,例如: 
  
 
 然后你继续上一次提交,然后点击<>button(标题为“在历史中的这个时候浏览这个版本库”)。 
这会使你进入“删除”的历史点。 从这里你可以:
- 创build一个新的分支,然后打开一个新的拉取请求(build议如果更改来自另一个存储库)。
- 打开一个新的pull请求(build议在仓库中提交)。