コミット履歴が異なるパブリック/プライベートgitリポジトリ

ワインダー

ここで説明されているものと同様のパブリック/プライベートのハイブリッドワークフローを使用して、GitHubでオープンソースプロジェクトを管理しようとしています:https//stackoverflow.com/a/30352360/204023

基本的に、これは、GitHubのfork関係なしに、相互にミラーリングする2つのリポジトリが存在するプロセスを説明していますこれにより、標準のgitリモートリポジトリを使用してブランチ間で変更をプッシュ/プルしたり、パブリックGitHubプルリクエストを使用してプライベートな変更をマスターブランチにマージしたりできます。まさに私が達成しようとしていること。

プライベートコミット履歴を維持しながら、機密データが含まれている場合にPUBLICコミット履歴を切り捨てたいという追加の要件が1つあります。

新しいプロジェクトを初期化--depth 1すると違法であることが判明しました。浅いクローンで新しいリポジトリを初期化することはできません。! [remote rejected] master -> master (shallow update not allowed)

コミット履歴を切り捨てるために私が見つけた解決策には、まったく新しいリポジトリの作成が含まれますが、リポジトリの新しいコピーを使用すると、パブリックコピーとプライベートコピーの間でプッシュ/プルできなくなります。

火曜日

Gitのリポジトリに歴史があるコミット。コミットには、ファイルとリンケージの両方が含まれます。各コミットには、すべてのファイルの完全なスナップショットと、その親のハッシュIDが含まれます。各ブランチ名には最新のコミットのハッシュID(単数)が格納され、Gitは最後から始めて、一度に1つの親を逆方向に処理することで履歴を見つけます。

各コミットのハッシュIDは、親ハッシュを含むそのコミット内容の暗号化チェックサムであるため最後のコミットのハッシュIDは、そのコミットからすべてのコミットまでさかのぼって形成された履歴内のすべてのコミットのハッシュIDに依存します。他の到達可能なコミット。(技術用語では、これはマークルツリーの形式です。)

これらすべての意味するところは、リポジトリDAGの短いバージョンをパブリックに保ち、長いバージョン(短いコミットと追加されたコミット)をプライベートバージョンとして保持すること可能ですが、一部の履歴コミットを省略したパブリックバージョンを作成することはできません。他の人を維持しながら。また、代わりに、並列グラフ、つまり独立したDAGを使用することもできます。1つはパブリック履歴を含み、もう1つはプライベート履歴を含みます。Gitサブモジュールを介してこれを行う場合、個人情報を公開しないことを合理的に確信できますが、それは強い構造的制約を課します。パブリックなものはすべてサブディレクトリでなければなりません。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

履歴が異なる別のリポジトリからコミットをリベースする方法は?

分類Dev

コミット履歴が異なるリポジトリ全体にパッチを適用する

分類Dev

コミット履歴がないgitリポジトリを、履歴を保存したリポジトリにマージします

分類Dev

Gitリポジトリを新しいリポジトリに複製する-コミット履歴なし

分類Dev

パブリックリポジトリをプライベートにフォークし、パブリックコミットを受け取ります

分類Dev

GitHubEnterpriseプライベートリポジトリ用のGitコミットAPI

分類Dev

gitは、数回のコミット前に削除された大きなサブディレクトリをリポジトリ履歴から削除します

分類Dev

複製されたTFSリポジトリを履歴のあるプライベートリポジトリにプッシュする

分類Dev

プライベートgitサーバーでパブリックgitリポジトリを分岐します

分類Dev

マスターブランチのリモートアップストリームとコミット履歴を同一にする方法をGit

分類Dev

git:あるリポジトリの履歴を別のリポジトリのディレクトリにコピー(チェリーピック)します

分類Dev

シェルスクリプトで* n *コミットのgit履歴(コミット日)を変更する

分類Dev

コミットを保持しながら、残りの履歴を集約しながら、ブランチを別のリポジトリに移動します

分類Dev

機密データを含むプライベートおよびパブリックGitリポジトリ

分類Dev

サブツリーのコミット履歴に参加する

分類Dev

Gitリポジトリのコミット履歴から大きなファイルを削除/削除するにはどうすればよいですか?

分類Dev

2つの間でプルリクエストを使用してパブリック/プライベートgitリポジトリを作成する方法

