tracked - git rm用法




從Git存儲庫中刪除文件而不從本地文件系統中刪除它 (6)

Git允許您通過假設它們不變來忽略這些文件。 這是通過運行git update-index --assume-unchanged path/to/file.txt命令來完成的。 一旦標記文件,git將完全忽略該文件的任何更改; 它們在運行git status或git diff時不會出現,也不會被提交。

(來自https://help.github.com/articles/ignoring-files

因此,不要刪除它,而是永遠忽略對它的更改。 我認為這只適用於本地,所以除非他們運行與上面相同的命令,否則同事仍然可以看到它的變化。 (但仍需要驗證這一點。)

注意:這不是直接回答問題,而是基於其他答案的評論中的後續問題。

我的初始提交包含一些日誌文件。 我已將*log添加到我的.gitignore ,現在我想從我的存儲庫中刪除日誌文件。

git rm mylogfile.log

將從存儲庫中刪除文件,但也將從本地文件系統中刪除它。

如何在刪除文件的本地副本的情況下從存儲庫中刪除此文件?


如果您只想解開文件而不是從本地和遠程倉庫刪除,請使用以下命令:

git update-index --assume-unchanged  file_name_with_path

對於單個文件:

git rm --cached mylogfile.log

對於單個目錄:

git rm --cached -r mydirectory

您還可以根據.gitignore從存儲庫中刪除文件,而不從本地文件系統中刪除它們:

git rm --cached `git ls-files -i -X .gitignore`

或者,在Windows Powershell上:

git rm --cached $(git ls-files -i -X .gitignore)

根據我的答案: https://.com/questions/6313126/how-to-remove-a-directory-in-my-github-repository : https://.com/questions/6313126/how-to-remove-a-directory-in-my-github-repository

要僅從git存儲庫中刪除文件夾/目錄或文件,而不是從本地嘗試3個簡單的步驟。

刪除目錄的步驟

git rm -r --cached File-or-FolderName
git commit -m "Removed folder from repository"
git push origin master

在下次提交中忽略該文件夾的步驟

要從下一次提交中忽略該文件夾,請在根目錄中創建一個名為.gitignore的文件,並將該文件夾名稱放入其中。 您可以根據需要添加任意數量

.gitignore文件將如下所示

/FolderName








git-rm