分支解决冲突 & 分支管理策略 git merge命令详解

git merge详解

git merge 命令用于合并两个分支的更改。以下是 git merge 命令的一些常用参数:

  1. git merge <分支名>: 将指定分支的更改合并到当前分支。
    git merge feature-branch
  2. git merge --no-ff <分支名>:这个选项确保总是创建一个新的合并提交,即使合并可以通过快进方式完成。快进合并发生在合并的目标分支领先于被合并的分支时。–no-ff 选项强制创建一个新的提交,保留被合并分支的上下文。
    git merge --no-ff feature-branch
  3. git merge --ff-only <分支名>: 这个选项强制进行快进合并,即只有在可以不创建新提交的情况下才会允许合并。如果快进合并不可行(例如,两个分支都有更改),它将拒绝合并。
    git merge --ff-only feature-branch
  4. git merge --abort: 这个选项允许你放弃有冲突的合并,将你的工作目录和暂存区恢复到合并之前的状态。
    git merge --abort
  5. git merge --squash <分支名>: --squash 选项将指定分支的更改压缩成一个新的提交,而不执行实际的合并。这个选项常用于将一个分支的更改整理成一个简洁的提交,以便更清晰地记录历史。
    git merge --squash feature-branch
  6. git merge --strategy=<策略> <分支名>: 指定合并策略,例如 ours 或 theirs。
    git merge --strategy=ours feature-branch
  7. git merge --no-commit <分支名>: 执行合并但不自动提交,允许进行额外的修改。
    git merge --no-commit feature-branch
  8. git merge --continue: 在完成手动解决冲突后,继续之前被取消的合并。
    git merge --continue
  9. git merge --edit: 合并提交时编辑合并信息。
    git merge --edit
  10. git merge --verify-signatures: 检查合并提交的签名。
    git merge --verify-signatures feature-branch

–no–ff 模式其实就是相当于master指针new了一个跟dev指针一样的空间并且放了相同的内容然后指向这个空间。而原来的快速模式,就是简单将master指针指向dev指针指向的内容而已,并没有自己创造空间。

总的来说就是开发的时候巧用merge,当存在ff情况的时候而希望保存合并的痕迹,就使用–no–ff。

**

省略–no-ff 的好办法

**

以下命令输入后,即可省略 --no-ff 字段 ,第一个是针对master分支,以此类推
第二个是针对当前版本库的所有分支
第三个是针对所有版本库的所有分支
git config branch.master.mergeoptions “–no-ff” 仅针对当前分支有效
git config --add merge.ff false 仅针对当前版本库的所有分支有效
git config --global --add merge.ff false 仅针对所有版本库的所有分支有效

你可能感兴趣的:(git)