私はgitを使用してオープンソースプロジェクトに取り組んでいます。
ソース コードに変更を加え (既存のファイルを変更し、新しいファイルを追加し、既存のファイルを削除します)、コミットせずにパッチ ファイルを生成したいと考えています。どうやってするの ?
私はgitを使用してオープンソースプロジェクトに取り組んでいます。
ソース コードに変更を加え (既存のファイルを変更し、新しいファイルを追加し、既存のファイルを削除します)、コミットせずにパッチ ファイルを生成したいと考えています。どうやってするの ?
プロジェクトに追加された新しいファイルの場合:
git add -N <path of the new file>
次に、パッチを生成します。
git diff > patch
広く知られていないか、SO のソリューションとして広く使用されていないだけかもしれませんが、 の出力はgit diff
にパイプできる有効なパッチ形式ですgit apply
。したがって、パッチを生成するために使用するステージングされていない変更があると仮定します。
git diff -- <file> > ~/mypatch ;# redirect diff output to ~/mypatch
次に、別のリポジトリで:
git apply < ~/mypatch
まったく追跡されていない新しいファイルがあるとします。フラグをgit diff
指定してファイルを比較することで、引き続き使用できます。--no-index
/dev/null
git diff --no-index /dev/null <file> ~/mypatch
その後、同じように適用します。
この回答は、主に git でできることの演習です。新しいブランチ(Adam Dymitrukの回答による)または使用しているメインブランチ(madth3のコメントによる)のいずれかに変更をローカルにコミットしないという実際的な理由は考えられません。
コミットします。
git checkout -b myfeature
好きならまず