在git中,我试图squash commit通过合并另一个分支然后HEAD通过以下方式重置到上一个位置:
git reset origin/master
Run Code Online (Sandbox Code Playgroud)
但我需要走出这一步.如何将HEAD移回上一个位置?
我有23b6772提交的SHA1 frag(),我需要将其移动到.
我怎样才能回到这个提交?
我不小心添加,提交并推送了一个巨大的二进制文件,我最近提交了一个Git存储库.
如何让Git删除为该提交创建的对象,以便我的.git目录再次缩小到合理的大小?
编辑:谢谢你的回答; 我试过几个解决方案.没有用.例如,GitHub中的文件从历史记录中删除了文件,但.git目录大小没有减少:
$ BADFILES=$(find test_data -type f -exec echo -n "'{}' " \;)
$ git filter-branch --index-filter "git rm -rf --cached --ignore-unmatch $BADFILES" HEAD
Rewrite 14ed3f41474f0a2f624a440e5a106c2768edb67b (66/66)
rm 'test_data/images/001.jpg'
[...snip...]
rm 'test_data/images/281.jpg'
Ref 'refs/heads/master' was rewritten
$ git log -p # looks nice
$ rm -rf .git/refs/original/
$ git reflog expire --all
$ git gc --aggressive --prune
Counting objects: 625, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (598/598), done. …Run Code Online (Sandbox Code Playgroud)