我意外地將我的development.sqlite3文件提交給Git,它似乎在放慢我的提交。我知道.gitignore,但是一旦我這樣做了,它會將文件從我的存儲庫中取出嗎?我擔心的是減少提交和推送時間。意外承諾開發數據庫Git
回答
不。所有.gitignore文件都會告訴各種Git用戶界面工具在批量提交更改時忽略該文件。你仍然可以手動將你想要的任何單個文件放入Git的數據庫中,並且添加entires不會從Git修訂版數據庫中刪除任何內容。
你還沒有真正回答真正的問題,這是如何擺脫文件。 – Cascabel 2010-04-08 22:01:24
試試這個:
git filter-branch --tree-filter ´rm filename´ HEAD
'filter-branch'絕對是絕對的矯枉過正。有問題的文件僅在一次提交中添加,並且自此以後未被修改。 – Cascabel 2010-04-08 22:08:50
沒有必要與過濾分支花式 - 這僅僅是一個近期提交。如果沒有,只需刪除文件(git rm --cached <filename>
)並修改您的提交(git commit --amend
)。 --cached
選項告訴git只刪除索引中的副本(commit staging區域),並保持工作樹中的版本不變。
如果它在歷史的更遠處,可以使用交互式重新分區(git rebase -i <commit before the bad one> master
),選擇edit
壞的提交,並像以前一樣修改rm /。當然,一定要將它添加到你的gitignore中。
請注意,如果您已經推送了此提交,則必須使用push -f
才能獲得非快進推送,並且如果其他人已經推送了它們,它們將會被惹惱(請參閱「git-rebase」手冊頁中的「從上游rebase恢復」部分。
我很好奇爲什麼這個答案是downvoted - 任何人都在意告訴我如何可以改進? – Cascabel 2010-04-09 13:54:43
- 1. 承諾的意外行爲
- 2. 承諾git on
- 3. Git的 - 意外的回購inited回購,現在不能承諾
- 4. Git blame承諾行
- 5. Git拉舊承諾
- 6. 從承諾之外訪問數據
- 7. git的承諾不同的文件集的開發和掌握
- 8. 無法訪問承諾外的Firebase數據庫快照值
- 9. 插入不承諾數據庫
- 10. 承諾數據庫的表設計
- 11. AngularJS:具有承諾數據和非承諾數據的函數
- 12. 開關從FS-承諾,FS-額外
- 13. git的變基或合併一定的承諾是beween另外兩個承諾
- 14. git的承諾,以新科
- 15. Git承諾和推動
- 16. 的Git失去了承諾
- 17. 撤消git的承諾
- 18. git的承諾每次
- 19. Git只爲我承諾
- 20. git的差異承諾
- 21. git不能承諾github
- 22. 恢復push'd git承諾
- 23. 含義git的承諾
- 24. 承諾git submodule回購
- 25. XCode不會承諾GIT
- 26. Git的承諾,而分期
- 27. git的承諾-a錯誤
- 28. git的承諾由六
- 29. 的Dropbox> git的承諾
- 30. 如何找到我切換回主後意外承諾的git分支
我相信你正在尋找http://stackoverflow.com/questions/1143796/git-remove-a-file-from-the- repository-without-deleted-it-from-the-local-filesys 您需要將其添加到.gitignore中,但是也要將其從存儲庫中刪除。 – bobDevil 2010-04-08 21:45:47
http://stackoverflow.com/questions/307828/ git-remove-file-unexpectedly-added-the-repository – rjh 2010-04-08 21:50:39
quickfix:備份該文件,創建新的原始名稱,將備份文件添加到.gitignore並提交,比從.gitignore刪除備份文件,並在那裏添加數據庫文件,最後恢復備份:) – 2010-04-08 21:53:42