第一次玩git,我不小心添加了所有隱藏的文件和我的提交。現在我已經創建了我的.gitignore,並進行了更改,所有以「〜」結尾的文件仍然存在。在github上刪除主文件
我該如何提交我的本地文件,並刪除那些不應該在那裏的東西?
第一次玩git,我不小心添加了所有隱藏的文件和我的提交。現在我已經創建了我的.gitignore,並進行了更改,所有以「〜」結尾的文件仍然存在。在github上刪除主文件
我該如何提交我的本地文件,並刪除那些不應該在那裏的東西?
使用git rm --cached FILENAME
將其從存儲庫中刪除,但保持該文件的物理位置,並且git add FILENAME
將文件添加到存儲庫。你將需要承諾這兩個變化與git commit
我不知道''--cached''標誌。 +1。 :) – 2012-03-19 22:08:06
有什麼辦法可以刪除所有未跟蹤/忽略的文件,所以我不必手動執行此操作? Gedit創建了一個隱藏文件,用於顯示所打開的所有內容。 – danielsvane 2012-03-19 22:13:10
這些文件是否遍佈在您的目錄結構中?如果沒有,使用一些像tortoisegit這樣的GUI工具來輕鬆地做到這一點。 – Shocker 2012-03-19 22:16:27
Here is a DOS batch file that can help:
SET count=1
FOR /F "tokens=*" %%G IN ('dir /s /b *.dll') DO (call :subroutine "%%G")
FOR /F "tokens=*" %%G IN ('dir /s /b *.pdb') DO (call :subroutine "%%G")
FOR /F "tokens=*" %%G IN ('dir /s /b *.txt') DO (call :subroutine "%%G")
FOR /F "tokens=*" %%G IN ('dir /s /b *.cache') DO (call :subroutine "%%G")
FOR /F "tokens=*" %%G IN ('dir /s /b *.force') DO (call :subroutine "%%G")
GOTO :eof
:subroutine
git rm --cached %1
set /a count+=1
GOTO :eof
你的意思是像除了正常的方式做git rm並提交它?你想重寫歷史就像從未發生過的提交? – Kaz 2012-03-19 22:05:42
你可以做到這一點;只需將您的頭重置到提交之前並將其推送到存儲庫即可。回購必須配置允許非快進推。此外,任何從該回購股中撤出的人都必須進行重置以遵循該更改。提交變成垃圾,因爲它未被引用;它會被垃圾收集(在45天之內或類似的東西?) – Kaz 2012-03-19 22:08:07