2015-12-16 79 views
0

我正在使用的存儲庫中沒有.gitignore,在我的主目錄中也沒有。Git忽略沒有`.gitignore`的文件夾甚至存在

我沒有使用git進行編程,在這裏。相反,我想弄清楚將其用於別的東西是否是個好主意。不幸的是,我遇到了一個我只發現的問題,因爲我檢出了一個空分支,但在我的回購庫中發現了文件/文件夾($repo/.git除外)。

現在,git遇到的問題在一個非常可怕的命名目錄中。它的格式爲HTML表示法中的$repo/Google%20Photos/Hangout_%20Tauberfranken%20%ED%A0%BD%ED%B0%B8和十六進制中的47 6F 6F 67 6C 65 20 50 68 6F 74 6F 73 2F 48 61 6E 67 6F 75 74 5F 20 54 61 75 62 65 72 66 72 61 6E 6B 65 6E 20 ED A0 BD ED B0 B8(此處省略了$repo/),並且在任何文本編碼中可能都無效。請注意,其中沒有2F也沒有00,文件名的長度遠大於255且大於0,所以我確實在ext4的規範內運行。

但是,這不應該是一個問題的git,當然不是ext4的問題。我正在使用SmartGit,甚至沒有收到錯誤消息。那裏的文件完全被忽略。

爲什麼會發生這種情況,應避免使用哪些字符,以免再發生這種情況? (是的,我知道他們可能至少應該是有效的UTF-8,但可能有更多的限制。)

+0

它可以與命令行客戶端一起工作嗎? – Ryan

+0

當我重新閱讀你的問題時,看起來你有可怕的命名目錄中的文件。你可以'cd'進入該目錄,並顯示'ls -l'的部分輸出嗎?當你在那個目錄中時,你可以請'git status'並添加命令行的輸出嗎? – zedfoxus

+0

@ RyanO'Hara謝謝!如果我在命令行上使用git,我可以暫存並提交這個文件夾中的文件。但之後我推出SmartGit,事情變得更加怪異。現在SmartGit向我表明,這些文件(其過去根本不知道的)據稱不見了。他們肯定是在文件系統和git給了我一個很好的「沒有提交,工作目錄乾淨」。 –

回答

0

該目錄中可能沒有文件 - 請您仔細檢查? Git跟蹤內容而不是目錄。如果沒有要跟蹤的文件,那麼git狀態將不會發生變化。

cd ~ 
mkdir repo 
cd repo 
mkdir -p Google%20Photos/Hangout_%20Tauberfranken%20%ED%A0%BD%ED%B0%B8 

git init 
Initialized empty Git repository in 

git status 
On branch master 
Initial commit 
nothing to commit (create/copy files and use "git add" to track) 

注意,即使我們有HTML編碼創建一個目錄,git就會沿其快樂的方式忽略了曾經存在過的目錄去。它正在尋找可追蹤的內容(例如文件中的文本,文件中的二進制數據等)。由於沒有要跟蹤的文件/內容,因此git選擇忽略目錄的存在。

cd Google%20Photos/Hangout_%20Tauberfranken%20%ED%A0%BD%ED%B0%B8/ 
vim test.txt 
(wrote something in test.txt and saved it) 

cd ~/repo 

git status 
On branch master 
Initial commit 
Untracked files: 
    (use "git add <file>..." to include in what will be committed) 
     Google%20Photos/ 
nothing added to commit but untracked files present (use "git add" to track) 

現在我們添加了內容,git正在識別它並提示我們未跟蹤文件。