132得票5回答
`git merge` 是做什么的?

我想了解一下关于git merge的确切算法(或接近的算法)。至少对以下子问题的回答将会很有帮助: - Git如何检测特定非冲突更改的上下文? - Git如何发现这些确切行中的冲突? - Git自动合并哪些内容? - 当合并分支没有共同基础时,Git如何执行? - 当合并分支有多个共同基础时...

45得票4回答
Git中的合并是否对称?

假设我们有两个分支(B和C),它们已经从共同的祖先A分叉了。从B合并到C会产生与从C到B合并相同的结果吗? A | / \ B C 澄清一下- 我假设任何手动合并冲突的解决方案都会在两个方向上发生。但是,任何自动合并是否会导致选择相同的代码?这是我假设的,因为提交日期在两个方向上都...

8得票2回答
为什么git pull合并是默认行为?

通常在使用git更新本地仓库中的新提交时,我们会使用git fetch和git rebase命令。但是我们不使用git fetch git merge命令。通常,原因是我们不想添加新的提交(合并提交),只是想在我们的代码顶部获取所有新的提交。那么为什么git pull的默认行为不是使用合并呢?...

55得票5回答
Git rebase会丢失历史记录,那为什么还要使用rebase?

最近几天我一直在了解Git的变基(rebasing)技术。大多数变基的支持者认为它可以清理历史记录并使其更加线性。如果你使用简单的合并(例如),你会得到一个显示历史记录何时分叉和何时重新合并的历史记录。据我所知,变基会移除所有这些历史记录。问题是:为什么不希望代码库的历史记录反映出代码的各种发...

12得票2回答
BitBucket/GitLab/GitHub上的仅合并分支?

有没有一种方法可以设置分支的方式,使得它只能被合并而不能被推送?此外,是否有任何适用于BitBucket、GitLab或GitHub的方法? 我们使用功能分支,在BitBucket/GitLab/GitHub上推送这些分支(根据项目不同),然后将它们合并到名为“development”的集成...

7得票2回答
一个撤销提交如何也能成为一个合并提交?

最近在工作中,我们在使用git(和一个私有的github仓库)进行版本控制的项目中丢失了一些代码。 我使用了git bisect来找到罪魁祸首提交,而我惊讶地发现它看起来像是一个还原提交,但同时又像合并提交一样有两个父提交: commit b5f97311eea2905baf8a96fdd...

38得票1回答
Git:将分支合并到主分支,或将主分支合并到分支

我在想,先将主分支合并到另一个分支,再将它合并回主分支是否会犯错。 假设我创建了以下分支,并且每个分支都有单独的提交记录: mkdir git_merging cd git_merging/ git init ...

12得票1回答
Git中解决合并冲突时使用git blame命令

我经常需要将一个大型开源项目变基,但会出现合并冲突。为了决定采用哪个更改,我需要找出谁在何时做了这个更改。通常我会进入两个仓库,查看文件并使用git blame命令。是否有一种合并工具可以在解决冲突时提供此信息?我想知道每个版本的作者和更改时间。目前我正在使用meld。

43得票2回答
如何避免git rebase删除合并提交?

以下是 git 历史记录: C-I origin/master / A-B-F-G-H master \ / D-E branch-b 我想将本地的master分支在origin/master之上进行变基(rebase),但是我想保留合并提交(merge...

81得票1回答
`--squash` 和 `--no-ff --no-commit` 有什么区别?

应该使用哪种方法隐藏微提交? git merge --squash和git merge --no-ff --no-commit之间的唯一区别是否认其他父提交吗?