版本管理真是一点都不好玩儿......用这个博客记录一下之前遇到的问题。
一、撤销上次远程push
1、git log
查看日志,选择上上次push的版本号
2、git reset --soft <版本号>
重置回上上次push,选择soft,此条命令执行完后再次git log查看发现没有了上次push的记录。
3、git push origin main --force
将上上次push强制提交,此时在网页查看发现上次push已撤销。
二、从指定的历史版本创建分支
1、git log找到对应历史版本的SHA值,是一个40位的串
2、从历史版本新建分支并切换到新的分支:git checkout -b 新分支名 历史版本SHA值
这一步执行完后可以git branch查看当前分支名,git log查看最近一条记录是不是指定历史记录
3、将修改的新文件推送到远程仓库:
git add .
git commit -m "信息"
git push origin 本地新分支名
三、fetch、merge、pull、rebase命令
终于会在本地使用rebase了。git真的有后悔药可以吃哈哈哈。
前提背景:我们已经提交四次commit,先后我们分别叫做A B C D,现在我们想把D做的工作与B合并。
以前我只会reset回B,再amend一次B,再提交一次C......
现在的操作:git rebase -i 比A更前一次的提交hash值(git log查看距今5次的提交hash值)
会出现界面如下,从上至下分别为我们的提交A B C D
我们只需要把D的提交改为B之后,并将pick改为squash,s也可。保存退出。
再git push一次即可。
参考:
Git的git fetch, git merge和git pull, git rebase操作_祝你幸福365的博客-CSDN博客_gitfetch和gitmerge
git rebase详解(图解+最简单示例,一次就懂)_风中一匹狼v的博客-CSDN博客_git rebase
Git:Rebase和Merge之间的区别,看完这篇文章你就懂了!_IT技术分享社区的博客-CSDN博客
四、覆盖上次提交(文件/备注信息)
1、将已修改文件上传至暂存区:git add xxx
2、修改备注信息:git commit --amend
如果没有修改的,直接ESC,:q!退出。
3、重新push:git push -f origin main
至此已修改完成,可以git log查看版本号不同了,还可以查看各个版本之前不同点。
五、windows下修改权限
提交后发现权限由100755->100644,我们这时就可以修改权限后重新覆盖上次提交。
1、git commit --amend查看哪些文件的权限变了
2、git update-index --chmod=+x xxx.sh修改文件的权限
3、git push -f origin master重新强制提交覆盖上次提交
六、查看config
1、cd && ls -a
2、vim .gitconfig即可查看修改config
七、删除分支(本地分支/远程分支)
删除本地分支:git branch -D [分支名]
删除远程分支:git push origin --delete [分支名]
版权归原作者 趣多多代言人 所有, 如有侵权,请联系我们删除。