一些 Git 操作记录

创建时间 2021-02-25
更新时间 2022-08-06

git 撤销提交

撤回最近一次的commit(撤销commit,不撤销git add)

git reset --soft HEAD~1

撤回最近一次的commit(撤销commit,撤销git add)

git reset --mixed HEAD~1

撤回最近一次的commit(撤销commit,撤销git add,还原改动的代码)

git reset --hard HEAD~1

如果不小心因 git reset --hard 删掉了 commit,可以通过以下方法找到:

git reflog show # 显示日志
git reset HEAD@{1} # 恢复 commit

git 不提交指定文件

执行命令将 filename 加入不提交队列

git update-index --assume-unchanged filename

执行命令将 filename 取消加入不提交队列

git update-index --no-assume-unchanged filename

Linux samba 分享目录 Windows 数据不一致的问题

执行命令忽略文件模式和行结束符

git config --global core.filemode false
git config --global core.autocrlf true

error: object file … is empty

删除所有空白文件

cd .git
find . -type f -empty -delete -print

然后,打印出日志文件最后两行:

cd ..
tail -n 1 .git/logs/refs/heads/master

然后,查看版本是否正常,xxxx 是第二个哈希:

git show xxxx

然后,归档:

git update-ref HEAD xxxx

检查一下:

git fsck

参考资料