如何在 git 中使用 gitignore 命令

我第一次在 Git 上工作。我把我的分支推到了 github 上,它把所有的图书馆和文档都推到了 github 上。现在我可以做什么,以及如何使用 gitignore 命令来避免同样的错误再次发生。

361613 次浏览

在您的 git 根目录中有一个名为 .gitignore的文件。这是个文件,不是命令。您只需要插入要忽略的文件的名称,它们就会自动被忽略。例如,如果希望忽略以 ~结尾的所有 emacs 自动保存文件,那么可以添加以下代码行:

*~

如果要从分支中删除不需要的文件,可以使用 git add -A,即“ 删除不再在工作树中的文件”。

注意: 我所说的“ git 根目录”仅仅是您第一次使用 git init的目录。它也是您可以找到 .git目录的地方。

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

  1. 将其从项目目录中删除(不实际删除) : git rm --cached doc/*
  2. 如果您还没有 .gitignore,您可以在您的项目文件夹中创建一个: project/.gitignore
  3. doc/*放在. gitignore 中
  4. 准备要提交的文件: git add project/.gitignore
  5. 提交: git commit -m "message"
  6. 把你的零钱推到 github

Git 忽略是 git 中的一个约定 将忽略该目录中的文件以及与 最常见的用法是只有一个文件 但是你可以在你的目录中添加更深层次的东西 结构来忽略更多的模式,或者停止为该目录忽略它们 然后是更深层次的。

同样,您可以“取消忽略”更深层结构或特定 子集(即,忽略 * . log 但仍然希望跟踪 impant.log) 指定以 !开头的模式,例如:

*.log !important.log

将忽略所有日志文件,但将跟踪名为 important ant.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 -Agit rebase --continue,直到你 完成。你的历史将是干净的。确保你告诉你的同事作为你 将不得不强行推动,他们将不得不重新基地,他们还没有推动。

在我的 Mac 上我找到了这个文件 .gitignore_global。.它在我的主目录隐藏,所以做一个 ls -altr看到它。

我添加了我希望 git 忽略的 Eclipse 文件:

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

如果你没有一个. gitignore 文件,首先使用:

touch .gitignore

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

echo 'application/cache' >> .gitignore

小心新台词

如果没有. gitignore 文件,可以通过以下方法创建一个新文件

touch .gitignore

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

/folderName

将这个文件推送到您的 git 存储库,这样当一个新人克隆您的项目时,他就不必再添加相同的内容了

有几种使用 gitignore git 的方法

  • 例如,通过特定的文件名指定,以忽略文件
    名为 readme.txt,只需在. gitignore 文件中写入 readme.txt 即可。
  • 也可以写入文件扩展名的名称
    忽略所有. txt 文件,写 * . txt。
  • 您也可以忽略整个文件夹
    然后在文件中写入 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 文档 gitignore上找到更多