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>

以上是 Git 实用指南 的全部内容, 来源链接: utcz.com/z/264563.html

回到顶部