web-dev-qa-db-ja.com

いくつかのファイルだけをコミットするにはどうすればいいですか?

私は2つのプロジェクトがあります。ひとつは「公式の」プロジェクトで、もうひとつは軽い修正です(いくつかのファイルが追加されています)。私は新しいブランチを作成し、それらに新しいファイルを置きました。しかし開発中に、両方のブランチに共通のファイルが変更されます。

これらのファイルだけをコミットするにはどうすればいいですか?

207
Nips

変更を一方のブランチにコミットしてから、もう一方のブランチでそれらの変更を表示できるようにするとします。 gitでは、ブランチを変更するときにHEADの上に変更を加えないでください。

変更したファイルのみをコミットします。

git commit [some files]

あるいは、あなたがあなたがきれいなステージングエリアを持っていると確信しているなら、あなたはすることができます

git add [some files]       # add [some files] to staging area
git add [some more files]  # add [some more files] to staging area
git commit                 # commit [some files] and [some more files]

両方のブランチでそのコミットを利用可能にしたい場合は、

git stash                     # remove all changes from HEAD and save them somewhere else
git checkout <other-project>  # change branches
git cherry-pick <commit-id>   # pick a commit from ANY branch and apply it to the current
git checkout <first-project>  # change to the other branch
git stash pop                 # restore all changes again
222
Alex

コミットしたいファイルのリストを取得します

$ git status

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

modified:   file1
modified:   file2
modified:   file3
modified:   file4

ファイルをステージングに追加します

$ git add file1 file2

コミットしている内容を確認してください

$ git status

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    modified:   file1
    modified:   file2

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   file3
    modified:   file4

コミットメッセージでファイルをコミットする

$ git commit -m "Fixed files 1 and 2"

誤って間違ったファイルをコミットした場合

$ git reset --soft HEAD~1

ファイルをステージング解除して最初からやり直す場合は

$ git reset

Unstaged changes after reset:
M file1
M file2
M file3
M file4
122
Abram

あなたはこのようにいくつかの更新されたファイルをコミットすることができます:

git commit file1 file2 file5 -m "commit message"
65
Adriano Rivolli

このうちのいくつかは「不完全」のようです

人々のグループは、引用符などを使うべきかどうかを知りません。

ロケーションパスも表示する1つの特定ファイルを追加します

git add JobManager/Controllers/APIs/ProfileApiController.cs

コミット(コミットはローカルのみで、他のシステムには影響しません)

git commit -m "your message"  

リモートリポジトリへプッシュ

git Push  (this is after the commit and this attempts to Merge INTO the remote location you have instructed it to merge into)

他の答えはスタッシュなどをあなたが時々したいと思うでしょうなどを示します

18
Tom Stickel

ファイルをすでにステージングしている場合は、それらをアンステージします。

git reset HEAD [file-name-A.ext] [file-name-B.ext]

それからそれらを少しずつ戻します。

10
kaiser

次のように複数のファイルに変更を加えたとします。ファイル1ファイル2ファイル3ファイル4ファイル5

しかし、あなたはFile1とFile3の変更だけをコミットしたいのです。

これを行うには2つの方法があります。1>次のコマンドを使用して、これら2つのファイルのみをステージングします。git add file1 file2

次に、git commit -m "your message"をコミットします。

そしてgitを押す

2>直接コミット

git commit file 1 file 3 -m「私のメッセージ」

それからPush、git Push

実際に最初の方法は、ファイルを定期的に変更してステージングしている場合 - >大規模プロジェクト、通常はLiveプロジェクトです。しかし、ファイルを変更してステージングしていないのであれば、直接コミット - >小規模プロジェクトを実行できます。

8
KamalDeep