【问题标题】:How to use gitignore command in git如何在 git 中使用 gitignore 命令
【发布时间】: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

标签: git github


【解决方案1】:

因此,根据您所说,这些文件是您不想删除但也不想推送到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

【讨论】:

  • 你能告诉我如何编写 .gitignore 文件吗?即,如何在 .gitignore 文件中写入我想忽略的文件夹和文件的路径。谢谢
  • 感谢您的回答。在提交之前,我必须运行 git add -A
  • 嗨,gitignore 只是一个纯文本文件。它实际上是 .gitignore (DOTgitignore)。只需输入您希望 git 忽略的文件/文件类型的名称,每行一个。示例:sujee.net/tech/articles/gitignore
【解决方案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
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-29
        • 1970-01-01
        • 2022-07-09
        相关资源
        最近更新 更多