私は "git status"を実行しました、そして以下にリストされたいくつかのファイルは変更された、あるいは "変更がコミットのためにステージされていない"という見出しの下にあります。それはまた私が無視したいと思ういくつかの追跡されていないファイルをリストした(私はこれらのディレクトリに ".gitignore"ファイルがある)。
コミットできるように、変更したファイルをステージングに入れます。 "git add。"を実行すると、変更されたファイルと無視したいファイルがステージングに追加されました。
以下のgitステータスで表示された場合、変更したファイルのみを追加し、追跡されていないファイルを無視するにはどうすればよいですか。
また、私の "。gitignore"ファイルは正しく動作していますか?
$ git status
# On branch addLocation
# 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: someProject/path/domain/viewer/LocationDO.Java
# modified: someProject/path/service/ld/LdService.Java
# modified: someProject/path/service/ld/LdServiceImpl.Java
# modified: someProject/path/web/jsf/viewer/LocationFormAction.Java
# modified: someProject/war/WEB-INF/classes/message/viewer/viewer.properties
# modified: someProject/war/page/viewer/searchForm.xhtml
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .metadata/
# someProject/build/
no changes added to commit (use "git add" and/or "git commit -a")
理想的には、あなたの.gitignore
は、追跡されていない(そして無視された)ファイルがgit add
などを使って追加された状態で表示されるのを防ぐべきです。だから私はあなたの.gitignore
を修正するように頼みます
変更されたファイルと削除されたファイルをステージングするようにgit add -u
を実行できます。
変更したファイルと削除したファイルだけをコミットするためにgit commit -a
を実行することもできます。
Gitのバージョンが2.0より前でgit add .
を使っていたら、git add -u .
を使う必要があることに注意してください( " “ git add -A
”と“ git add .
”の違い を参照)。
これは私のために働いた:
#!/bin/bash
git add `git status | grep modified | sed 's/\(.*modified:\s*\)//'`
あるいはもっと良い:
$ git ls-files --modified | xargs git add
現在の自分の.gitignore
を言っているわけではありませんが、ルートディレクトリに次の内容を持つ.gitignore
がうまくいくはずです。
.metadata
build
git commit -a -m "message"
-a:このコミットに現在変更/削除されているすべてのファイルを含めます。ただし、追跡されていない(新しい)ファイルは含まれていません。
- m:コミットのメッセージを設定します
これが機能なのかバグなのかわからないが、これは私たちにとってはうまくいった:
git commit '' -m "Message"
空のファイルリスト「」に注意してください。 Gitは、ステージングされていなくても、変更されたすべての追跡ファイルをコミットし、追跡されていないファイルを無視するようにこれを解釈します。
たまたまこれを試してみたので、最初にファイルのリストを見ることができた。
git status | grep "modified:" | awk '{print "git add " $2}' > file.sh
cat ./file.sh
実行:
chmod a+x file.sh
./file.sh
編集: (コメント参照)これは1つのステップで達成できます。
git status | grep modified | awk '{print $2}' | xargs git add && git status