2017-05-02 6 views
0

私はたくさんのコミットでgitプロジェクトを持っています。リリースブランチでgitコミットを非表示にする

-B-C-D-E-F-G-H-Iは

Iのみ見ることができるコミットをタグ付けされたリリースブランチにこれをプッシュしたいと思います。例えば

-D-H

私はリベース、スカッシュマージで試してみましたが、何も動作していないようにみえます。 コミットがgitサーバーにプッシュされたら、リベースできないことを読んでいますが、これが私の問題かもしれません。 誰も良いヒントをお持ちですか?

編集

私は少し醜いしかし使用可能な解決策を見つけました。 私はリリース・リポジトリと、リリース・コミットをチェックアウトしてリリース・リポジトリにコピーしてそこにコミットする小さなスクリプトを作成しました。

そして、実際には不可能であるとの返答を感謝します。

+1

コミットを「非表示」することはできません。リポジトリにコミットすることも、そうしないこともできます。マージまたはリベースを使用してそれらを削除すると、それらの変更が削除され、変更が別のコミットにフォールディングされます。それはあなたが欲しいものですか?それらのコピーを「見えない」場所に置かない限り、元のコミットは失われます。 –

+0

あなたはこの投稿を編集し、 "見た"と "隠す"という意味を明確にすることができます。同じ一連の変更を3つのコミットに分けたい場合は、ファイルに何らかの変更が加えられることが予想されるが、コミットはログにはなく、コミットまだ存在している - それは全く異なっており、実際には不可能です。 –

答えて

0

あなたが見たいのは、いくつかのリビジョンしか公開しないストレートブランチであり、開発に使用するブランチの履歴にはの関係があると仮定すると、そうすることができます2つの方法で:

  • コミットツリーを使用します。 git commit-treeを使用すると、親(または親)とツリー(そのリビジョンのファイルの内容)を指定したリビジョンを作成できます。 好きなリビジョンからツリーを指定し、新しいリビジョンに必要な親を提供することができます。そうすれば、もしあなたが望むなら、すべてのブランチの履歴を "スキップ"することができます。美しくはありませんが、可能です。あなたはGが親として持つリビジョンの木を使用してリビジョンMを作成したい場合:

    • を改訂G(G -p Gitの猫ファイル)
    • のツリーオブジェクトは、リビジョンオブジェクトを作成しなさい:gitのを-m "はここで改正についてコメントだ" -pコミットツリーツリー・オブジェクトのための-G-から-のgit-CAT-ファイル
    • ポイントこの新しいリビジョンへの分岐
    • 出来上がり
  • cあなたが望みたいと思っている木を頼りにしています。だから、あなたはリビジョンAにチェックアウトすると言う:

    • Gitチェックアウト
    • GitチェックアウトG - 。 #リビジョンGのプロジェクトの全内容をチェックアウト...ファイルが削除/名前変更されるかどうかわからない...
    • git commit -m "改訂のためのコメント"
    • このリビジョンに新しいブランチを作成し、あなたは終わった。
関連する問題