複数のファイルを同時にGitに追加する方法


120

これは私の最初のgitの使用になります。新しいファイル(たくさん)をフォルダー/プロジェクト(gitローカルリポジトリ)に追加しました。

オンラインチュートリアルとフォーラムを通過し、自分ができることを確認しました

git commit -a

だから私はリポジトリのベースフォルダに移動し、

sudo git commit -a

しかし、いくつかの画面が表示され、コメントを追加するように求められます。続行または終了する方法がわかりません。私は台無しにしたくないので、Ctrl + Zを押して、何もしませんでした。

使用する必要のあるコマンドの概要を教えてください。

git commit -a 

そして

git push?

1
git commit -aエディタを開いて、コミットメッセージを入力します。ログとして表示するメッセージを入力し、エディターを終了します。これでコミットが完了しました。使用してリモートリポジトリに変更をプッシュすることにより、そのフォローアップgit push <remote name> <branch name>などgit push remote master
Bhaskar

3
また、使用する必要はありません(使用しないでください)sudo
dax

返信いただきありがとうございます。sudoを使用しないと、アクセス拒否エラーが発生します。
キショア。

2
以前にsudoを使用したことがあるので、作業ディレクトリにファイルがあり、誤ってrootによって所有されている可能性があります。この時点で、sudoを使用せずに他の操作を実行すると、rootが所有するファイルを変更できないため、権限拒否エラーが発生します。あなたのリポジトリは少し混乱しているかもしれません、そして最初からやり直すのが最善かもしれません(そしてsudo を使わないください)。
グレッグヒューギル2013年

