玖叶教程网

前端编程开发入门

git merge 通过 squash 压缩 commit

1 场景

我们经常会面临着将某个分支或者很多其他的分支merge到一个公共release-{branchName}分支里。

此时merge后,当前分支就会有很多commit记录。如果这些commit我们并不需要,那么我们可以采用 git merge --squash 语法 进行commit 合并。

语法

git merge --squash {import_branch_name}


2 以下我们做个测试

新建git仓库,创建readme.md文件。新建dev分支,并进行3次提交。

git init 

echo "hello" > readme.md && git add ./* 
git commit -m "create readme.md"

git checkout -b dev

echo "第1次修改" >> readme.md && git add ./* 
git commit -m "第1次修改"
echo "第2次修改" >> readme.md && git add ./* 
git commit -m "第2次修改"
echo "第3次修改" >> readme.md && git add ./* 
git commit -m "第3次修改"


此时通过 git log 查看提交记录



下来我们将dev合并到master分支。


2.1 方法一

merge 不带参数

git checkout master
git merge dev
git status

查看提交记录。



2.2 方法一

git merge --squash 带参数

git reset --hard 3609c2570c7fcad52270357fc124e67baa95d5f0
git merge --squash dev
git status // 此时可以发现有文件变动,但并未提交
git commit -m "merge dev" // 需要手动提交



再次查看提交记录。


你会发现会有一次commit记录。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言