我想从Dropbox转换到开源的Sparkleshare。它使用git进行同步和版本控制。如果说我在文件夹中删除了一个1GB的文件,它会保留在本地.git文件夹的历史记录中。但我希望这种大数据存储在服务器而不是客户端上。 如何提交我的存储库并使用git删除本地存储库? 非常感谢!
我想从Dropbox转换到开源的Sparkleshare。它使用git进行同步和版本控制。如果说我在文件夹中删除了一个1GB的文件,它会保留在本地.git文件夹的历史记录中。但我希望这种大数据存储在服务器而不是客户端上。 如何提交我的存储库并使用git删除本地存储库? 非常感谢!
git fetch --depth=1
以修剪旧提交。这将使旧提交及其对象无法访问。git reflog expire --expire-unreachable=now --all
。过期所有旧提交及其对象。git gc --aggressive --prune=all
以删除旧对象。基于koppor的回答,我创建了这个单行bash命令,可以清除同一基础文件夹中所有存储库的本地git历史记录:
for d in */; do echo $d && cd "$d" && git fetch --depth=1 && git reflog expire --expire-unreachable=now --all && git gc --aggressive --prune=all; cd ..; done
*/
替换为任何特定的文件夹标准,如*mobile*/
。FOR /D %d IN (*) DO (echo $d && cd "$d" && git fetch --depth=1 && git reflog expire --expire-unreachable=now --all && git gc --aggressive --prune=all & cd ..)
将以下命令添加到 cmd 或 sh 文件中,有助于清除历史记录 git fetch --depth=1 以修剪旧提交。 这使得旧的提交及其对象无法访问。 git reflog expire --expire-unreachable=now --all。 过期所有旧提交及其对象 git gc --aggressive --prune=all 以删除旧对象