git ignore 怎么添加和删除_Git删除已追踪文件,上传大文件到Github
新手使用git的時候經常會出現(xiàn)把ide配置文件、編譯生成文件、模型文件等提交的倉庫中,導致頻繁的更新。并且已經提交過的文件即使在.gitignore文件中進行了配置git還是會進行追蹤。那么我們應該如何刪除已經追蹤的文件呢?
首先刪除目標文件
rm <your_target_file>刪除倉庫對該文件的追蹤緩存
git rm --cached <your_target_file>將該文件加入到.gitignore中
<your_target_file>最后一步將修改進行提交
git add . git commit -m "不再追蹤某某某文件"還有一個場景比較棘手,比如在我們開發(fā)深度學習項目的時候吧某個訓練好的模型提交到了倉庫中,模型通常很大有幾百M或幾個G,若我們想把項目上傳到Github時會發(fā)現(xiàn)Github對倉庫中的單個文件有大小限制(記得沒錯應該是100M)。這是用上述的辦法刪除文件,雖然可以使得模型文件不在追蹤,但是在之前的提交中還是存在該文件,我們上傳github仍然會失敗,這時我們怎么辦呢?
我們需要在所有的提交中,刪除對該文件的記錄與緩存
git filter-branch --force --index-filter "git rm --cached --ignore-unmatch <your_target_file>" --prune-empty --tag-name-filter cat -- --all具體原理可以參考https://help.github.com/en/github/authenticating-to-github/removing-sensitive-data-from-a-repository
這時我們再次push到Github,就能成功了,我們的倉庫中已經將該文件的記錄徹底刪除。
那么我們如果不想刪除這個大文件,還是想把它上傳到Github上面,有沒有什么辦法呢?答案是有。可以通過git插件git-lfs實現(xiàn)。(是一個解決方案,但是不建議這么做,對于模型等大文件建議還是單獨保存,在項目中放上下載鏈接,因為這些大文件通常不會經常變更,如果經常變更更不能放在項目中了,會使倉庫體積快速增長,拉取提交修改都非常耗時。)
首先我們安裝git-lfs
brew install git-lfs # macos sudo apt-get install git-lfs # linux追蹤大文件步驟如下
git lfs track <file_path> # 例如git lfs track "*.hdf5" 追蹤所有后綴為hdf5的文件 git lfs track # 查看現(xiàn)有的文件追蹤模式注意提交代碼需要將gitattributes文件提交至倉庫. 它保存了文件的追蹤記錄。提交后運行git lfs ls-files 可以顯示當前跟蹤的文件列表將代碼 push 到遠程倉庫后,LFS 跟蹤的文件會以『Git LFS』的形式顯示,clone 時 使用'git clone' 或 git lfs clone均可。
總結
以上是生活随笔為你收集整理的git ignore 怎么添加和删除_Git删除已追踪文件,上传大文件到Github的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 有人知道csdn在国外登不上的原因吗
- 下一篇: 1SGD、Momention原理