是否有针对 git 的忽略命令,就像针对 svn 一样?

我是一个新的用户 git和我正在开始一个新的项目。我有一堆要忽略的点文件。对于 git有没有像对于 svn那样的忽略命令?

132755 次浏览

创建名为。存储库根目录上的 gitignore。在这个文件中,您将希望忽略的每个文件的相对路径放在一行中。您可以使用 *通配符。

忽略文件有两种方式:

  • 任何文件夹中的 .gitignore都会忽略该文件夹中指定的文件。可以使用通配符。
  • .git/info/exclude保存全局忽略模式,类似于子版本配置文件中的 global-ignores

没有特殊的 git ignore命令。

编辑位于工作副本中适当位置的 .gitignore文件。然后,您应该添加这个 .gitignore并提交它。每个克隆回收文件的人都会被忽略。

请注意,只有以 /开头的文件名才与 .gitignore所在的目录相关。其他所有内容都将匹配任何子目录中的文件。

您还可以编辑 .git/info/exclude来忽略仅在一个工作副本中的特定文件。.git/info/exclude文件将不会被提交,因此只能在这个工作副本中本地应用。

您还可以设置一个全局文件,使用 git config --global core.excludesfile忽略这些模式。这将在本地应用于同一用户帐户上的所有 git 工作副本。

运行 git help gitignore并阅读文本了解详细信息。

为您的项目定义一个完整的 。吉蒂诺尔文件是很有用的。奖励是安全地使用方便的 --all-a标志来执行像 addcommit这样的命令。

另外,考虑为常被忽略的模式定义一个全局 吉蒂诺尔文件,例如 *~,它涵盖了 Emacs 创建的临时文件。

在 Linux/Unix 上,可以将文件追加到。使用 echo命令的 gitignore 文件。例如,如果要忽略所有 .svn文件夹,请从项目的根目录运行此命令:

echo .svn/ >> .gitignore

一个非常有用的 别理他命令附带了令人敬畏的 TJ/git-群众演员

下面是一些用法示例:

列出所有当前忽略的模式

git ignore

添加一个模式

git ignore "*.log"

放开我中添加一个模板

git ignore-io -a rails

Git-texas 提供了许多更有用的命令,绝对值得一试。

你也可以用 Joe Blau’s gitignore.io

无论是通过网络接口 https://www.gitignore.io/

或者通过安装 CLI 工具,它非常简单快捷,只需在终端上键入以下内容:

Linux:
echo "function gi() { curl -L -s https://www.gitignore.io/api/\$@ ;}" >> ~/.bashrc && source ~/.bashrc

OSX:
echo "function gi() { curl -L -s https://www.gitignore.io/api/\$@ ;}" >> ~/.bash_profile && source ~/.bash_profile

然后您可以输入 gi,后面是所有需要 gitignore 条件的平台/环境元素。

例子!
假设你正在从事一个包含 grunt 的节点项目,并且正在 linux 上使用 webstorm,那么你可能需要输入:
gi linux,webstorm,node,grunt > .gitignore(制作一个全新的文件)
或者
gi linux,webstorm,node,grunt >> .gitignore(向现有文件追加/添加新规则)

砰,你可以走了

使用已经提供的答案,您可以使用 化名执行自己的 git ignore命令。要么把这个加到你的 ~/中。Gitconfig 文件:

ignore = !sh -c 'echo $1 >> .gitignore' -

或者从您选择的(* nix) shell 运行这个命令:

git config --global alias.ignore '!sh -c "echo $1 >> .gitignore" -'

在上面的代码中,您也可以通过用 exclude代替 ignore来创建 git exclude命令,用 .git/info/exclude代替 .gitignore来创建 git exclude命令。

(如果您在阅读了这里的答案之后,还没有理解这两个文件之间的区别,请参阅 这个问题。)

你必须为此安装 git 附加程序。你可以使用 apt-get 在 Ubuntu 中安装它,

$ sudo apt-get install git-extras

然后您可以使用 git 忽略命令。

$ git ignore file_name

对于工作副本或回购协议中没有出现的名称:

echo /globpattern >> .gitignore

或者对于现有文件(sh 类型命令行) :

echo /$(ls -1 file) >> .gitignore   # I use tab completion to select the file to be ignored
git rm -r --cached file             # if already checked in, deletes it on next commit