在Git中,每当我需要暂存文件时,我都可以使用
git add .
添加自上次提交以来已修改的所有文件。但是,当我删除一个文件时,我必须通过执行
逐个删除它git rm 'filename'
git rm .
只删除git跟踪的所有内容。
我想知道是否有类似于git add .
的命令,但git rm
。
谢谢:)
编辑:
我想我没有正确解释自己。假设我的git目录中有一些文件被git跟踪,我们称之为file1
,file2
,file3
。如果我要删除(rm命令)file1
和file3
,那么git status
将告诉我那些已删除的文件并执行git rm "filename"
以更新将提交的内容。所以问题是,有没有办法用一个命令添加这两个文件的删除操作?
如果我在哪里修改/添加不同的文件,那么我可以简单地运行git add .
,并且所有修改/添加都将被添加到临时区域以便提交。
答案 0 :(得分:2)
使用git add -u
/ git add --update
或git add -A
/ git add --all
。前者将暂存已修改和已删除的文件,而后者也会分段新的(未跟踪的)文件。
答案 1 :(得分:1)
您可能想要查看回复here
命令基本上是这样的:git rm $(git ls-files --deleted)
答案 2 :(得分:0)
对于任何有兴趣的人,我找到了一个更清洁的解决方案。
执行$ cd /usr/lib/python3.4/
$ grep "class HTTPError" urllib/error.py
class HTTPError(URLError, urllib.response.addinfourl):
$ grep "class URLError" urllib/error.py
class URLError(OSError):
$ grep "class add" urllib/response.py
class addbase(tempfile._TemporaryFileWrapper):
class addclosehook(addbase):
class addinfo(addbase):
class addinfourl(addinfo):
$ grep "class _TemporaryFileWrapper" tempfile.py
class _TemporaryFileWrapper:
$ grep -E "status|getheader" urllib/error.py urllib/response.py tempfile.py
urllib/error.py:responses, with a status code, headers, and a body. In some contexts,
$ python3 -c "import urllib.error; print(dir(urllib.error.HTTPError))" | grep -E "status|getheader"
$ python3 -c "import urllib.error; print(dir(OSError))" | grep -E "status|getheader"
$
时的默认值为:
git add .
此默认行为正是此问题的根源(如何仅使用一条指令将删除和更改添加到暂存区域)。使用以下命令可以轻松完成此操作:
git add --ignore-removal <paths>
不会忽略删除。
希望它可以帮助我,因为它帮助了我:)。