ローカルコンピューターでGitを使用してバージョン管理下に置きたいプロジェクトファイル(テストファイルを含む)があります。プロジェクトファイルのサブセットのみを含むパブリックリモートリポジトリ(GitHub上)を作成したい(プロジェクト内のテストファイルの一部をパブリックリモートリポジトリから省略したい)。
特定のファイルが省略され、リモートリポジトリまたはその履歴にこれらのファイルが存在したことを示す参照がないように、リモートリポジトリを設定するにはどうすればよいですか?
これを試して:
gitリポジトリを初期化します:
git init
すべての公開ファイルを追加し、最初のコミットを行います。
git add public1 public2 ...
git commit -m 'initial commit'
新しいprivate
ブランチを作成します。
git checkout -b private
テストファイルや、公開したくないその他のものを追加します。
git add testcase1 testcase2 ...
git commit -m 'added test cases'
これで、2つのブランチを持つリポジトリができました。ブランチには、master
公開したいものだけが含まれています。private
ブランチはマスターブランチに基づいていますが、いくつかの追加ファイルがあります。
githubremote
を追加し、マスターブランチをプッシュします。
ブランチでほとんどの作業を行い、必要に応じmaster
て定期的に変更をブランチにマージするprivate
必要があります。
更新:ファイルを頻繁に処理する必要がある場合、「プライベート」ファイルからの変更とパブリックファイルへの変更を区別することが困難になるため、これは複雑になります。すべてのプライベートファイルを特定のサブディレクトリに限定できる場合、最も簡単な方法は、プライベートファイルを別のリポジトリに配置することです(そして、作業コピーをパブリックリポジトリ内でチェックアウトすることです)。
すべてを同じサブディレクトリに限定できない場合でも、シンボリックリンクをクリエイティブに使用することで同様のソリューションを追求できます。