2012-09-19 90 views
73

我正在第一次使用git。我把我的分支推到github上,它将所有的库和文档都推送到github中。现在我可以做什么以及如何使用gitignore命令来避免同样的错误。如何在git中使用gitignore命令

+1

'.gitignore'是你的git根目录下的一个文件。为要忽略的文件添加名称模式,这些文件将被自动忽略。 – LonelyWebCrawler

+0

我在Ubuntu上。你可以说git根目录的路径 – user1559230

+2

它是你使用'git init'的目录。 '.git'目录位于那里。 – LonelyWebCrawler

回答

101

所以根据你所说的,这些文件是你不想删除的库/文档,也不想推到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
+0

可以请你告诉我怎么写的.gitignore文件已经被推文件即如何写的路径。我想忽略.gitignore文件中的文件夹和文件 谢谢 – user1559230

+0

感谢您的回答。在提交之前,我必须运行 git add -A – user1559230

+4

嗨,gitignore只是一个纯文本文件。 。的.gitignore(DOTgitignore)只要把你想git的忽略,每行一个文件/文件类型的名称,例如:http://www.sujee.net/tech/articles/gitignore/ – qusr

7

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

*~ 

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

注意:我称之为“git根目录”就是第一次使用git init的目录。这也是你可以找到.git目录的地方。

+0

会发生什么事,我不想 – user1559230

7

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直到你 完成。你的历史将是清洁的。确保你告诉你同事,因为你将不得不推动他们,他们将不得不改变他们尚未推动的东西。

0

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

我加了日食的文件,我想混帐忽略。内容是这样的:

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

“文件夹”当我把.gitignore文件以在我的项目文件夹在本地搞砸了我的Eclipse项目。你知道为什么会发生,以及如何防止它?现在我只是远离.gitignore。 – JesseBoyd

+0

我不再使用eclipse了。 Inteilji现在 – j2emanue

12

如果你没有.gitignore文件以,起初用途:

touch .gitignore 

那么这个命令添加行您gitignore文件:

echo 'application/cache' >> .gitignore 

小心换新线