2016-08-03 10 views
1

コンテキスト'refs /'ディレクトリの外にpush参照を入れることはできますか?

我々は定期的にmaster生産支店を持ち、および検証ときにマージされアウトフォーク枝を、備えています。

古いフィーチャブランチを削除する方法を探していましたが、feature/gizmoがマージされたときにea33ffc2をコミットするように指摘されているトラックを保持します。

私たちは、合併時にデフォルトがメッセージをコミット保つため、一つの方法は、バックの名前を見つけるためにgit logて掘ることです。

:私は何とか私は参照を作成する方法について考えていた git log --decorateまたは gitkまたは gitgか...

の出力を壊しません明示的な参照を、保つことができれば定期.git/refs/ディレクトリを、例えば私が思っていました

git update-ref history/feature/gizmo feature/gizmo 
git branch -d feature/gizmo 

しかし、.git/histroy/に保存されている参照をoriginにプッシュする方法が見つかりませんでした。

質問

リモートリポジトリにrefs/の外に住んでいるの参照をプッシュする方法はありますか?

+0

[tags](https://git-scm.com/book/en/v2/Git-Basics-Tagging)は使用できませんでしたか? –

+0

@EnricoCampidoglio:私は定期的なgitツールで表示されない参照を保持する方法を探していた – LeGEC

+0

参照してください。フィーチャーブランチが 'master'にマージされたときに、どのブランチが指しているコミットが正しいかを知りたいでしょうか? –

答えて

0

私の知る限り、あなたはrefsディレクトリの外の参照をプッシュすることはできません。

ただし、それは、このコマンドを実行することにより、masterにマージされた前の最後はfeatureにコミットしたの質問に答えることができます。

git rev-list --merges master | xargs -i sh -c \ 
'git merge-base -- is-ancestor {}^2 feature && git show {}^2' 

はのは、それを打破してみましょう:

  1. マージのSHA-1ハッシュgit rev-list --merges masterリストはmaster
  2. から到達可能をコミットこれらのハッシュの各々について
  3. git merge-base -- is-ancestor {}^2 featureマージコミットの(^2で参照)第二の親feature分岐の祖先であるか否かを判断する次のコマンドを実行します。つまり、このマージコミットはfeatureから行われましたか?
  4. && git show {}^2はいの場合は、そのコミットのメタデータとパッチを表示します。あなたはより簡潔な出力をしたい場合は、この複数回実行するつもりなら、あなたは簡単にシェルスクリプト、あるいはaliasにそれを置くことができ、git show --oneline --no-patch {}^2代わり

を実行することができます。

関連する問題