禁用Git中的目录,因此无法推送

时间:2013-10-01 23:04:20

标签: git

我大多数时候都使用git add *,因为我只想推送所有已更改的文件。但是当我有新文件时,也会推送一个我不想推送的文件夹。是否可以禁用它?

3 个答案:

答案 0 :(得分:2)

  

但是当我有新文件时,也会推送一个我不想推送的文件夹。

假设您不想仅推送较新的文件,但想要跟踪该目录中的旧文件,请将foldername添加到.gitignore

echo path/to/folder >> .gitignore

如果要删除该文件夹中要停止跟踪的所有文件,请执行另外两个步骤

git rm -r --cached foldername
git commit -m "removed previously tracked files"

答案 1 :(得分:1)

将文件夹添加到.gitignore作为条目:yourfoldertoignore/

来自man gitignore

   o   If the pattern ends with a slash, it is removed for the purpose of
       the following description, but it would only find a match with a
       directory. In other words, foo/ will match a directory foo and
       paths underneath it, but will not match a regular file or a
       symbolic link foo (this is consistent with the way how pathspec
       works in general in Git).

如果您想偶尔推送文件夹一次,则必须使用--force开关在该目录下添加任何内容。


此外,我强烈建议您不要盲目推送内容(甚至不是git add file.ext),而是使用-p选项来审核您实际要推送的内容(git add -p )。

答案 2 :(得分:1)

请注意git add -u只存在修改过的文件,而git add -p会在分段之前(在修改后的文件中)要求您进行每次更改。

还有-i;检查full manual here

或者,你可以git add .,它不会添加被忽略的文件(通过.gitignore忽略)。