2012-09-19 50 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 

小心換新線