有没有办法压缩并将master合并到同一个分支中?有效地获取所有挂起的提交并将它们置于1次提交中?
我最初的想法是一个脚本,它采取my-branch并做一个git checkout master && git pull && git checkout my-branch-squashed然后 git merge --squash my-branch(处理任何合并冲突),然后最终删除my-branch并重命名my-branch-squash为my-branch
这似乎非常圆,可能不好,所以我试图看看是否还有其他方法.我试图解决的意图是,当我在github上放置分支并将它们"压缩并合并"到master中时,本地机器上存在的分支与合并到master中的分支不匹配,因此在使用git branch --merged ${1-master} | grep -v " ${1-master}$" | xargs -r git branch -d; 它时没有正确删除已合并为master的分支.我想要的是一种自动删除已合并为master的旧分支的方法
我有两个存储库.不时,我要的内容合并other成main.但是,合并会忽略已删除的文件.让我通过一个例子解释一下:
mkdir -p test/main test/other
cd test/other/
git init
touch one two three
git add .
git commit -m "Add one, two and three."
cd ../main/
git init
touch four
git add .
git commit -m "Add four."
Run Code Online (Sandbox Code Playgroud)
添加other到main远程.
git remote add other ../other/
git fetch other
Run Code Online (Sandbox Code Playgroud)
合并其内容.
git merge --squash other/master
git commit -m "Merge other."
Run Code Online (Sandbox Code Playgroud)
它正确添加文件.现在,删除一个文件other.
cd ../other/
git rm two
git commit -m "Remove two."
Run Code Online (Sandbox Code Playgroud)
合并更改为main …