回滚:
git log 查看提交记录
git reset 回退到某个版本
–soft: 使用git reset --soft ,HEAD(当前分支)将被移动到指定的提交(commit),暂存区(Index)和工作目录不会被改变。这意味着在这个commit之后的所有提交都会保留在暂存区中,这样你就可以重新提交它们,或者根据需要修改它们。
–mixed: 这是git reset的默认模式,你可以使用git reset --mixed 或者简写为git reset 。在这种模式下,HEAD被移动到指定的提交,暂存区(Index)也会被重置,但工作目录不会被改变。这意味着在这个commit之后的所有提交都会从暂存区中移除,但它们仍然保留在工作目录中。你可以根据需要重新暂存和提交这些更改。
–hard: 使用git reset --hard ,HEAD被移动到指定的提交,暂存区(Index)和工作目录都会被重置。这意味着在这个commit之后的所有提交都将完全丢失,工作目录将恢复到这个commit的状态。这是一个危险的操作,因为它会永久删除未提交的更改,所以在执行此操作之前,请确保你没有未保存的工作。
–soft:仅移动HEAD,保留暂存区和工作目录。
–mixed(默认):移动HEAD,重置暂存区,保留工作目录。
–hard:移动HEAD,重置暂存区和工作目录,可能导致未提交的更改丢失。。
git push -f origin master 强推操作,将远程master分支回退到历史版本
注意:强推需要权限,但是有可能会出现失败的情况,大概率是因为有分支保护,需要先去将分支保护去除再进行推送
迁移:
git clone --mirror <老仓库的git地址>
cd <克隆下来的项目目录>
git remote set-url origin <新的git项目的地址>
git push -f origin
注意:新仓库最后推送如果出现错误,例如: the remote end hung up unexpectedly
需要增加Git的缓冲区大小:你可以通过设置Git的配置来增加其缓冲区大小,以处理大的数据传输。
git config --global http.postBuffer 524288000 # 设置为500MB