相关疑难解决方法(0)

为什么`git rebase`应用所有提交而不是仅应用最后一个提交?

我知道它是如何git rebase工作的,我已经在生产中使用了一段时间.它将分支的所有提交重放到另一个分支上.它会重写您当前分支的历史记录.

我最近开始玩git rebase --skip,虽然我最初害怕它.我意识到它只是跳过那个承诺就好像从未发生过一样.

在我看来,在这两种情况下生成的工作目录是相同的:

1)除最近的提交外,所有提交都被跳过

2)重放所有提交,以便解决提交以支持their分支.

提醒: their是您在重新绑定时当前所在的分支.
其他提醒:我对工作目录特别感兴趣.这是一样的吗?

工作目录是否是相同的结果?

git git-rebase

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

撤消重新定位功能分支到另一个功能分支

我正在开发一个开发分支和两个不同的(本地)功能分支.

a -- b -- e                  <-- develop
     \     \
      \     f -- g           <-- feature-branch-1
       \
        c -- d               <-- feature-branch-2
Run Code Online (Sandbox Code Playgroud)

我通过运行将来自feature-branch-1的更改合并到feature-branch-2中

git checkout feature-branch-2
git rebase feature-branch-1
Run Code Online (Sandbox Code Playgroud)

如果我理解正确,它现在看起来像这样:

a -- b -- e                  <-- develop
          |\
          | f -- g           <-- feature-branch-1
           \
            f -- g -- c -- d <-- feature-branch-2
Run Code Online (Sandbox Code Playgroud)

然而,我意识到我在分支1中引入了一个我不知道如何修复的错误.所以这个错误现在也在分支2中,并阻止我将feature-branch-2合并到develop中.我想回到原来的状态

a -- b -- e                  <-- develop
     \     \
      \     f -- g           <-- feature-branch-1
       \
        c -- d               <-- feature-branch-2
Run Code Online (Sandbox Code Playgroud)

这样我就可以安全地将feature-branch-2合并到develop中.我怎样才能做到这一点?

git git-rebase feature-branch

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

尝试撤消 rebase 时卡住

在执行两个 Git 命令撤消 rebase 后,我遇到了一些错误。

git checkout topic 
git reset --hard origin/topic
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下这是什么以及如何解决吗?我不想再次丢失我的代码。

git status 给我看这个

    Last command done (1 command done):
    pick c326b089c8 Revert "Conflicts removed from master, OffscreenCanvas changes ready for merge" Will rebase branch and resolve conflicts. This reverts commit 7357f2e5444bed9e93e1380331464a5332319d09.
   Next command to do (1 remaining command):
   pick 90bec670b4 Changes reverted in conflicting files. OffscreenCanvas API ready to be merged.
  (use "git rebase --edit-todo" to view and edit)
  You are currently editing a commit while rebasing …
Run Code Online (Sandbox Code Playgroud)

git

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

我可以恢复交互式变基期间丢失的提交吗?

所以我遇到了这种奇怪的情况。

我正在对 4 次提交进行交互式变基。我尝试挤压,但我做错了,出现以下错误:

error: cannot 'squash' without a previous commit You can fix this with
'git rebase --edit-todo' and then run 'git rebase --continue'. Or you
can abort the rebase with 'git rebase --abort'.
Run Code Online (Sandbox Code Playgroud)

我决定运行git rebase --edit-todo,当我这样做时,只出现了最后一次提交。我将其从 更改为squashpick然后运行git rebase --continue,但现在看来我试图压缩的其他 3 个提交已经不存在了。
所以我早上的工作似乎失败了。
一定有办法恢复这些,对吗?
我该怎么做?

git github gitlab git-interactive-rebase

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

如何在 Magit 中撤消变基?

在此输入图像描述

我不想要这个部分Rebasing feature/thread-temp onto 02fc3a4771e03d0ba98b9e52305117b4cfa05fce

我尝试git reset --soft HEAD~1并重新承诺,但这并不能拯救我..

我不知道我是怎么到这里的,因为我隐约知道 rebase 是什么,并且无意在这里使用它。

我怎样才能回到正常状态?

它与其他问题的不同之处在于我可以使用特定于 Magit 的方法。

git magit

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

使用 git rebase 后我可以找回已删除的文件吗?

今天打算用shell上传本地项目文件到Github,可惜在调用“git rebase”命令后删除了本地文件。我怎样才能找回被删除的文件?

git github

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