Git 实用指南
拉取所有 tag
git fetch --all --tags --prune
查看早期历史
git log --reverse
合并远程分支失败
合并远程分支报错:
fatal: refusing to merge unrelated histories
解决:
git pull origin master --allow-unrelated-histories
删除远程分支失败
删除远程分支总提示:
git push origin --delete feature/mockDate error: unable to delete 'feature/mockDate': remote ref does not exist
其实远程已经删除了,只是本地未更新,更新下:
git fetch -p origin
合并
git merge 一定要带 --no-ff 禁止快进!参考:https://blog.csdn.net/zombres/article/details/82179122
squash
合并提交,主干分支保持线性,开发分支保持独立
git merge --squash <dev_branch>
开发分支合并进主干分支,所有 commit 合并成一个,开发分支完全不变(commit 保留,且不形成往主干分支的合并提交)
rebase
不合并提交,主干分支保持线性,开发分支合并进主干分支并位于主干头部(丢失开发分支创建的节点)
# 将开发分支的提交移动到主干分支之后 git rebase <main_branch> # 切到主干分支 git checkout <main_branch> # 将主干分支的指针移动到开发分支最新提交 git rebase <dev_branch>
merge + rebase
类似 merge,但是开发分支只有一次提交,不如直接 git merge --squash?
# 在开发分支上将若干次提交合并(使用 squash 命名合并提交,参考:https://blog.csdn.net/w57685321/article/details/86597808) git rebase -i <合并开始节点的基准,可以是分支名或commit hash> # 切到主干分支 git checkout <main_branch> # 合并开发分支 # git merge <dev_branch>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论