很多次我会误用
git add .
命令将不需要的文件加入到暂存区中。我想知道是否有一种方法能够完全禁用该命令,这样我只会使用git add 文件名
命令?我猜这可能是从svn带来的习惯,它默认只添加已被跟踪的文件[...]
你需要放弃以前的想法 :)
你应该经常运行git status
。如果你想要忽略的文件作为未跟踪的文件列出,那么你应该编辑你的.gitignore
文件,使得这些文件实际上被忽略。因为git add
不会影响被忽略(和未跟踪的)文件,所以你就可以使用git add .
同时将所有感兴趣的文件(仅有这些)一次性添加到暂存区。
git add .
Git本身不允许这样做,但如果你真的想完全禁止使用git add .
(和git stage .
,它们是完全等效的),你可以在~/.<shell>rc
文件中编写一个小包装器:
git() {
if [ "$1" = "add" -o "$1" = "stage" ]; then
if [ "$2" = "." ]; then
printf "'git %s .' is currently disabled by your Git wrapper.\n" "$1";
else
command git "$@";
fi
else
command git "$@";
fi;
}
git add .
的重要点是,它查看工作树并将所有更改或新添加但未被忽略的路径添加到暂存更改中,而不会将任何“rm”操作暂存。git reset HEAD <file>
会完成工作。
您的修改将被保留,文件将再次显示在已修改但尚未暂存的git status
集合中。
有关详细信息,请参阅git reset
的手册页面。
你应该将所有不想纳入版本控制的文件和目录添加到 .gitignore 文件中。
如果你只是想排除所有内容,那么就不要执行 git add .
撤销 git add,取消暂存,删除 git rm --cached filename.txt,从索引中删除,取消提交,使用 git reset filename.txt。
会将名为 filename.txt 的文件从当前索引中删除,“即将被提交”的区域,而不改变其他任何内容。
要撤消 git add .,请使用 git reset(没有点)。
git reset
命令,这将取消暂存所有内容。 - berealgit add .<RETURN>
呢? - MicroVirus