2012-08-06 102 views
56

我正在使用Gedit,每次保存文件時,Gedit都會創建它的一個副本,並且副本的名稱總是以〜結尾。問題是,Git總是試圖追蹤這些文件,而我不想那麼做!有沒有辦法仍然能夠使用git add .,但只添加那些不以〜結尾的文件?如何讓git跟蹤所有以「〜」結尾的文件?

+2

不,不需要Arthur Denting。據我所知,這是有效的gitignore .gitignore;我通常這樣做。 – ruffin 2012-08-06 14:20:44

+2

Re:編輯。忽略.gitignore並不是一個好主意。我很確定這些設置可用於克隆回購庫的任何地方。我們把我們的忽略放在版本控制中,並且非常高興,因爲只有一個開發者需要設置它。 – 2012-08-06 14:40:19

+0

謝謝@MarcinK,我沒有想到這一點。 – corazza 2012-08-06 14:58:09

回答

36

你想要一個gitignore file

如果你想覈對以波浪號結尾的所有內容(這應該是安全的;我無法想象一個合理的使用情況,那裏不好),請確保以下行在你的.gitignore文件中你的回購的文件夾層次結構:

*~ 

如果想擺脫那些波浪號文件的本地文件系統奠定左右,你可以。最好讓Gedit將其備份文件放在別的地方。 JEdi​​t和VIm,我使用最多的兩位編輯,have such settings,而且將它們放在別的地方比加載gitignore要乾淨得多。

不幸的是,Gedit沒有這個選項。最好的辦法是關閉~備份。 在您擔心之前,最糟糕的情況是您丟失了immediately before you saved文件中的內容。這不是最壞的情況 - 這就是爲什麼你在git repo中得到這個,對吧?

注意:如果要在本地保留~後綴文件,請執行。上面設置的.gitignore會使你不小心分享它們。

You can turn off ~ suffixed backups like this

爲了防止Gedit的在將來創建這些備份,打開Gedit的,打開Preferences對話框(編輯>首選項),選擇編輯器選項卡,去掉勾選的「創建保存前文件的備份副本「選項,然後單擊關閉。做完這些之後,Gedit將不再使用替代品來替代。

+5

爲什麼要關閉備份?過去他們救了我無數次。 – suvayu 2012-08-06 14:00:43

+0

好吧,顯然要去掉痣,但我同意你的看法(見上文)。我想找到一種將所有備份文件移動到特定目錄的方法,例如在VIm中(例如,我在Windows的vimrc中使用'set backupdir = C:\\ vimBackups'),但似乎沒有爲Gedit而存在。但看到上面。 *固定*。 – ruffin 2012-08-06 14:07:29

+0

匿名downvoter - 謹慎解釋?現在有更好的方式讓Gedit保存不會在文件系統中留下文件的備份文件嗎? – ruffin 2013-12-23 15:04:22

93

gitignore是要走的路。只需在您回購的根部添加*~.gitignore即可。

+2

這是一個更好的解決方案,因爲它很難將每個程序配置爲不創建'〜'文件(例如emacs)。 – 2016-03-02 17:37:17

+0

@TahirHassan但更好的解決方案...比什麼?我建議的第一件事是創建一個.gitignore文件。如果你還*想清理你的本地回購,所以它沒有'〜'文件,我*還*解釋如何做到這一點。 ; ^)你真的不是在沒有網球的情況下這樣做。你只用一個波形文件保存一個編輯,當你已經使用git時,這不是很實際的幫助。也就是說,@filmor的確打我說OP應該使用.gitignore幾秒鐘...... – ruffin 2016-09-06 00:00:18

1

何苦添加.gitignore文件時,您可以編輯明文文件.git/info/excludehttps://www.kernel.org/pub/software/scm/git/docs/gitignore.html

「在決定是否忽略路徑,通常Git從多個源檢查gitignore模式」如果在.git/info/exclude文件在你的git倉庫添加*~一條線。 Git會忽略該模式和所有以tildes結尾的文件。

+0

爲什麼這是低調? – 2015-06-16 05:06:16

+1

我不是一個投票者,但它是一個不好的答案,「.git」文件夾不與所有存儲庫用戶共享,.gitignore文件(默認情況下,它可能會在特定項目中更改。 )。 通常*〜文件是臨時備份文件,您不希望任何人錯誤地添加它們,因此應該爲所有存儲庫用戶設置它們。 – user2326568 2016-01-27 09:12:56

5

要添加到什麼@filmor說,你可以創建一個全局gitignore文件,以便所有存儲庫將忽略備份文件:

git config --global core.excludesfile ~/.gitignore_global 

這將讓Git在$ HOME路徑尋找一個.gitignore_global文件,您可以在其中放置*~規則。