相关疑难解决方法(0)

确定章鱼合并期间冲突中的哪些分支

我们正在尝试使用git octopus合并来构建一个流程来整合常规版本的许多主题分支.当发生冲突时,似乎没有输出哪些分支发生冲突.在章鱼合并之后,有没有人知道确定冲突来自哪些分支的方法?

谢谢,-Kal

git version-control merge process release-management

8
推荐指数
1
解决办法
4741
查看次数

Git Rebase似乎已经有效,但所有提交仍然在日志中显示...我处于什么状态?

我想我使用rebase压缩了最后40次提交.我遵循本指南以确保我没有做任何愚蠢的事 - http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html

问题是,我认为我做了一些愚蠢的事.

无法保存(交互式)文本文件,因此似乎rebase失败了,但它给出的消息和下面的一些其他内容表明它可能有效.

不知道我在哪里或做什么(甚至我的名字是什么).这是我做的:

  • 我输入了git rebase -i HEAD~40
  • 我编辑了一个文本文件,通过将所有行改为以"squash"开头,除了顶部之外
  • 我在Windows上,使用EditPad ...文件无法保存!哦,不...(只读/权限?).
  • 我把它保存到一个随机目录.
  • 命令行显示某种成功(不幸的是我丢失了消息).我不知道它如何成功或知道我保存的文件在哪里...

  • git rebase - 继续说"没有进行任何改变?

  • git reflog建议它有效(据我所知至少,'rebase'这个词在最近的40多次提交中显示)例如:

    9992445 HEAD @ {8}:rebase:报告工作

  • 但是跑步git log显示了所有40个提交我刚刚'重新'

这看起来不太好.有谁知道我在哪个州?我是不是很清楚,这是一个僵尸变形吗?

git rebase

8
推荐指数
1
解决办法
4010
查看次数

为什么在git reset(--mixed)之前显式调用git reset --soft

在git docs(以及众多SO线程)中,建议使用此重置方法:

$ git reset --soft HEAD^ ;# go back to WIP state  <2>
$ git reset                                       <3>
Run Code Online (Sandbox Code Playgroud)

0.2.这将从提交历史记录中删除WIP提交,并将工作树设置为创建快照之前的状态.

0.3.此时,索引文件仍包含您作为快照WIP提交的所有WIP更改.这将更新索引以将您的WIP文件显示为未提交.

https://www.kernel.org/pub/software/scm/git/docs/git-reset.html

显然这很好,但似乎这两个命令可以被替换

$ git reset HEAD^
Run Code Online (Sandbox Code Playgroud)

(相当于)

$ git reset --mixed HEAD^
Run Code Online (Sandbox Code Playgroud)

这应该将HEAD指针和索引重置为先前的提交.实际上这个命令和前两个命令的结果有什么区别吗?如果没有,是否有理由更喜欢两阶段流程?或者它只是在文档中以这种方式完成,以明确说明--soft的行为?

git

6
推荐指数
1
解决办法
352
查看次数

如何将所有先前的提交合并为一个提交?

上下文: 在GitHub上启动项目并且一直在试验git命令.该项目的历史是凌乱的.

问题:如何删除所有历史记录并将所有提交消息替换为"已上载项目源的初始版本"?

git github

5
推荐指数
1
解决办法
475
查看次数

为什么“Git rebase”会将提交压缩到先前的提交中,而不是随后的提交中?

当我压缩分支中的提交(使用 git rebase -i)时,我总是很恼火,因为压缩的提交与旧的提交而不是新的提交结合在一起。

我不明白为什么要这样设计。当我提交正在进行的工作 (WIP) 时,它表示未编译或未完成的代码。当我最终承诺“它终于起作用了!” 在合并之前进行提交和压缩,将这些 WIP 提交合并到“它终于可以工作了!”中更有意义。提交,而不是与之前的提交合并。压缩 WIP 本质上是用我知道无法编译的代码“破坏”了之前的提交。

为了解决这个问题,我的工作流程是压缩来自“它有效!”的提交。一直回到第一次 WIP 提交之前的状态。但这不是很愚蠢吗?其他人在做什么,这使得将 WIP 压缩到之前的提交有意义?

git rebase squash

5
推荐指数
1
解决办法
1852
查看次数

如何在Git中线性化"分裂"合并历史?

它必须非常明显,但我发现无法做到这一点.每个手册都将变基描述为现有分支或简单交互式变基的顶部,这就是全部.假设,我有一个类似钻石形状的git历史:

*   949430f Merge commit (D) (HEAD, mybranch)
|\  
| * e6a2e8b (C)
* | 3e653ff (B)
|/  
*   9c3641f Base commit (A)
Run Code Online (Sandbox Code Playgroud)

我希望像以下一样保持历史:

*   949430f Combined commit (BCD)
|  
*   9c3641f Base commit (A)
Run Code Online (Sandbox Code Playgroud)

提交B和C可能会被融化或丢弃,无所谓,我只想保留结果.此外,我不想因为令人讨厌的恐慌解决而还原提交.

这里我试过的事情:

1)我不能通过简单压扁B和C来避免这种情况

git rebase -i HEAD~2
...
p 3e653ff (B)
f e6a2e8b (C)
...
Could not apply a91f3a4
Run Code Online (Sandbox Code Playgroud)

嗯,这有点可以理解,有一些冲突.

2)我无法通过压扁来解决这个问题.

git rebase -i -p HEAD~3
...
pick 9c3641f Base commit (A)
f 3e653ff (B)
f e6a2e8b (C)
pick 949430f Merge commit (D)
...
error: …
Run Code Online (Sandbox Code Playgroud)

git rebase

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

git中软复位和修改提交之间的区别

我正在学习git并且遇到了git soft reset并修改了git中的提交.我看到他们两个都是为了同一个目的.两者之间有任何显着差异.请告诉我,因为我无法看到两者之间有任何区别.

git git-reset

2
推荐指数
1
解决办法
526
查看次数

为什么结帐和重置会更改索引?

我认为索引仅适用于您为下一次提交暂存的文件,但重置和checkout都会更新索引:

git checkout

要准备工作,请通过更新工作树中的索引和文件来切换到它,

git

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