问题标签 [rebase]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
9800 浏览

git - 无法理解 Git 分支、合并和变基

我知道线程说 rebase 是针对 teamMates 的小更改,而 merge 是针对大更改。

我将三个队友的三个 Git 保存在以下目录结构中,我们都有相同的初始代码:

分支不在同一个 Git 中。这意味着我不能使用变基和合并。我使用 vimdiff 来同步 teamMates 之间的更改。但是,这很耗时。

我没有成功尝试创建以下目录结构,其中所有分支都在一个 Git 下:

但是,我为我和我的队友运行克隆命令:

我在为队友运行第二个克隆后收到错误消息

我应该与 3 人团队一起使用哪种目录结构,以便我可以使用rebasemerge命令?

0 投票
4 回答
3095 浏览

git - 什么时候需要 git-rebase?

每次我阅读 git-rebase 文档时,我都会迷路。对我来说,这感觉像是一种低级操作(阅读:黑魔法)。

引用文档:

假设存在以下历史并且当前分支是“主题”:

从这一点来看,以下任一命令的结果:

将会:

问题是:为什么有人想做这样的事情?

一方面,它似乎在“重写”历史,好像分支开始于不同的点;本质上,提交历史将是“一堆谎言”。

还有一点,感觉不安全。我试过一次,有很多冲突,一切都乱套了。我不记得我到底是如何解决这个地狱的,但如果我没记错的话,它是在一个临时的测试分支或类似的地方。

另一个问题:我是否因为不知道如何使用而错过了一些非常酷/省时的功能git-rebase

编辑:

相关问题:撤消 git rebase

0 投票
7 回答
21519 浏览

git - 如何在 git 中备份私有分支

我有一个本地分支,用于在 git 中进行日常开发工作。我的工作流程是:

  1. 在 local_branch 上做事,提交
  2. 获取源/主
  3. 重新定位 local_branch 以赶上来自 origin/master 的新内容

这一切都很好,但是我遇到的大多数建议都说不应该“推送”私有分支,在这些分支上定期执行变基。

这里的问题是,在这种情况下,本地分支没有备份到服务器,保存工作的唯一方法是将其合并回“可推送”分支(即 origin/master)

在这种情况下,您对工作流程有何建议?

谢谢!

更新:我意识到我最初的要求之一(避免使用外部实用程序)是不必要的限制。

我目前的解决方案是将我所有的存储库存储在一个云同步文件夹中——这样我就可以免费获得备份。

0 投票
4 回答
9557 浏览

git - 如何有效地变基和推送本地 git 分支?

我们正在使用我克隆的中央 git 存储库,并且正在本地分支上工作。

当我想让我的更改在中央存储库中可用时,我必须发出以下命令(从 开始mybranch):

我想知道是否可以使用更少的 git 命令来实现相同的目标。master和之间的几个切换mybranch特别烦人,因为我们的存储库相当大,所以它们需要一些时间。

0 投票
2 回答
391 浏览

asp.net - 如何在 ASP.NET 页面中对超链接和内容进行变基?

我有一个 ASP.NET 页面来处理“404 页面未找到”,它是通过在我的 web.config 文件中配置<customErrors>部分并在 IIS 管理器中设置 404 错误的自定义错误页面来设置的。

它对我网站根目录中的页面按预期工作,但在站点的子目录中不起作用 - 我的自定义错误页面中的超链接和内容具有错误的 url 基础。

我的错误页面中的所有链接都是服务器端控件(runat="server"),并且它们的链接基于“~/”。

当我浏览http://mysite/nosuchfolder/nosuchfile带有链接的页面时,页面呈现的链接认为它是从根目录提供的,而不是从根目录提供服务,nosuchfolder因此所有链接在浏览器中都被破坏,因为浏览器基于nosuchfolder.

有什么方法可以“告诉” ASP.NET 页面以不同的文件夹/文件名重新建立链接?

笔记:

  • 大部分页面模板是从母版页呈现的
  • 我正在运行 IIS6 并将自定义错误 404 设置为 URL:/error404.aspx
  • 在我的 web.config 文件中,我已将<customErrors>部分配置为重定向到/error404.aspx
  • 作为一种解决方法,我<base>在页面中使用 HTML 标记,但我想避免这种情况
  • 我不想将所有基于“~/”的链接更改为“/”或内联基础黑客
0 投票
2 回答
8096 浏览

git - 将分支移动到新标签

我的个人 Wordpress 安装是从GitHub 上的wordpress git 镜像克隆的。我检查了分支“stable”(git checkout -b stable 2.7.1)的 2.7.1 标记,从那以后它一直运行良好。现在 WordPress 2.8 已经发布我想将我的稳定分支移动到 2.8 标签。

我尝试了以下(所有在稳定分支上),但在尝试应用每个提交时遇到冲突,似乎有些不对劲。我没有在稳定分支上进行本地更改/提交。

