git - git merge --no-ff 和 git merge --squash 有什么区别

标签 git merge squash

我与一个使用“merge 工作流”的小团队合作,我们最近根据 Sandofsky's article 切换到“ rebase 工作流” .

我们目前的工作流程:

  1. git checkout master, git pull origin master
  2. git checkout -b feature_branch,做一些工作然后 git commit -am "msg for feature branch"
  3. git checkout master、git pull origin master、git rebase master feature_branch
  4. git checkout master,git merge --squash
  5. git commit -am "msg for master branch", git push origin master

rebase 特性分支后,我们将它 merge 到我们的 master 中。如果我们改用 --no-ff 会发生什么? git merge --squashgit merge --no-ff 有什么区别?

最佳答案

--squash 创建一个包含所有 merge 更改的单个 提交(它压缩 整个 merge 分支的历史记录为一个提交)。 --no-ff 也在分支中 merge ,创建 merge 提交并保留 merge 分支的整个历史记录。

关于git - git merge --no-ff 和 git merge --squash 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18388813/

相关文章:

Git分支/merge 策略: release + hotfix branches, master有什么意义

git - 是否可以在不更改提交哈希的情况下压缩提交?

Git:压缩不是最近提交的连续提交,并且不从根开始

GitLab 正在运行 - 无法信任自签名证书

git - gerrit 和 github.com 之间可以进行双向同步吗?

c++ - 编译 x264 的这个 "fixing the build scripts"是什么?

r - 连接和求和不兼容的矩阵

join - 如何通过在hadoop中合并两个文件在hdfs中创建文件

GIT:我可以在 merge 到 master 的同时维护一个正在进行的开发分支吗?

php - 如何为 Laravel 项目设置 Git Repo 在克隆后运行?