Git 不能提交空目錄?我也是醉了!
背景
最近在提交檔案時,因為是空的 Maven 專案結構,發現 Git 空目錄死活不能提交,還以為是我自己在 .gitignore 檔案中忽略了,在網上查了下,原來還真有這回事,
如,用 git status 查看狀態:
$ git status
On branch master
No commits yet
nothing to commit (create/copy files and use "git add" to track)
空目錄無法被 git 感應,
解決方案
最主流的做法是,在空目錄下創建 .gitkeep 或者 .keep 空檔案,或者 .gitignore 檔案,這只是一個約定俗成的空目錄識別檔案名,其實除了占位識別空目錄,其他并沒什么卵用,
我們再在空目錄中創建一個空檔案:
touch .gitkeep
然后再用 git status 查看狀態:
$ git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
src/
nothing added to commit but untracked files present (use "git add" to track)
現在可以感應到 src 目錄了,
另外需要注意,在專案的 .gitignore 中不要忽略此檔案,如果有需要,關注公眾號Java技術堆疊可以獲取一份推薦的 .gitignore 通用檔案,
WHY
這種解決方案感覺有點扯淡,為什么提交不了空目錄,一定要放個檔案才行,放個不相干的檔案感覺又有點扯淡,
于是抱著懷疑的態度再次查下資料,在下面這個鏈接我找到解釋:
https://git.wiki.kernel.org/index.php/GitFaq#Can_I_add_empty_directories.3F

大概就是,Git 最初的設計是用來索引檔案的,所以 Git 只關注檔案,不關心檔案,不關心目錄,
這是不是 Git 的設計問題呢?
最后,你是否有遇到這種蛋疼的問題?你還有其他解決方案嗎?歡迎留言分享~
后面我還會分享一些我平時用到的修改歷史記錄的實戰干貨,比如怎么修改歷史提交資訊、合并多次提交等,關注公眾號Java技術堆疊第一時間推送,
老鐵們,覺得有用,點個在看、轉發支持下哦!
近期熱文推薦:
1.免費獲取 IntelliJ IDEA 激活碼的 6 種方式!
2.我用 Java 8 寫了一段邏輯,同事直呼看不懂,你試試看,,
3.吊打 Tomcat ,Undertow 性能很炸!!
4.國人開源了一款超好用的 Redis 客戶端,真香!!
5.《Java開發手冊(嵩山版)》最新發布,速速下載!
覺得不錯,別忘了隨手點贊+轉發哦!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/35160.html
標籤:Java
上一篇:一起來讀官方檔案-----SpringIOC(04)
下一篇:深入理解Java之裝箱與拆箱
