2012-01-27 269 views
1

github上有一种方法可以查看分支历史的历史吗? 我的意思是,一个分支显然只是一个指向提交散列的指针。我想要的是每次分支在服务器上指向哈希时,为了该更改被记录到某处,例如每次有人推送分支时都会有一个新的条目添加到新闻馈送中,例如“用户名将branchname从oldhash改为newhash“。历史的历史

这很好,因为git允许你通过rebase编辑历史记录,但是如果你能看到旧的散列,你仍然可以回到旧的历史。我在github中找不到类似的功能。如果你允许non-ff推送,那么有一个分支用来指向什么散列的历史可以成为一个真正的救星。

回答

1

GitHub本身没有办法做到这一点,但是你自己的本地克隆有它的内置 - 它被称为reflog。看看git help reflog了解更多详情(another link了解更多信息)。

+0

我知道reflog,但不幸的是它不是一回事。首先它太冗长了;它包含了每一个变化,所以如果一个星期之后我发现某个主人被搞砸了,因为我做了一次变身,并认为我处于不同的分支......我有什么机会合理地找出它应该在哪里通过查看reflog?另一个问题当然是如果有人在上游做这件事,我怎么知道是谁做的? – 2012-01-29 05:39:15

+0

GitHub不保留reflogs,所以基本上,你不能。 (小心你给你的存储库写入权限。) – Amber 2012-01-29 06:01:29

+0

'git log --walk-reflogs '可以帮助我们弄清楚到底发生了什么。 – Amber 2012-01-29 06:01:51