草庐IT

rebase-merge

全部标签

Git:由于看似随机的 merge ,更改不断丢失

我觉得这将是一个显而易见的答案,但我似乎无法解决。似乎发生的事情是我向服务器提交/推送了一些更改,并且我的副本上的一切看起来都很好。然后另一个开发人员从同一分支的服务器中pull(据我所知,据称看到了我的更改),进行了一些修改,将它们提交到他们自己的本地副本,然后最终将其推送回服务器。在执行此操作的某个地方,我的更改丢失了,因为它们的推送(326c8fd0...)导致merge,其中包含大量删除/添加行,将存储库重置回更旧的修订版。即使使用存储库的新副本,这种情况现在也发生过几次。下面突出显示的行(8def6e9..)是我所做的提交,如果其他开发人员撤消了更改,则以下提交应该在同一分支

git merge 不是时已经是最新的

在使用git和bitbucket.com进行项目时,有以下分支:masterdevelopmentuatproduction当我开始项目工作时,我进行了开发的git克隆(自然而然地认为它包含最先进的代码)。几个月后的工作,现在证明生产分支中的代码(目前正在生产中运行)的版本比我开始时在开发分支中使用的代码的版本更高。当我尝试:gitcheckoutdevelopmentgitmergeproduction它说“已经是最新的”。我去的时候:gitdiffproduction..development它吐出了很多变化,说生产分支有不在开发分支中的代码。如何在不抹杀我数月工作的情况下将生产代

git - 压缩提交时 merge 冲突破坏了我的提交信息

我通常使用git的工作流程是创建一个新的功能分支,做一些频繁提交的工作,然后在功能正常工作和/或稳定时merge回开发分支。通常,当我执行gitmerge--squashfeature-branch时,我会收到一条很好的“压缩以下提交”消息,该消息会自动填充来自功能分支的所有提交消息.但是,如果存在任何merge冲突(比如我在处理此功能时完成并merge了另一个功能),我似乎会丢失分支中的所有提交消息。自动填充的提交消息会填充冲突,但不会填充提交消息。我的提交信息去了哪里?我可以取回它们吗? 最佳答案 是的,您可以取回压缩提交消息。

git - Squash merge 后 rebase ?

我有一个“主”分支和几个主题分支。假设master分支主要用作候选发布版本,并且该分支上没有任何开发工作。主题分支有几个,由团队共享。一些分支机构有不止一名开发人员在处理它们。所有主题分支定期从master分支重新定位。为了清理“master”分支中的历史记录,我在将代码从主题merge到master分支时执行了“gitmerge--squash”。这工作得很好。现在-当主题分支rebase时-提交会重复。有没有办法在“gitmerge--squash”成功后清理主题分支上的提交? 最佳答案 假设您有以下场景:A-B-C(maste

Git 默认 merge 提交消息不包括冲突

从origin/base分支merge到我的feature分支后,我必须解决文件Parameter.java上的一个冲突>。我启动了我的Gitmerge工具并解决了它。问题解决后,我执行了gitcommit并使用默认merge提交消息打开了Vim。事实上,这个默认提交消息包含冲突列表,但以#开头,因此它们将在提交消息中被忽略。Mergeremote-trackingbranch'origin/base'intofeature#Conflicts:#Parameter.java##Itlookslikeyoumaybecommittingamerge.#Ifthisisnotcorrec

svn - 使用 git-svn 将 svn 分支 merge 回主干并将主干 merge 回分支

所以我正在使用git并与svn存储库进行交互。我有一个看起来像这样的svnTRUNK:A-B-C-D还有一个在提交B或C分支的svnbug_fixes分支:-c-d-e-f-g-h-i现在我需要将我的svn分支中的cdefghi提交返回到master分支中。我知道我可以做一个压缩提交,我们称它为压缩SQUASH(它会包含cdefghi),但似乎我必须杀死bug_fixes分支并启动一个新分支才能干净利落地继续。此处:http://blog.red-bean.com/sussman/?p=92他们建议:checkout分支。mergemaster的更改到分支。Checkout大师。mer

git - 如何自定义 git rebase --interactive 提交消息的格式?

我在本地工作时使用git(并且非常喜欢它),并且我遵循类似于thisarticle中描述的工作流程.所以基本上,当开始一个新功能时,我为它创建一个分支,经历通常的hack然后提交周期,当我认为我完成了它时,我使用gitrebase将它压缩成一个提交--interactivemaster,我总是最终将大量提交消息编辑成类似于文章中示例的内容,转载于此:[#3275]UserCanAddACommentToaPost*AddingCommentmodel,migrations,spec*AddingCommentcontroller,helper,spec*AddingCommentrel

git - 如何在解决冲突的过程中提交长时间的 Git merge

我正在进行一项大型merge,其中包含300多个冲突文件。我想使用mergetool解决这些问题,但我不可能一次完成所有这些。我如何提交merge然后稍后返回并继续相同的merge?通常情况下,如果索引中存在冲突,git似乎不允许您提交。 最佳答案 我假设“不能一口气完成”你的意思实际上是“想在我完成之前做一些其他事情”——否则你可以将部分解决的merge留在你的工作树中。首先,在遇到任何麻烦之前,请注意您可以简单地创建存储库的另一个克隆-部分解析的merge可以保留在一个中,而您可以在另一个中进行其他工作。综上所述,如果您真的想保

java - 如何在 JGit 中 merge ?

我如何在JGit中merge?假设我想mergemaster和foo分支,我该怎么做? 最佳答案 要merge,您可以在CheckoutCommand之后使用MergeCommand(在包org.eclipse.jgit.api中)。给大家举个例子,因为Jgit确实缺少例子:Gitgit=...//yougetitthroughaCloneCommand,InitCommand//orthroughthefilesystemCheckoutCommandcoCmd=git.checkout();//Commandsarepartof

git - 什么是 git 中的普通 merge ?

有时,当我在一个简单的文件更改提交后执行pull而不是rebase时,我会在主日志中看到以下内容:Trivialmerge但是有什么变化没有差异?这条日志消息有什么意义?有什么我不知道的变化吗?吓到我了。 最佳答案 git不会在任何时候将此消息插入到日志中。我将大胆猜测并假设您已在gitweb中看到此消息。如果组合diff没有输出,gitweb会打印此消息。当唯一的差异都在block中时,只有merge的一侧发生更改,并且此更改是在merge中未修改的情况下发生的,就会发生这种情况。这基本上意味着没有冲突,也没有在merge提交中添