我是新用户git
,我正在开始一个新项目。我有一堆我想忽略的点文件。是否有git
类似 for的忽略命令svn
?
10 回答
没有特别的git ignore
命令。
编辑.gitignore
位于工作副本中适当位置的文件。然后你应该添加它.gitignore
并提交它。克隆该存储库的每个人都将忽略这些文件。
请注意,只有以 开头的文件名将与所在/
目录相关.gitignore
。其他所有内容都将匹配任何子目录中的文件。
您还可以编辑.git/info/exclude
以忽略该工作副本中的特定文件。该.git/info/exclude
文件不会被提交,因此只会在这个工作副本中本地应用。
您还可以使用要忽略的模式设置全局文件git config --global core.excludesfile
。这将在本地应用于同一用户帐户上的所有 git 工作副本。
运行git help gitignore
并阅读文本以了解详细信息。
很棒的tj/git-extras附带了一个非常有用的git ignore命令。
以下是一些使用示例:
列出所有当前被忽略的模式
git ignore
添加图案
git ignore "*.log"
添加来自gitignore.io的模板之一
git ignore-io -a rails
git-extras提供了更多有用的命令。绝对值得一试。
在 Linux/Unix 上,您可以使用命令将文件附加到 .gitignore 文件echo
。例如,如果您想忽略所有.svn
文件夹,请从项目的根目录运行:
echo .svn/ >> .gitignore
您有两种忽略文件的方法:
.gitignore
in any folder 将忽略该文件夹文件中指定的文件。可以使用通配符。.git/info/exclude
保存全局忽略模式,类似于global-ignores
in subversions 配置文件。
在存储库的根目录上创建一个名为 .gitignore 的文件。在此文件中,您将要忽略的每个文件的相对路径放在一行中。您可以使用*
通配符。
为您的项目定义一个完整的.gitignore文件很有用。奖励是安全地使用方便的--all
or-a
标志来像add
and之类的命令commit
。
另外,考虑为通常被忽略的模式定义一个全局~/.gitignore文件,例如*~
,它涵盖了由 Emacs 创建的临时文件。
使用已经提供的答案,您可以git ignore
使用alias滚动您自己的命令。将其添加到您的 ~/.gitconfig 文件中:
ignore = !sh -c 'echo $1 >> .gitignore' -
或者从您选择的 (*nix) shell 运行此命令:
git config --global alias.ignore '!sh -c "echo $1 >> .gitignore" -'
git exclude
您也可以通过替换上面的ignore
withexclude
和.gitignore
with来创建命令.git/info/exclude
。
(如果您在阅读此处的答案后还不了解这两个文件之间的区别,请参阅此问题。)
你必须为此安装 git-extras。您可以使用 apt-get 在 Ubuntu 中安装它,
$ sudo apt-get install git-extras
然后你可以使用 git ignore 命令。
$ git ignore file_name
对于工作副本或 repo 中不存在的名称:
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
你也可以使用 Joe Blau 的 gitignore.io
通过网络接口https://www.gitignore.io/
或者通过安装 CLI 工具,它非常简单快捷,只需在终端上键入以下内容:
Linux:
echo "function gi() { curl -L -s https://www.gitignore.io/api/\$@ ;}" >> ~/.bashrc && source ~/.bashrc
操作系统:
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
(将新规则附加/添加到现有文件)
砰,你可以走了