首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >合并分支时的git压缩

合并分支时的git压缩
EN

Stack Overflow用户
提问于 2012-10-11 18:06:46
回答 1查看 213关注 0票数 1

我想知道如果你在分支之间挤压,并在两者之间远程推送/拉出,会发生什么。

代码语言:javascript
复制
DEVELOPER 1
1. $ git checkout foo
2. $ git commit -m 'changed file' file.txt
   $ git commit -m 'changed another file' file2.txt
3. $ git push

DEVELOPER 2
4. $ git checkout foo
5. $ git pull    // gets commits from 2. above
6. $ git checkout bar
7. $ git merge foo
8. $ git rebase -i HEAD~3

在1-3 --我对一些文件进行了一些本地更改,分别提交它们,然后推送。在4-8中--其他人拉出我的提交,签出另一个分支,合并第一个分支,然后尝试在合并中压缩提交。

这会不会搞乱历史,是不是很“糟糕”?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-11 18:42:39

git rebase -i HEAD~3将在bar分支中重放提交(压缩或未压缩),使分支foo引用的提交保持不变。

如果你的分支bar已经被推送了(参见"git rebase develop branch"),这是不好的,因为你需要强制推送它,并使bar上的其他开发人员陷入麻烦。

但它也不好,因为它将复制提交内容(在foo分支的内容和在bar上挤压的内容之间),使得将来从foobar的任何合并都将再次提交2和3。

这就是rebase的选项-p (--preserve-merges)可以派上用场的地方,以便保留合并的父级。但这可能与您想要做的事情(挤压)不兼容。

通常,尽量不要修改您刚刚拉取的公共历史记录(如分支foo上的commit 2和3)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12837097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档