私の現在の雇用者では、Githubでホストされているオープンソースプロジェクトをアプリケーションのコンポーネントとして使用しています。私はこのプロジェクトに取り組んでおり、必要な機能を追加したり、ビルドシステムと統合したりしています。私のマネージャーと私は、このコンポーネントに関する作業を、オープンソースプロジェクトに合理的な範囲で提出することに同意します。私の質問は、オープンソースプロジェクトに追加する意味のあるもの-バグ修正と十分に一般的な新機能-を簡単に分離できるように、Gitコミットを維持するための最良のワークフロー/テクニックについてです。ビルドの場所やアプリケーションの定数など、プロジェクトに固有のものから。
これまで行ってきたことは、適切な粒度ですべての変更をコミットするプライベートGitブランチを維持することです。次にcherry-pick
、オープンソースのコミットをmasterブランチに追加し、Githubに送信します。
私はこれを行うためにマージを使用する必要があるようです。そのため、同じ内容の個別のコミットを作成し続けることはできませんが、会社固有のコミットを除外して合理的なワークフローを維持しながらこれを行う方法はわかりません。
たとえば、マスターでオープンソース可能なものとプライベートブランチで会社固有のものをコミットし、必要に応じてマスターをそのブランチにマージし、マージ前にマスターブランチがコミットを指すようにして、オープンソース可能なものを再度コミットしてから、再度マージします。このワークフローで厄介なように思えるのは、どのブランチに属しているかを行うすべてのことを事前に決定し、完了したと思われるものに取り組んでから、テストしてからコミットしてマージする必要があることです。Gitで私が本当に気に入っていることの1つは、アプリケーションを機能させるために必要なことを何でもすることが簡単で、後で変更をコミットする方法と場所を決めることです。私が知る限り、あなたが現在ブランチにいて、何らかの作業を行っている場合、
私は長期的な貢献のために合理的なワークフローを行っていますか?誰かがより良いかもしれない別のワークフローを推奨できますか?なぜそれが良いですか?