は、そこから他のすべて知っている事は、流れています:git gc
(同様んgit gc
だけでなく、物事を)やってたときに、gitのは何を削除することはありません除いて、それしかは新しいものが追加されます。 (:http://blog.kfish.org/2010/04/git-lola.htmlgit lola
から、これが切り取られると、わずかに変更された出力)
* 9d2e82c handle another temporary failure mode
| * 2afb8a0 (resubmit) checkpoint: resubmit
| * 90dcfbb move definitinon of GRONK to sysdefs
|/
* 1ba7847 treat XML login errors as temporary failures
:
のは、あなたがこのようになります枝を持っているとしましょう。今私は私のブランチ(1234567と7654321、または何でも)に2つの新しいコミットがあるように、間違ったfilter-branch
のような私の "再サブミット"ブランチに何かをしたと言う。私は、ああ、私は何かを完全に壊してしまったことを理解しています。そして、私は、そのブランチの元の先端である2afb8a0をコミットすることを指すように戻すことを欲しがります。コミット
はgitのでまだで、少なくとも数ヶ月間となります(インスタンスのためにそれにgit log
をやってユーザに見える支店名original/refs/heads/tmp
-tryを持っているので、もはや、あなたはそれがあります表示されます) 。あなたのケースではコミットIDを簡単に見つけることができます。名前はoriginal/refs/heads/tmp
です。そこにブランチポイントを設定します。あなたが名前を持っていなかった場合は、(上記の私自身など)git branch -d resubmit
、その後git branch resubmit 2afb8a0
を行うことができますが、あなたはこれを行う:
git branch -D tmp
git branch -m original/refs/heads/tmp tmp
は、あなたの現在のtmp
を削除し、tmp
に改名1戻って名前を変更します。
(filter-branch
が最近追加された新しいコミット、あなたはまだあなたのリポジトリになり、結局好きではない。あなたは約3ヶ月で期限が切れるでしょう、ユーザー可視名を削除した後は決まっていること、その後、git gc
が削除されます)。
ああ、バックアップは他のどのようなものでもあります。それは私が欠けていたビットです。 :) –
ああ、はい、それを置くには良い方法です。しかし、あなたがref名を失ったとしても、そこにコミットが残っていても、見つけにくくなります。 – torek