git只添加修改後的更改並忽略未跟蹤的文件

我運行了「git status」,下面列出了一些被修改的文件/或標題爲「未提交更改的更改」標題。 它還列出了一些我想忽略的未跟蹤文件(我在這些目錄中有一個「.gitignore」文件)。 html

我想將修改後的文件放在暫存中,以便我能夠提交它們。 當我運行「git add。」時,它將修改後的文件和我想忽略的文件添加到登臺。 java

若是使用下面的git狀態顯示,如何僅添加已修改的文件並忽略未跟蹤的文件。 git

另外,個人「.gitignore」文件是否正常工做? web

$ 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")

#1樓

這對我有用: bash

#!/bin/bash

git add `git status | grep modified | sed 's/\(.*modified:\s*\)//'`

甚至更好: dom

$ git ls-files --modified | xargs git add

#2樓

我碰巧嘗試了這個,因此我能夠先看到文件列表: ui

git status | grep "modified:" | awk '{print "git add  " $2}' > file.sh

cat ./file.sh

執行: spa

chmod a+x file.sh
./file.sh

編輯:(見評論)這能夠一步完成: code

git status | grep modified | awk '{print $2}' | xargs git add && git status

#3樓

不肯定這是一個功能仍是一個bug,但這對咱們有用: orm

git commit '' -m "Message"

請注意空文件列表''。 Git將此解釋爲提交全部已修改的跟蹤文件,即便它們未被暫存,也會忽略未跟蹤的文件。


#4樓

git commit -a -m "message"

-a:包括此提交中全部當前更改/刪除的文件。 但請記住,未包含未跟蹤(新)文件。

-m:設置提交的消息


#5樓

理想狀況下,你的.gitignore應該防止未跟蹤(和忽略)的文件顯示在狀態,使用git addgit add 。因此我會要求你糾正你的.gitignore

您能夠執行git add -u以便它能夠git add -u已修改和已刪除的文件。

您還能夠執行git commit -a以僅提交已修改和已刪除的文件。

請注意,若是您在2.0以前使用Git版本並使用git add . ,那麼你須要使用git add -u . (參見「 git add -A 」和「 git add . 」的區別「 」)。

相關文章
相關標籤/搜索