相关疑难解决方法(0)

重新分配包括其所有孩子在内的分支

我有以下Git存储库拓扑:

A-B-F (master)
   \   D (feature-a)
    \ /
     C (feature)
      \
       E (feature-b)
Run Code Online (Sandbox Code Playgroud)

通过重新feature分支我希望改变整个子树(包括子分支):

$ git rebase feature master

A-B-F (master)
     \   D (feature-a)
      \ /
       C (feature)
        \
         E (feature-b)
Run Code Online (Sandbox Code Playgroud)

但是,这是实际结果:

      C' (feature)
     /
A-B-F (master)
   \   D (feature-a)
    \ /
     C
      \
       E (feature-b)
Run Code Online (Sandbox Code Playgroud)

我知道我可以通过执行以下方法手动修复它:

$ git rebase --onto feature C feature-a
$ git rebase --onto feature C feature-b
Run Code Online (Sandbox Code Playgroud)

但有没有办法自动重组分支,包括其所有子/后代?

git version-control branch rebase git-rebase

88
推荐指数
3
解决办法
1万
查看次数

当git使用一些共享历史记录重新定义两个分支时,是否有一种简单的方法可以使共同历史保持常见?

假设我们有以下修订图:

A-X-Z--B
     \
      \-C
Run Code Online (Sandbox Code Playgroud)

在B和C之前使用A.进一步假设我从上游重新绑定A,创建一个新的提交A*,然后将B和C重新绑定到A*上.生成的修订图如下:

A*-X'-Z'-B
 \
  \-X"-Z"-C
Run Code Online (Sandbox Code Playgroud)

请注意,不再共享共享历史记录.有没有一种简单的方法可以解决这个问题,除了说,重新定义B然后明确地将C重新定位到Z'.换句话说,是否有更好的方法可以同时自动修改多个分支以保留共享历史记录?只是人为地在分割点放置一个标记,或者手动检查图形以找出修改C以保留共享历史记录的提交的sha1似乎有点尴尬,更不用说开放可能性了错误,特别是因为我必须在每次改变时都这样做,直到我检查上游分支的变化.

git git-rebase

19
推荐指数
1
解决办法
6396
查看次数

重新设置分支基础而无需签出

因此,我正在一个有时构建时间较长的项目中进行构建,并且该构建经常被破坏。如果我有一个较旧的分支并正在进行一些工作(已提交,但基于一个较老的父级),则运行会git checkout oldbranch更改工作目录以表示所有旧代码,这使我需要再次运行完整版本。

但是,通常我只修改了一个或两个文件,其余的不需要重置。我想做的是将该分支重新设置为当前的主头,并保留对文件的那些更改。

基本上,如果a.rsb.rs已被修改,那么我需要一种使这些更改基于当前文件头的方法,而不涉及除这两个文件以外的任何文件。

有这样做的git-ish方式吗?目前,我正在使用补丁文件来执行此操作。

git rebase

10
推荐指数
3
解决办法
2291
查看次数

交互式变基后保留中间分支指针

在处理我的功能分支时,我不断地对它们进行重新排序和压缩,git rebase -i以保持我的历史记录的更清晰版本。有时我会开发多个相互依赖的功能(我团队的规则是使 PR 尽可能小,因此较大功能的一个原子块通常会成为其自己的功能分支)。由于此工作流程,我通常会在重新设置分支基础后手动重新指向分支。有没有办法自动将这些指针移动到它们应该着陆的位置?

例如,在此图中:

5bab4818e (HEAD -> cell-toggle-comp) Added cell-toggle component
d55cab881 (toggle-comp) Toggle: Added honey traceability comment
4240f0ac3 Made Toggle a named export and replaced references to obsolete <ui> alias
90a0b2452 Refactored Switch instances to toggle
e15c758a0 Updated Switch component to latest specs (and renamed things to match design lingo)
d53090e93 (fix-switch-reference) Fixed Switch reference that was being imported from React Native instead of src/components
4a214cb72 (cell-text-selection-comp) Added CellTextSelection ui component
cef3b5716 (origin/master, origin/HEAD, master) …
Run Code Online (Sandbox Code Playgroud)

git rebase git-rebase git-interactive-rebase

5
推荐指数
0
解决办法
115
查看次数