如何将我的稳定分支“移动”到 2.8 标签?

0 投票
5 回答
24529 浏览

git - 运行“git gui”时如何跳过“松散对象”弹出窗口

当我运行'git gui'时,我会弹出一个说

然后它建议压缩数据库。我以前做过这个,它将松散的对象减少到大约 250 个,但这并没有抑制弹出窗口。再次压缩不会改变松散对象的数量。

当我们从 Perforce 过渡时,我们当前的工作流程需要大量使用“rebase”,而 Perforce 仍然是规范的 SCM。一旦 Git 成为规范的 SCM,我们将进行定期合并,并且应该大大缓解松散对象问题。

同时,我真的很想让这个“有用的”弹出窗口消失。

0 投票
3 回答
525 浏览

svn - Git 变基到稍后将创建的分支

我正在开发一个当前在 svn 中跟踪的网站项目,但一旦其他人有时间设置新服务器和其他东西,它将转移到 git。这是一个很长的故事,但与此同时,我已经从我拥有的一些代码中创建了自己的 git 存储库,并且做了很多工作。我没有使用 git svn clone 因为我在海外,而且我的互联网连接很奇怪,需要 HTTP 代理,而且它似乎没有让 git svn 通过。无论如何,我一直在自己的 git 存储库中进行开发,但最终一旦项目真正正确导入,我将需要将我的工作重新定位到 git-svn 克隆的东西上。会git rebase为此正常工作吗?

一个复杂的问题是我实际上是在虚拟机中工作,对于许多提交,我没有意识到我没有设置 user.name 和 user.email 配置条目,所以提交来自 vm 的本地用户,这很好奇怪的。将我所有的更改收集到差异文件中,然后在创建新分支后将它们应用到新分支的顶部会更好吗?

另一个复杂情况是,之前使用 SVN 有点半心半意,所以在生产服务器上实际上存在我没有的未提交更改。实际上,我首先有一个旧版本的代码,它甚至不是 SVN 头,所以我错过了一些东西。最好的方法是什么?

最后一个问题是,如果我确实通过导入 SVN 存储库git svn(我刚刚检查过,它现在似乎可以工作)但我没有添加作者文件,我以后是否能够将我的更改重新设置到正确导入的分支上与作者文件?

哦,一个新的并发症。我自己使用 导入了 SVN 存储库git svn,这是一个艰苦的过程,在这个缓慢的连接上花了两天的大部分时间。然而,在最终完成克隆之后,我意识到在 SVN 存储库中代码都在一个子目录中,但在我的 git 存储库中,存储库的根目录也是目录的根目录。如果这有点混乱,它基本上是这样的

SVN:

\dir\codez

混帐:

\codez

如何合并这两个存储库?我希望我仍然可以使用 rebase,但这似乎是一个非常奇怪的情况。这听起来类似于子模块,但我认为这不是我所需要的。

0 投票
3 回答
5615 浏览

git - Git rebase 不断失败,需要手动合并干预

我在我的一个存储库中从 master 重新定位到“部署”分支时遇到问题。

我的回购设置如下:

通常我的工作流程是:

  1. 在主分支上进行开发......测试,微笑,提交。
  2. 结帐deploy分行
  3. 在部署分支上执行git rebase master- 这曾经可以毫无问题地工作
  4. 推送到远程然后执行cap deploy
  5. 放松

我现在遇到的问题是,当我git rebase master在部署分支上执行时,它会出现一个需要 3 路合并/手动合并的错误(我认为该错误消息真的不够通用,无法发布)。Git告诉我执行合并然后使用git rebase --continue完成 - 这永远不会奏效。

我发现“做”的工作正在运行git rebase master --interactive,清理选择列表(大约有 5 个重复的“提交”,但此列表中有不同的参考号(相同的消息),所以我会选择其中一个)然后手动进行合并。一旦我为每个提交完成了这个,我就可以继续 rebase 并且一切都很开心......

直到下一次我需要执行变基。

那么有谁知道什么是快乐的?该项目并不是真正的“秘密”,所以如果需要,我可以发布消息、日志、分支图等。

谢谢

0 投票
5 回答
1189 浏览

git - 集成商工作流程,远程仓库的 fetch-rebase-push 安全吗?

我正在使用集成器工作流程管理一个 git 存储库。换句话说,我从我的同事那里提取提交,并将它们推送到受祝福的仓库中。

在大多数情况下,我想保持提交历史是线性的,那么当我集成更改时可以做 arebase而不是 a吗?merge这是一个例子:

我担心远程仓库在执行 next 时会发生什么git pull。git 是否能够处理这个问题,或者coworkerrepo 在 期间会失败pull,因为提交在origin?

更新:我最初的示例是从“master”重新定义“coworker”分支。我的意图恰恰相反,将“同事”提交放在主人之上。所以我更新了这个例子。