web-dev-qa-db-ja.com

サブディレクトリの単一ファイルをGithub(マスターではない)にプッシュする方法

リポジトリのサブディレクトリにある1つのファイルを変更しました。そのファイルだけをGithubにプッシュします。

1つのファイルに小さな変更を加えましたが、リポジトリ全体を再アップロードしたくありません。

これまで見てきたすべての指示では、ローカルでマスターとマージし、ローカルマスターをリモートOriginにプッシュする必要があるようです。

その1つのファイルだけをプッシュするにはどうすればよいですか?

27
moon star

プッシュを実行すると、gitはコミットした変更のみを取得します。

git status最後のプッシュ以降に変更したファイルが表示されますか?

これらの変更をコミットしてプッシュを実行すると、プッシュされるのはそれらのファイルのみであるため、実際にはマスター全体がプッシュされるので、マスター全体がプッシュされると考える必要はありません。

単一のファイルをプッシュする方法:

git commit yourfile.js
git status
git Push Origin master
28
krilovich

とても簡単です。次の手順に従ってください。
1。 git status
2。 git add {File_Name} //変更されたファイル名
3。 git status
4。 git commit -m '{your_message}'
5。 git Push Originマスター

12
Salman Srabon

まず、gitが機能する方法は、ファイルのプッシュ/フェッチではないということです。まあ、少なくとも直接ではありません。

コミットを指す参照をプッシュ/フェッチしています。 gitでのコミットは、オブジェクトのツリーへの参照です(ファイルは、他のオブジェクトの中でもオブジェクトとして表されます)。

したがって、コミットをプッシュするとき、gitが行うことにより、次の図のような一連の参照がプッシュされます。

git commits

マスターブランチをまだプッシュしていない場合、ブランチの全履歴がプッシュされます。

したがって、この例では、ファイルをコミットしてプッシュすると、マスターブランチ全体がプッシュされます(以前にプッシュされていなかった場合)。

要求したことを行うには、 this answer のように、履歴のないクリーンなブランチを作成する必要があります。

10
Adam Adamaszek

1つのファイルをコミットしてリビジョンをプッシュすると、リポジトリ全体は転送されず、変更がプッシュされます。

新しいコミットのみをプッシュします。 「マスター」ブランチ全体をプッシュしません。これは、分散バージョン管理システムを使用する利点の一部です。 Gitは実際に必要なものを把握し、それらの要素のみをプッシュします。現在のブランチが変更され、他の誰かによってプッシュされた場合、最初にプルする必要があります。次に、コミットをプッシュします。

1

単一ファイルのみをプッシュ

git commit -m "Message goes here" filename

2つのファイルのみをプッシュします。

git commit -m "Message goes here" file1 file2
0
itro