私が提案しようとしているのはおそらく#999064の回答に似ていますが、私はそれを行っていきます。
基本的には、2つのブランチを使用することです。 master
はあなたのすべての公共事業が入り込む主要な支店です。 work
は私設支店です。だからあなたは、あなたが変更を公に利用できるようにしたいときはいつでも、あなたはmaster
のコミットを行います。コミットがプライベートである場合は、work
ブランチ上に作成します。
トリックは、master
をwork
に戻してマージすることです。この方法でwork
はすべてmaster
という変更を行いますが、master
にはmaster
で行われたコミットのみが含まれます。
だから何あなたが得ることである:
-- work --------- c -- e ------- h
/ /
-- master -- a -- b -- d -- f -- g
master
はコミット、B、D、F、Gが含まれています。 work
には、マージコミットc(a、bを含む)、h(d、f、gを含む)、および通常のコミットeが含まれています。
eはwork
ブランチにのみあり、他のすべてのコミット(マージコミットを除く)は両方のブランチにあります。
上のグラフを生成する方法については、例:
# on branch master
# changes for a
git add .
git commit -m 'commit a'
# changes for b
git add .
git commit -m 'commit b'
# switch to work
# merge a and b (from master) into work, producing merge commit c
git checkout work
git merge master
# switch to master
# make commits d, f and g
git checkout master
...
# switch to work
# make commit e
# merge d, f and g (from master) into work, producing merge commit h
git checkout work
git merge master
だからあなたが2つのリモコン、public
とprivate
を持っています。 work
とmaster
をprivate
にプッシュしますが、master
をpublic
にプッシュするだけです。
私は役立つことを願っています。
これは私が探していたものです、ありがとう! –