2017-08-10 12 views
1

自分の仕事の特定の段階をgithub.comにプッシュしたいのですが、私はその小さな変化と何百ものコミットで私のマスターをプッシュしたくありません。リビジョンに対処せずにマスターから孤立したブランチにファイルをコピー

だから私は、次の手順を行っによってを公開orphanブランチを作成するために考えた:

git checkout --orphan publish 
git rm -rf . 

は改訂履歴をコピーせずに、publishmasterから特定のファイルやフォルダをコピーする方法はありますか?

+2

Gitではhistory *は*コミットであることに注意してください。コミットの連鎖がある場合は、履歴があります。 '--orphan'は、次のコミットに親がないように設定されているため、履歴はありません。それはまだインデックスにある* files *を持ち、それはあなたの 'git rm -rf .'の目的です:インデックスを空にして、次のコミットがまだファイルを持たないようにします。 – torek

答えて

4

ごめんなさい、あなたがチェックアウトすることができます。彼らは枝masterにあるよう

git checkout master -- example.txt somefolder/somesubfolder 

このコマンドは、作業ディレクトリにファイルexample.txtやフォルダsomefolder/somesubfolderをチェックアウトするにgitを語っています。これはmasterブランチ自体のチェックアウトを行うのと同じではありません–あなたは現在のHEAD –に滞在していてもマージするものではありません。他の場所からファイルをコピーするのと同じです。

+0

私は_publishing_ブランチにいる間にこれを行いますか? – nath

+0

はい、そうしているのは、 'example.txt'というファイルと' somefolder \ somesubfolder'というファイルがブランチの 'master'にあるように作業ディレクトリにチェックアウトするようにgitに指示することです。これは、 'master'ブランチ自体のチェックアウトと同じではありません。現在の' HEAD'にとどまります。また、どのようなマージもありません。他の場所からファイルをコピーするのと同じです。 –

+1

説明のために、正しさのために 'somefolder/somesubfolder'、'/'の代わりに'/'を使う必要はありませんか? – nath

関連する問題