分類Dev

Git:以前のすべての履歴なしでコミットをチェリーピックする方法

分類Dev

Gitリベースは現在のブランチをリモートの後ろに残します、よりクリーンなコミット履歴が必要です

分類Dev

Gitリベースは現在のブランチをリモートの後ろに残します、よりクリーンなコミット履歴が必要です

分類Dev

履歴を保持しながら、特定のファイルをあるgitリポジトリから別のgitリポジトリにコピーする方法

分類Dev

PhpStormを使用してパブリックGitHubリポジトリをプライベートリポジトリにプッシュする方法は?

分類Dev

プロジェクト/変更/コミットを別のマシンのオフラインリポジトリに転送するためのベアgitリポジトリのワークフローとセットアップ?

分類Dev

コミット履歴のないGitマージ機能ブランチ

分類Dev

履歴のないgitリポジトリをコピーする

分類Dev

Git履歴でマージコミットを取得せずにプルリクエストをマージする方法

分類Dev

異なるgit履歴を異なるリポジトリにプッシュするにはどうすればよいでしょうか?

分類Dev

GIT リポジトリ (およびコミット履歴) を現在空の別のリポジトリに移動する

分類Dev

ユーザートランザクション履歴ハイパーレジャーファブリック

Related 関連記事

  1. 1

    履歴が異なる別のリポジトリからコミットをリベースする方法は?

  2. 2

    コミット履歴が異なるリポジトリ全体にパッチを適用する

  3. 3

    コミット履歴がないgitリポジトリを、履歴を保存したリポジトリにマージします

  4. 4

    Gitリポジトリを新しいリポジトリに複製する-コミット履歴なし

  5. 5

    パブリックリポジトリをプライベートにフォークし、パブリックコミットを受け取ります

  6. 6

    GitHubEnterpriseプライベートリポジトリ用のGitコミットAPI

  7. 7

    gitは、数回のコミット前に削除された大きなサブディレクトリをリポジトリ履歴から削除します

  8. 8

    複製されたTFSリポジトリを履歴のあるプライベートリポジトリにプッシュする

  9. 9

    プライベートgitサーバーでパブリックgitリポジトリを分岐します

  10. 10

    マスターブランチのリモートアップストリームとコミット履歴を同一にする方法をGit

  11. 11

    git:あるリポジトリの履歴を別のリポジトリのディレクトリにコピー(チェリーピック)します

  12. 12

    シェルスクリプトで* n *コミットのgit履歴(コミット日)を変更する

  13. 13

    コミットを保持しながら、残りの履歴を集約しながら、ブランチを別のリポジトリに移動します

  14. 14

    機密データを含むプライベートおよびパブリックGitリポジトリ

  15. 15

    サブツリーのコミット履歴に参加する

  16. 16

    Gitリポジトリのコミット履歴から大きなファイルを削除/削除するにはどうすればよいですか?

  17. 17

    2つの間でプルリクエストを使用してパブリック/プライベートgitリポジトリを作成する方法

  18. 18

    Git:以前のすべての履歴なしでコミットをチェリーピックする方法

  19. 19

    Gitリベースは現在のブランチをリモートの後ろに残します、よりクリーンなコミット履歴が必要です

  20. 20

    Gitリベースは現在のブランチをリモートの後ろに残します、よりクリーンなコミット履歴が必要です

  21. 21

    履歴を保持しながら、特定のファイルをあるgitリポジトリから別のgitリポジトリにコピーする方法

  22. 22

    PhpStormを使用してパブリックGitHubリポジトリをプライベートリポジトリにプッシュする方法は?

  23. 23

    プロジェクト/変更/コミットを別のマシンのオフラインリポジトリに転送するためのベアgitリポジトリのワークフローとセットアップ?

  24. 24

    コミット履歴のないGitマージ機能ブランチ

  25. 25

    履歴のないgitリポジトリをコピーする

  26. 26

    Git履歴でマージコミットを取得せずにプルリクエストをマージする方法

  27. 27

    異なるgit履歴を異なるリポジトリにプッシュするにはどうすればよいでしょうか?

  28. 28

    GIT リポジトリ (およびコミット履歴) を現在空の別のリポジトリに移動する

  29. 29

    ユーザートランザクション履歴ハイパーレジャーファブリック

ホットタグ

アーカイブ