簡體   English   中英

我如何使用Git GUI簽署文件?

[英]How do I .ignore files with Git GUI?

我在.git文件夾的文件夾中創建了一個.gitignore文件,但在重新掃描存儲庫時,我仍然會收到我試圖忽略的文件。

這是文件的內容。

# Ignored files
*.suo 
*.user 
bin 
obj 
*.pdb 
*.cache 
*_svn 
*.svn 
*.suo 
*.user 
*.build-res 
TestResults 
_ReSharper*

我究竟做錯了什么? 假設位於何處?

您需要確保您仍然看到的文件當前未提交或暫存。

如果你刪除它們( git rmgit rm --cached ),然后將它們添加為私有文件,那么它們將被忽略。

你的檔案看起來不錯。 只要確保你在每行的開頭都沒有任何空格,我花了4個小時才找到為什么我的.gitignore工作不正常; 原因當然是cut'n'paste問題,我在文件的開頭有一個垂直的空格行。

在確保你的.gitignore文件真正清除你不想要的一切之前,你應該小心使用git commit -a 使用git add *.cpp *.h標記每個文件(或使用通配符)或者 - 比如我更喜歡 - 在進度時開發你的.gitignore,並在提交前始終檢查git status

如果你想仔細檢查你的.gitignore是否真的有用, 試試吧

git ls-files --others -i --exclude-standard

這應該列出您當前忽略的所有文件。

要清理你已經添加的文件(可能是使用git add . ,我們在開頭犯了一個錯誤=])你可以像@VonC那樣說:要么運行

git rm <filename>

要么

git rm --cached <filename>

清除所有無意添加的文件的另一個選擇是徹底清理存儲庫,然后重新添加所有文件。 如果要清除暫存區域中的所有內容, 可以運行

git --rm cached .

但請記住不要運行git add . 直到你確定git status只列出你真正想要的文件庫。

git的另一個非常有用的功能是它在使用通配符時不需要文件路徑。 如果列出被忽略的文件並看到要刪除所有*.suo*.log文件,只需運行即可

git rm --cached *.suo *.log

並且git負責查找存儲庫中與該簽名匹配的所有文件,無論它們位於樹中的哪個位置。

我嘗試了多種方法讓它工作,最后很簡單:

你必須先提交.gitignore!

此外,如果您使用TortoiseGIT - GitEx提交工具,則可以選擇編輯被忽略的文件。

你找對了。 .gitignore應該位於同一個文件夾中,其中.git文件夾位於。 里面的文件也看起來正確。 但是,我頂部沒有評論專線..

當我看到這個時,我會認為你忘了提交你的忽略文件。

沒有--rm緩存解決方案適合我。 該文件需要編碼為ASCII / ANSI。 我也改變了行結尾,但僅此一點並沒有修復它。 我找不到有這些說明的網址(對不起,原創海報!)但這對我有用:

  1. 如果您還沒有安裝Notepad ++,請安裝它。 Textpad也應該可以工作,但我使用的是Notepad ++。
  2. 用Notepad ++打開你的.gitignore。
  3. 點擊View | 顯示符號| 顯示所有字符。 您可能會在每行末尾看到CR LF。
  4. 進行搜索並替換(ctrl + h),確保選中Extended(更低的角落)。 搜索\\ r \\ n並替換為\\ n。 你會看到所有CR LF改為LF。
  5. 現在點擊編碼| 用ANSI編碼。
  6. 保存文件並退出。

從windows或git命令提示符中的命令提示符,無論你喜歡什么,當你執行git status時,它不應該在.gitignore中顯示文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM