合并分支

squash merge

用上了squash merge后,每个被合并的分支在develop上就只有一个commit,不管要回退哪一个都很方便。

git merge --squash

但要注意, Squashing 并在合并时编写一个好的提交消息

rebase merge

rebase 的主要好处是可以获得更清晰的项目历史。首先,它消除了 git merge 所需的不必要的合并提交;其次,正如你在上图中所看到的,rebase 会产生完美线性的项目历史记录,你可以在 feature分支上没有任何分叉的情况下一直追寻到项目的初始提交。这样可以通过命令 git loggit bisect 和 gitk 更容易导航查看项目。

在多人协作中,应该遵循以下指导原则:

  1. 在个人开发分支上进行 rebase:如果你在个人开发分支上进行 rebase,这不会对其他开发者产生影响,因为这个分支只属于你个人。
  2. 在共享仓库的主分支上使用 merge:在共享仓库的主分支(如 master 或 main)上,推荐使用 merge 来将开发的功能或修复合并回主分支。这样可以保留每个开发者的提交历史,易于跟踪和回溯。
  3. 协作时协商:如果有特殊情况需要在共享仓库的分支上进行 rebase,应该与其他开发者进行充分协商,并确保大家都知道并同意这个变更。

merge

整理分支

## 删除本地分支:
git branch -d 分支名(remotes/origin/分支名)
 
##强制删本地:
git branch -D 分支名
 
##删除远程分支:
git push origin --delete 分支名(remotes/origin/分支名)
## 修剪远程分支
git remote prune origin

批量删除本地分支

## 列出所有本地分支
git branch
git checkout master
## '留 master'
git branch | grep -v 'master' | xargs git branch -D

日志查找

git reflog