24

プロジェクト間で再利用するテンプレート/開始点コードがいくつかあります。新しいプロジェクトに取り組んでいる間、私はいつもテンプレートに何かを追加したり変更したりしたいと思っています。プロジェクトと並行してテンプレートを開発すると思います。

私の追加のいくつかはプロジェクト固有のものであり、テンプレートにコミットするべきではありません。他の人はすべきです。

これにはgitを使用できるに違いありませんが、方法がわかりません。テンプレート用の git リポジトリと、各プロジェクト用の git リポジトリがあります。すべてではありませんが、一部のコミットをテンプレートにプッシュバックしたいと考えています。コミットされないファイルのサブセットを作成できますか? 1 つのブランチでプロジェクト固有の作業を行い、マスターでテンプレートを使用する必要がありますか?

どんな洞察も本当に感謝しています。私のgoogle-fuはほとんど得られません。

4

3 に答える 3

15

テンプレートに変更を加えたい場合は、専用のブランチを作成することをお勧めします。ただし、テンプレートにプロジェクト固有の変更が加えられないように、必ず以前のコミットのいずれかから開始してください。のようなものgit checkout -b template_changes EARLY_COMMIT_SHA。次に、既に行ったテンプレートの変更は、チェリーピックできます: git cherry-pick TEMPLATE_CHANGE_SHA.

今後テンプレートに加えたい変更は、テンプレート ブランチで行い、プロジェクトの他のブランチにマージすることができます。しかし、十分に進んでいる場合は、テンプレート プロジェクトに切り替えることをお勧めします。

テンプレートの変更をプロジェクトからテンプレート git リポジトリにプッシュするには、git format-patch SHA_FROM_WHERE_TEMPLATE_BEGAN. これにより、多数のパッチ ファイルが作成され、テンプレート リポジトリにコピーして実行git apply 0001-... 0002-...し、パッチを適用する必要がありますが、これはあまり面白くありません。

より git-fu を行うには、テンプレート リポジトリをプロジェクト リポジトリに追加しgit remote add template /path/to/template/repoます。-tテンプレート ブランチが存在する場合は、または-mオプションまたはコマンドgit remote set-head template template_branch:master(または何か)をいじる必要があるかもしれません。次に、変更をテンプレート リポジトリにプッシュできるはずですgit push template template_branch。template_branch のヘッドがプロパティに設定されていない場合は、必要になる場合がありますgit push template template_branch:master

これがうまくいくことを願っています。楽しんでね!

于 2011-04-07T01:31:36.850 に答える