如何在git中使用gitignore命令

时间:2012-09-19 19:11:25

标签: git github

我第一次使用git。我已将我的分支推送到github上,它将所有库和文档都推送到github中。现在我该怎么办?如何使用gitignore命令再次避免同样的错误。

7 个答案:

答案 0 :(得分:125)

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

答案 1 :(得分:26)

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

touch .gitignore

然后使用此命令在gitignore文件中添加行:

echo 'application/cache' >> .gitignore
  

小心新线

答案 2 :(得分:12)

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,直到您 完成。你的历史会很干净。确保你告诉你的同事 将不得不强行推动他们将不得不改变他们没有推动的东西。

答案 3 :(得分:9)

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

*~

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

注意:我称之为“git根目录”的只是您第一次使用git init的目录。您也可以在这里找到.git目录。

答案 4 :(得分:2)

有几种使用gitignore git的方法

  • 由特定文件名指定。例如忽略文件
    名为readme.txt,只需在.gitignore文件中写入readme.txt。
  • 您还可以输入文件扩展名。例如,
    忽略所有.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

中找到更多信息

答案 5 :(得分:1)

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

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

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

答案 6 :(得分:1)

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

创建一个新的
touch .gitignore

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

/folderName

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