リポジトリのサブディレクトリにある 1 つのファイルを変更しました。そのファイルだけを Github にプッシュしたいと考えています。
1 つのファイルに小さな変更を加えたので、リポジトリ全体を再アップロードしたくありません。
これまで見てきたすべての手順では、マスターとローカルでマージしてから、ローカル マスターをリモートのオリジンにプッシュする必要があるようです。
その1つのファイルだけをプッシュするにはどうすればよいですか?
リポジトリのサブディレクトリにある 1 つのファイルを変更しました。そのファイルだけを Github にプッシュしたいと考えています。
1 つのファイルに小さな変更を加えたので、リポジトリ全体を再アップロードしたくありません。
これまで見てきたすべての手順では、マスターとローカルでマージしてから、ローカル マスターをリモートのオリジンにプッシュする必要があるようです。
その1つのファイルだけをプッシュするにはどうすればよいですか?
プッシュを行うと、git はコミットした変更のみを受け取ります。
を実行すると、最後のプッシュ以降に変更したファイルが表示されることを覚えていgit status
ますか?
これらの変更をコミットしてプッシュすると、それらのファイルのみがプッシュされるため、マスター全体がプッシュされると考える必要はありません。実際にはそうではありません。
単一のファイルをプッシュする方法:
git commit yourfile.js
git status
git push origin master
とてもシンプルです。次の手順に従ってください:
1. git status
2. git add {File_Name} //変更されたファイル名
3. git status
4. git commit -m '{your_message}'
5. git push origin master
git の仕組みは、ファイルをプッシュ/フェッチしていないということから始めましょう。まあ、少なくとも直接ではありません。
コミットを指す参照をプッシュ/フェッチしています。次に、git でのコミットは、オブジェクトのツリーへの参照です (ファイルは他のオブジェクトの中でもオブジェクトとして表されます)。
したがって、コミットをプッシュするとき、git は次の図のように一連の参照をプッシュします。
マスター ブランチをまだプッシュしていない場合は、ブランチの全履歴がプッシュされます。
したがって、あなたの例では、ファイルをコミットしてプッシュすると、以前にプッシュされていない場合、マスター ブランチ全体がプッシュされます。
あなたが求めたことを行うには、この回答のように、履歴のないクリーンなブランチを作成する必要があります。
1 つのファイルをコミットしてリビジョンをプッシュすると、リポジトリ全体が転送されず、変更がプッシュされます。
新しいコミットのみをプッシュします。「マスター」ブランチ全体をプッシュするわけではありません。これは、分散バージョン管理システムを使用する利点の一部です。Git は実際に何が必要かを判断し、それらの部分のみをプッシュします。現在のブランチが変更され、他の誰かによってプッシュされた場合は、最初にプルする必要があります。次に、コミットをプッシュします。