すべてのファイルを追加する場合は、 `git add -a`を使用できます。ただし、選択した複数のファイルを追加する場合は、`git add -i 'を使用できます。git-scm.com/book/en/v2/Git-Tools-Interactive-Stagingを参照してください。これはあなたを助けるでしょう。
Kapila Ranasinghe

回答:


120

行ったすべての変更を追加するには:

git add .

それらをコミットするには:

git commit -m "MY MESSAGE HERE" #-mはメッセージフラグです

これらのステップを次のようにまとめることができます。

git commit -a -m "MY MESSAGE HERE"

コミットした変更をローカルリポジトリからリモートリポジトリにプッシュするには:

git push origin master

この後、githubのユーザー名/パスワードを入力する必要がある場合があります。 これが gitの使用に関する優れた入門書です。少し古いですが、本当にうまくいっているものをカバーしています。


ウィル-aコミットする前に、新しい(unstaged)ファイルを追加しますか?
SabreWolfy 2016

git commit -aはの省略形なgit commit --allので、そうです。
dax

1
$ man git-commitこれには、-a「変更および削除されたファイルを自動的にステージングするようにコマンドに指示しますが、Gitについて通知していない新しいファイルは影響を受けません。」と尋ねたのです。
SabreWolfy 2016

完全を
期す

381

git addコマンドを使用し、その後にスペースで区切られたファイル名のリストを続けます。他のディレクトリにある場合は、パスを含めますdirectory-name/file-name

git add file-1 file-2 file-3

1
ファイル名を指定するだけで、「致命的:pathspec 'filename.java'はどのファイルとも一致しませんでした」というエラーが発生します。代わりに、「git add long / path / {file1、file2、...、filen}」のように、ファイルパス全体とファイル名を指定します
Shravan Ramamurthy

4
これは、ファイル名の1つにgit 1.9.5の空白が含まれていると機能しません
Maxime Helen

これから「<」と「>」を削除する必要があります。これは誰かを混乱させるでしょう。
Saeed Entezari

30

一部の人が言及したように、可能な方法はgit対話型ステージングを使用することです。これは、異なる拡張子のファイルがある場合に最適です

$ git add -i
           staged     unstaged path
  1:    unchanged        +0/-1 TODO
  2:    unchanged        +1/-1 index.html
  3:    unchanged        +5/-1 lib/simplegit.rb

*** Commands ***
  1: status     2: update      3: revert     4: add untracked
  5: patch      6: diff        7: quit       8: help
What now>

を押すと2enter追加可能なファイルのリストが表示されます。

What now> 2
           staged     unstaged path
  1:    unchanged        +0/-1 TODO
  2:    unchanged        +1/-1 index.html
  3:    unchanged        +5/-1 lib/simplegit.rb
Update>>

今、あなたはちょうど私たちが追加したいのであれば、追加したいファイルの数を挿入する必要がTODOindex.html、私たちのように入力し1,2

Update>> 1,2
           staged     unstaged path
* 1:    unchanged        +0/-1 TODO
* 2:    unchanged        +1/-1 index.html
  3:    unchanged        +5/-1 lib/simplegit.rb
Update>>

あなた* は数の前を見ますか?これは、ファイルが追加されたことを意味します。

7つのファイルがあり、7番目以外のすべてを追加したいとします。入力できることは確かです1,2,3,4,5,6が、7の代わりに16があると想像してください。これはかなり面倒です。範囲を使用できるので、すべてを入力する必要がないので、1-6

Update>> 1-6
           staged     unstaged path
* 1:    unchanged        +0/-1 TODO
* 2:    unchanged        +1/-1 index.html
* 3:    unchanged        +5/-1 lib/simplegit.rb
* 4:    unchanged        +5/-1 file4.html
* 5:    unchanged        +5/-1 file5.html
* 6:    unchanged        +5/-1 file6.html
  7:    unchanged        +5/-1 file7.html
Update>>

複数の範囲を使用することもできるので、1から3および5から7が必要な場合は、次のように入力し1-3, 5-7ます。

Update>> 1-3, 5-7
           staged     unstaged path
* 1:    unchanged        +0/-1 TODO
* 2:    unchanged        +1/-1 index.html
* 3:    unchanged        +5/-1 lib/simplegit.rb
  4:    unchanged        +5/-1 file4.html
* 5:    unchanged        +5/-1 file5.html
* 6:    unchanged        +5/-1 file6.html
* 7:    unchanged        +5/-1 file7.html
Update>>

これを使用して、と入力すると、ファイルのステージを解除できます-number。そのため、ファイル番号1のステージを解除するには、次のように入力します。-1

Update>> -1
           staged     unstaged path
  1:    unchanged        +0/-1 TODO
* 2:    unchanged        +1/-1 index.html
* 3:    unchanged        +5/-1 lib/simplegit.rb
  4:    unchanged        +5/-1 file4.html
* 5:    unchanged        +5/-1 file5.html
* 6:    unchanged        +5/-1 file6.html
* 7:    unchanged        +5/-1 file7.html
Update>>

また、ご想像のとおり、特定の範囲のファイルをアンステージングすることもできます。そのため、-rangeその範囲のすべてのファイルを入力すると、アンステージングされます。5から7までのすべてのファイルのステージを解除する場合は、次のように入力します-5-7

Update>> -5-7
           staged     unstaged path
  1:    unchanged        +0/-1 TODO
* 2:    unchanged        +1/-1 index.html
* 3:    unchanged        +5/-1 lib/simplegit.rb
  4:    unchanged        +5/-1 file4.html
  5:    unchanged        +5/-1 file5.html
  6:    unchanged        +5/-1 file6.html
  7:    unchanged        +5/-1 file7.html
Update>>

2
個人的に私はこの方法が好きです。コミットするファイルやその他の操作が多い場合は、簡単に使用できます。
Kapila Ranasinghe

終了したら、インタラクティブステージングをどのように終了しますか?
Crparedes

1
@Crparedesファイルを追加したら、もう一度Enterキーを押すとメニューに戻り7、インタラクティブステージングを終了するオプションを選択する必要があります。
Fabio Antunes

28

このように複数のファイルを選択することもできます

git add folder/subfolder/*

これにより、指定したサブフォルダー内のすべてのファイルが追加されます。多数のファイルを編集したが、それらのいくつかをコミットしたい場合に非常に便利です...


14

特定のフォルダに複数のファイルを追加する場合は、を使用してそれらを分割できます{,}。これは長いパスを繰り返さないのに最適です。

git add long/path/{file1,file2,...,filen}

の間にスペースを入れないように注意してください,


ここで長い/パス/は何ですか?@EliuX
lalithkumar

そのより快適にせずに、そのような部分を繰り返さないように、ロング/パスは、非常に長い長さのパス文字列可能性がありcd、それに
EliuX

4

ファイルを変更したり、リポジトリに新しいファイルを追加したりする場合は、まずそれらをステージングする必要があります。

git add <file>

または、すべてをステージングしたい場合

git add .

これを行うことで、次のコミットで必要なファイルをgitに指示することになります。次に行います:

git commit -m 'your message here'

あなたが使う

git push origin master

ここで、originはリモートリポジトリブランチで、masterはローカルリポジトリブランチです。


ありがとうございました!。最後のコマンドでgit push origin master。私は実際には別のブランチ名(masterブランチから作成されたもの)に取り組んでいます。私は私のブランチ名またはオリジンマスターをエンターする必要がありますか?ありがとうございました
kishore。

問題ありません。:)はい、ブランチ名を使用する必要があります。オリジンマスターは単なる例です。
somi 2013年

1

gitがエディターを起動しているようです(おそらくvi)ので、コミットメッセージを入力できます。慣れていない方viでも簡単に基礎を学べます。代替案は次のとおりです。

  • git commit -a -m "my first commit message"コマンドラインでコミットメッセージを指定するために使用します(これを使用してもエディターは起動しません)

  • EDITOR環境変数を使い慣れたエディターに設定します


返信してくださった皆さん、ありがとうございました。ファイルのコミットとプッシュに成功しました。
キショア。

1

すべてのファイルをGithubにステージングしてコミットする場合は、以下を実行します。

git add -A                                                                                
git commit -m "commit message"
git push origin master

0

👉step1

git init

👉ステップ2。

a)すべてのファイル

git add -a

b)特定のフォルダのみ

git add <folder1> <folder2> <etc.>

👉ステップ3。

git commit -m "Your message about the commit"

👉ステップ4。

ここに画像の説明を入力してください

git remote add origin https://github.com/yourUsername/yourRepository.git

👉step5

git push -u origin master
git push origin master

このエラーに直面している場合

 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://github.com/harishkumawat2610/Qt5-with-C-plus-plus.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

thisこのコマンドを使用する

git push --force origin master
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.