Git 实用指南

发布于 2022-02-18 21:40:35 字数 1372 浏览 1121 评论 0

拉取所有 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

漫雪独思

文章 0 评论 0

垂暮老矣

文章 0 评论 0

鹊巢

文章 0 评论 0

萌酱

文章 0 评论 0

雨说

文章 0 评论 0

冰葑

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文