草庐IT

mro_merge

全部标签

git - 如何在 Git 中将一个分支的特定提交 merge 到另一个分支?

我有BranchA,它比BranchB提前113次提交。但我只想将BranchA的最后10次左右的提交merge到BranchB中。有办法吗? 最佳答案 gitcherry-pick命令允许您进行一次提交(来自任何分支),并且实质上是在您的工作分支中将其rebase。Chapter5oftheProGitbookexplainsitbetterthanIcan,配有图表等。(ThechapteronRebasing也是不错的读物。)最后,还有一些goodcommentsonthecherry-pickingvsmergingvsre

git - 在 git 中,fetch 与 pull 有何不同,merge 与 rebase 有何不同?

我只是不明白这一点。我在网上和书籍上阅读了很多东西,但有些东西并没有留在我的脑海里。有人可以给我以下的虚拟版本吗:gitfetch与pullgitmerge与rebase 最佳答案 获取与pullfetch将从远程*分支下载任何更改,更新您的存储库数据,但保持本地*分支不变。pull将执行fetch并将更改merge到您的本地分支。有什么区别?pull使用pull分支的更改更新您的本地分支。fetch不会推进您的本地分支。merge与rebase鉴于以下历史:C---D---Elocal/A---B---F---Gremotemer

git - 如何在不首先实际 merge 的情况下测试 merge

有什么方法可以模拟两个分支(当前工作分支和主分支)之间的gitmerge,但不做任何更改?当我必须进行gitmerge时,我经常会遇到冲突。有没有办法先模拟merge? 最佳答案 您可以使用gitmerge--no-commit来防止merge实际被提交,如果您不喜欢merge的结果,只需重置为原始头部即可。如果您绝对不想完成merge,即使它是快进(因此根据定义没有冲突),您也可以添加--no-ff. 关于git-如何在不首先实际merge的情况下测试merge,我们在StackOve

git - 查找包含特定提交的 merge 提交

想象一下以下历史:c---e---g---feature/\-a---b---d---f---h---master如何找到提交“c”何时被merge到master中(即找到merge提交“h”)? 最佳答案 将此添加到您的~/.gitconfig:[alias]find-merge="!sh-c'commit=$0&&branch=${1:-HEAD}&&(gitrev-list$commit..$branch--ancestry-path|cat-n;gitrev-list$commit..$branch--first-paren

git - 如何从 Git 分支 merge 特定文件

我有2个git分支:分支1分支2我想将branch2中file.py的所有历史记录(多次提交)merge到file.py在branch1中并且只有那个文件。本质上,我只想处理branch1中的file.py,但想利用merge命令。执行此操作的最佳方法是什么? 最佳答案 当file.py来自branch2的内容不再适用于branch1时,需要选择一些更改并保留其他更改。要完全控制,请使用--patch开关进行交互式merge:$gitcheckout--patchbranch2file.pygit-add(1)手册页中的交互模式部分

git stash -> 将 stash 的更改与当前更改 merge

我对我的分支进行了一些更改,然后意识到我忘记了我已经对所述分支进行了一些其他必要的更改。我想要的是一种将我stash的更改与当前更改merge的方法。有办法吗?更多的是为了方便,我最终放弃了并首先提交了我当前的更改,然后是我stash的更改,但我更愿意一下子把它们放进去。 最佳答案 tl;博士先运行gitadd。我刚刚发现,如果您未提交的更改被添加到索引中(即“暂存”,使用gitadd...),那么gitstashapply(和,据推测,gitstashpop)实际上会进行适当的merge。如果没有冲突,你就是黄金。如果没有,请像往

git - merge 时跳过特定的提交

我已经使用Git大约一年了,认为它很棒,但我刚刚开始该项目的第二个版本并为其创建了一个新分支。我正在努力寻找处理future事情的最佳方法。我有两个分支,分别称为master10(对于v1)和master20(对于v2)。我一直在分支master10的v1中修复错误,并开发master20的新内容。每当我修复错误时,我都会通过检查master20并执行gitmergemaster10将其merge到v2中。到目前为止一切顺利。但是现在,我在v1中做了一个我不想在v2中进行的更改,但我想继续merge其他错误修复。我如何告诉Git跳过那个特定的提交(或一系列提交),但我仍然想merge其

git - 如何将 KDiff3 配置为 git 的 merge 工具和差异工具?

最近我在使用GitExtension2.46,但与之相同的Git版本是1.9.4.msysgit.2。为了只使用Git命令,我卸载了GitExtension并安装了可用的最新版本Git和KDiff3.当我进行merge并发生冲突时,我运行以下命令:gitmergetool然后我收到消息:Themergetoolkdiff3isnotavailableas'kdiff3'.我猜它一定是通过KDiff3路径。环境操作系统:Windows10Git2.6.1.windows.1KDiff30.9.98(64位)问题:我必须在.gitconfig文件中为命令gitmergetool配置什么以打

git - merge Git 存储库的前两个提交?

假设您有一个包含三个提交A、B和C的历史记录:A-B-C我想将两个提交A和Bmerge为一个提交AB:AB-C我试过了gitrebase-iA这会打开我的编辑器,内容如下:picke97a17bBpickasd314fC我把这个改成squashe97a17bBpickasd314fC然后Git1.6.0.4说:Cannot'squash'withoutapreviouscommit有没有办法或者这根本不可能? 最佳答案 使用gitrebase-i--root截至Gitversion1.7.12.在交互式rebase文件中,将提交B的

git stash 错误 : git stash pop and ended up with merge conflicts

我做了一个gitstashpop并以merge冲突告终。我从文件系统中删除了文件并执行了gitcheckout操作,如下所示,但它认为文件仍未merge。然后我尝试替换文件并再次执行gitcheckout并得到相同的结果。我尝试用-f标志强制它。任何帮助将不胜感激!chirag-patels-macbook-pro:halororpatelc75$gitstatusapp/views/layouts/_choose_patient.html.erb:needsmergeapp/views/layouts/_links.html.erb:needsmerge#Onbranchprod-t