如何在 git 中使用 gitignore 命令

Posted

技术标签:

【中文标题】如何在 git 中使用 gitignore 命令【英文标题】:How to use gitignore command in git 【发布时间】:2012-09-19 19:11:24 【问题描述】:

我第一次在 git 上工作。我已经在 github 上推送了我的分支,它把所有的库和文档都推送到了 github。现在我能做什么以及如何使用 gitignore 命令来避免再次出现同样的错误。

【问题讨论】:

.gitignore 是您的 git 根目录中的一个文件。为您要忽略的文件添加名称模式,这些文件将被自动忽略。 我在 ubuntu 上。你能说一下git根目录的路径吗 这是你使用git init的目录。 .git 目录位于那里。 对于那些不知道如何使用 gitignore - 去gitignore.io 你可以输入你正在使用的所有工具(symfony、Cakephp、ZendFramework、wordpress、grunt、sublime text、netbeans、依此类推,你得到了演习......)它会为你生成 git ignore 文件。如果您不知道如何使用 gitignore,我认为学习它的最佳方法是查看一些好的用例示例(例如由 gitignore.io 生成的示例。如果您想从 cmd 行使用它(极客方式) 请参阅本教程:vimeo.com/70609819 【参考方案1】:

因此,根据您所说,这些文件是您不想删除但也不想推送到github 的库/文档。假设您的项目位于文件夹 your_project 和一个 doc 目录中:your_project/doc

    从项目目录中删除它(不实际删除它): git rm --cached doc/* 如果您还没有.gitignore,您可以在项目文件夹中创建一个:project/.gitignore。 将doc/* 放入.gitignore 暂存文件以提交:git add project/.gitignore 提交:git commit -m "message"。 将您的更改推送至github

【讨论】:

你能告诉我如何编写 .gitignore 文件吗?即,如何在 .gitignore 文件中写入我想忽略的文件夹和文件的路径。谢谢 感谢您的回答。在提交之前,我必须运行 git add -A 嗨,gitignore 只是一个纯文本文件。它实际上是 .gitignore (DOTgitignore)。只需输入您希望 git 忽略的文件/文件类型的名称,每行一个。示例:sujee.net/tech/articles/gitignore ^web.archive.org/web/20120914233504/http://sujee.net/tech/…【参考方案2】:

如果你没有 .gitignore 文件,请先使用:

touch .gitignore

然后这个命令在你的 gitignore 文件中添加行:

echo 'application/cache' >> .gitignore

注意换行

【讨论】:

不需要先touch文件。如果文件不存在,>>> 同义。 echo 在输出末尾附加一个换行符。你可以用-n 阻止它。如果你需要各种忽略,要么做各种回声,要么使用-e,如下:echo -e "**/cache/\n**.pyc" >> .gitignore。双星号也匹配递归挖掘到文件夹中的所有文件。在文件夹末尾使用/,以防万一。 @Andrew tl;dr:使用echo "file_to_be_ignored" >> .gitignore 添加每个忽略的文件,无需执行任何其他操作。以/ 结尾的文件夹名称为echo "**/modules/" >> .gitignore 为什么我的评论被删除了【参考方案3】:

git ignore 是 git 中的一个约定。设置一个名为.gitignore的文件 将忽略该目录中的文件以及与 文件包含的模式。最常见的用途是只有一个文件 像这样在顶层。但是你可以在你的目录中更深地添加其他人 结构以忽略更多模式或停止为该目录忽略它们 然后是更深的。

同样,您可以“取消忽略”结构更深的某些文件或特定的 子集(即,您忽略 *.log 但仍想跟踪 important.log) 指定以! 开头的模式。例如:

*.log !important.log

将忽略所有日志文件,但会跟踪名为 important.log 的文件

如果您要跟踪要忽略的文件,请将其删除,然后将模式添加到 你 .gitignore 文件并添加所有更改

# delete files that should be ignored, or untrack them with 
# git rm --cached <file list or pattern>

# stage all the changes git commit
git add -A 

从现在开始,您的存储库将不再跟踪它们。

如果你想清理你的历史记录,你可以

# if you want to correct the last 10 commits
git rebase -i --preserve-merges HEAD~10 

然后用eedit 标记每个提交。保存计划。现在 git 将重播 您的历史记录在您标记为 e 的每个提交处停止。在这里你删除 你不想要的文件,git add -A 然后git rebase --continue 直到你 完成。你的历史将是干净的。确保你像你一样告诉你的同事 将不得不强制推动,他们将不得不重新调整他们尚未推动的内容。

【讨论】:

【参考方案4】:

在你的 git 根目录中有一个名为 .gitignore 的文件。它是一个文件,而不是一个命令。您只需插入要忽略的文件的名称,它们将自动被忽略。例如,如果您想忽略所有以~ 结尾的 emacs 自动保存文件,则可以添加以下行:

*~

如果要从分支中删除不需要的文件,可以使用git add -A,即“removes files that are no longer in the working tree”。

注意:我所说的“git根目录”只是你第一次使用git init的目录。您还可以在这里找到.git 目录。

【讨论】:

我不想要的已经推送的文件会发生什么【参考方案5】:

如果您没有 .gitignore 文件。您可以通过

创建一个新的
touch .gitignore

您可以通过在 .gitignore 文件中输入以下命令来排除文件夹

/folderName

将此文件推送到您的 git 存储库中,这样当新人克隆您的项目时,他不必再次添加相同的文件

【讨论】:

【参考方案6】:

gitignore git有几种使用方式

由特定文件名指定。例如,忽略文件 名为readme.txt,只需将readme.txt写入.gitignore文件即可。 你也可以写文件扩展名。例如,到 忽略所有 .txt 文件,写入 *.txt。 您也可以忽略整个文件夹。例如你想忽略 名为 test 的文件夹。然后只需在文件中写入 test/ 即可。

只需创建一个 .gitignore 文件并写入您想忽略的任何内容 一个示例 gitignore 文件将是:

# NPM packages folder.
node_modules

# Build files
dist/

# lock files
yarn.lock
package-lock.json

# Logs
logs
*.log
npm-debug.log*

# node-waf configuration
.lock-wscript

# Optional npm cache directory
.npm

# Optional REPL history
.node_repl_history

# Jest Coverage
coverage

.history/

您可以在git documentation gitignore找到更多信息

【讨论】:

【参考方案7】:

在我的 Mac 上,我发现了这个文件 .gitignore_global ..它隐藏在我的主目录中,所以请使用 ls -altr 来查看它。

我添加了我希望 git 忽略的 eclipse 文件。内容如下:

 *~
.DS_Store
.project
.settings
.classpath
.metadata

【讨论】:

当我将 .gitignore 文件放在我的项目文件夹中时,它在本地搞乱了我的 eclipse 项目。你知道为什么会发生这种情况以及如何预防吗?现在我只是远离 .gitignore。 我不再使用 Eclipse。现在是 Inteilji

以上是关于如何在 git 中使用 gitignore 命令的主要内容,如果未能解决你的问题,请参考以下文章

git 使用详解—— 最基本命令 + .gitignore 文件

使用git push命令如何忽略不想提交的文件夹或者文件

Git中.gitignore文件的使用

如何在 Xcode 5 中使用 gitignore 文件

如何创建.gitignore文件,忽略不必要提交的文件

如何创建.gitignore文件,忽略不必要提交的文件