草庐IT

mro_merge

全部标签

git:将子树从一个分支 merge 到另一个分支

我在将开发分支的子树merge回集成分支时遇到问题。我有两个分支,一个用于开发,一个用于集成。在开发分支中进行了广泛的开发,我想将其中的一部分merge回去。我要merge的特定部分都包含在开发分支的一个子树中。我的目录结构是这样的:[BranchA][BranchB]||+--Dir1+--Dir1+--Dir2+--Dir2|||+--DirA|+--DirA|||+--File1|+--File1+--File2|+--File2|+--File3|+--File4+--Dir3我想将BranchB/Dir2/DirAmerge到BranchA/Dir2/DirA。我希望merg

git:将子树从一个分支 merge 到另一个分支

我在将开发分支的子树merge回集成分支时遇到问题。我有两个分支,一个用于开发,一个用于集成。在开发分支中进行了广泛的开发,我想将其中的一部分merge回去。我要merge的特定部分都包含在开发分支的一个子树中。我的目录结构是这样的:[BranchA][BranchB]||+--Dir1+--Dir1+--Dir2+--Dir2|||+--DirA|+--DirA|||+--File1|+--File1+--File2|+--File2|+--File3|+--File4+--Dir3我想将BranchB/Dir2/DirAmerge到BranchA/Dir2/DirA。我希望merg

`--preserve-merges` 的 Git 选项?

是否有一个选项可以让git默认使用--preserve-merges进行rebase?我知道别名,但我不喜欢记住别名的想法,而且当你习惯了别名时,这会使在别人的计算机上做任何事情变得更加困难。 最佳答案 如果你想在pull(比如开发)时执行此操作,你可以在git>=1.7.9::中执行此操作gitconfigpull.rebasepreserve它将使您所有的pull操作将分支从远程分支rebase到本地分支并保留merge。如果你想rebasedevelop到另一个分支,这是行不通的。在gitgitconfig--globalbr

`--preserve-merges` 的 Git 选项?

是否有一个选项可以让git默认使用--preserve-merges进行rebase?我知道别名,但我不喜欢记住别名的想法,而且当你习惯了别名时,这会使在别人的计算机上做任何事情变得更加困难。 最佳答案 如果你想在pull(比如开发)时执行此操作,你可以在git>=1.7.9::中执行此操作gitconfigpull.rebasepreserve它将使您所有的pull操作将分支从远程分支rebase到本地分支并保留merge。如果你想rebasedevelop到另一个分支,这是行不通的。在gitgitconfig--globalbr

git - `git bisect` 或 `git log -S --all` 找不到 merge 提交所做的更改

我修复了一个文件,并将其提交到我的git存储库。一段时间后,我发现它退步了。我想知道在哪个提交中删除了修复程序,所以我尝试了gitbisect和gitlog--all-STERM,其中“TERM”是一个字符串由我的修复程序添加,并且在项目的其他任何地方都没有出现。我发现gitbisect归咎于一个不相关的提交,我发现gitlog--all-STERM只列出了我添加了TERM的提交,并且没有将任何提交列为已删除它,即使它不再位于“master”的文件中。经过一番手工查找,发现两个分支之间发生了mergecommit。一个分支有我的修复,一个没有。merge作者在没有我修复的情况下选择了分

git - `git bisect` 或 `git log -S --all` 找不到 merge 提交所做的更改

我修复了一个文件,并将其提交到我的git存储库。一段时间后,我发现它退步了。我想知道在哪个提交中删除了修复程序,所以我尝试了gitbisect和gitlog--all-STERM,其中“TERM”是一个字符串由我的修复程序添加,并且在项目的其他任何地方都没有出现。我发现gitbisect归咎于一个不相关的提交,我发现gitlog--all-STERM只列出了我添加了TERM的提交,并且没有将任何提交列为已删除它,即使它不再位于“master”的文件中。经过一番手工查找,发现两个分支之间发生了mergecommit。一个分支有我的修复,一个没有。merge作者在没有我修复的情况下选择了分

git - 将更改从一个存储库 merge 到另一个具有不同树结构的存储库

我有两个Git仓库,foo/master和bar/master:在foo中:code_root->dirA->dirB->*somefiles*在栏中:code_root->*samefilesasabove*现在有人更改了*一些文件*...我如何将这些更改merge到*与上面相同的文件*?当我说“merge”时,我的意思是我还需要增量的历史记录(提交消息、日志哈希等)。 最佳答案 您可以将更改拆分到子树级别,然后与您的其他分支merge:#fromyourfooprojectgitsubtreesplit--prefix=dirA

git - 将更改从一个存储库 merge 到另一个具有不同树结构的存储库

我有两个Git仓库,foo/master和bar/master:在foo中:code_root->dirA->dirB->*somefiles*在栏中:code_root->*samefilesasabove*现在有人更改了*一些文件*...我如何将这些更改merge到*与上面相同的文件*?当我说“merge”时,我的意思是我还需要增量的历史记录(提交消息、日志哈希等)。 最佳答案 您可以将更改拆分到子树级别,然后与您的其他分支merge:#fromyourfooprojectgitsubtreesplit--prefix=dirA

git - 交互式 merge 使用 git 跟踪的文件和未跟踪的本地文件

我使用了几个软件包(如gitlab),您可以通过从他们的git存储库中克隆来安装这些软件包。它们通常带有一些config.example(在版本控制下),您将其复制到您自己的config文件(不受版本控制,甚至在.gitignore中被忽略))并适应您的需求。当更新上游包时,例如更改配置文件选项时,显然只会反射(reflect)在config.example中。是否有我遗漏的一系列git命令可以帮助我将config.example的更改与upstream/HEAD中的新命令进行比较,也许甚至将它们以交互方式merge到我的本地config文件中?如果我能在gitadd/commit--

git - 交互式 merge 使用 git 跟踪的文件和未跟踪的本地文件

我使用了几个软件包(如gitlab),您可以通过从他们的git存储库中克隆来安装这些软件包。它们通常带有一些config.example(在版本控制下),您将其复制到您自己的config文件(不受版本控制,甚至在.gitignore中被忽略))并适应您的需求。当更新上游包时,例如更改配置文件选项时,显然只会反射(reflect)在config.example中。是否有我遗漏的一系列git命令可以帮助我将config.example的更改与upstream/HEAD中的新命令进行比较,也许甚至将它们以交互方式merge到我的本地config文件中?如果我能在gitadd/commit--