草庐IT

git - Squash merge 后 rebase ?

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

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

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

git rebase -i HEAD~7 -- 在编辑器中只显示 "noop"

我正在尝试将位于HEAD的提交压缩为后面的提交。当我运行gitrebase-iHEAD~7,然而,我只看到一个noop在编辑器中!我对这应该如何工作完全感到困惑。我在我创建的分支(cleanup)中工作(在我在checkout-bcleanup...中找到的SHA1上使用reflog)在我拥有第一个rebase之后经验,我不小心删除了所有这些提交;重点是,我不确定分支的父级是什么(如果重要的话,在这里)。我只是想做我多次阅读的内容:我想稍微修改一些不是最近提交的提交代码。我不知道这是申请“压缩”还是只是修改,我不知道。当编辑器在运行上面显示的rebase命令后启动时,我也在STDOUT

git - 有没有一种快速的方法可以将长期提交到 master 分支的历史 rebase ?

过去两周我一直在研究一个功能,并为它创建了一个单独的分支。问题是这项任务花了我很长时间,而且我没有定期将我的分支重新设置为master。我最终得到了100多个提交,现在当我尝试使用gitrebasemaster将分支重新设置为master时,它需要永远,因为我需要检查每个提交的冲突,修改它,gitadd然后gitrebase--continue.有没有更简单的方法来做到这一点? 最佳答案 这部分取决于您如何完成100多次提交以及在此期间发生了什么。四种策略可能有用:减少rebase的提交次数如果你有100次提交的漂亮清晰的流,从不修

Git rebase,跳过 merge 提交

开始于hack---F1----M1----F2(feature)//C1-----C2----C3(master)我想结束hack---F1----M1----F2(feature)//C1-----C2----C3---F1'---F2'(master)到目前为止,我拥有的最好的是gitcheckoutfeaturegitcheckout-btempgitrebase-i--ontomasterhacktemp*Bigdrawback:manuallyremovethemerged-inC2andC3fromlistofcommits*gitcheckoutmastergitmer

git - 如果我在推送后 rebase 会发生什么?

我总是听说这是一件可怕的事情,是我永远不应该做的事情。例如,这是SourceTree中pull对话框的样子:所以我很好奇,如果我推送更改,然后重新设置并再次推送它们,会发生什么情况,会有多糟糕?如果我以这种方式破坏存储库,如何修复存储库? 最佳答案 什么都不会发生,但你的下一次推送将不会被接受。除非你强制推送。这也不会破坏远程存储库,因此也不是那么糟糕。当你有更多人使用这个repo时,事情就变糟了。重写历史可能会给其他人带来一些困惑,因为他们将从远程获取新的更改。特别是如果他们对git没有很好的了解。根据本地存储库的状态,pull重

git - 通过 git rebase --interactive 编辑提交时如何保留提交消息?

我目前正在gitrebase--interactivesession中编辑提交。我正在按照HowcanIsplitupaGitcommitburiedinhistory?的建议进行操作即我运行gitresetHEAD^并进行了修改。现在我希望rebase继续,这需要我提交我的更改。我想修改我的旧提交消息,但问题是,如果我运行gitcommit--amend,我会得到before提交的提交消息我实际上正在修改的那个——我当然不想将我的更改merge到那个提交中。那么我该如何检索我现在正在处理的提交的旧提交消息呢? 最佳答案 同时Cha

svn - git svn rebase : Incomplete data: Delta source ended unexpectedly

我一直在维护thegitmirror的thewatirproject.几周前的某个时候,有人准备提交他们的第一个基于git的补丁。不幸的是,由于该项目的多平台性质,我们遇到了一些关于行尾(CRLF与LF等)的问题。我尽我所能设置theautocrlfoption(“输入”),并进行一些--hard重置。然而,几天后,每日更新(gitsvnrebase)出现了这个错误:Incompletedata:Deltasourceendedunexpectedly我试过用谷歌搜索要做什么,但即使删除.git/config中的autocrlf设置也无济于事。我担心工作副本已损坏,但我希望它不是不可恢

git - 使用 git rebase 时自动跳过空提交

通常,您必须执行gitrebase--skip,如果有一个开关可以自动跳过这些空提交,那就太好了。有人知道怎么做吗? 最佳答案 非常古老的话题,但对我来说是搜索引擎上的第一个结果。我终于发现有一个--empty参数可以取以下值之一:keep、drop和ask。文档链接:https://git-scm.com/docs/git-rebase#Documentation/git-rebase.txt---emptydropkeepask所以你现在可以简单地做gitrebase...--empty=drop

eclipse - 我怎样才能在 eGit 中做相当于 git rebase -i HEAD~2 的操作?

我知道如何在Eclipse中使用eGitrebase到特定分支或标记,但我还没有找到使用eGitrebase到特定sha1的方法。我想这样做是为了在推送到上游之前压缩提交(即,执行gitrebase-iHEAD~n,其中n是我想要重新设置基准的提交之前的一些提交)。这可以用eGit实现吗?如果没有,我应该使用另一个Eclipse插件来提供此功能吗? 最佳答案 EGit有rebase,但它还没有你要求的交互式rebase。 关于eclipse-我怎样才能在eGit中做相当于gitrebas