Rebase的使用以及修改远程库后rebese遇到的冲突问题

2023-05-16

我平常进行git操作的顺序如下:

  1. 首先在vscode打开项目所在的文件夹

  2. 然后在VS Code的Terminal 中将该文件夹初始化为git仓库

    git init
  3. 然后添加远程库

    git remote add origin git@github.com:你的仓库名
  4. 建立完本地仓库与远程仓库连接,就可以开始推送。

  5. 我习惯使用rebase方式推送(merge与rebase的区别可见博主 ellenxx),推送流程为:

    git add .
    
    git commit -m "feat: The change of this version."
    
    git pull origin master --rebase
    
    git push origin master --force (首次推送建议 git push -u origin master --force)
    

    但是我这次发现README写的有错别字,所以在远端README直接编辑修改了readme.md文件,然后想使用git pull origin master --rebase将其同步到本地,出现了冲突:

    fatal: It seems that there is already a rebase-merge directory, and
    I wonder if you are in the middle of another rebase.  If that is the
    case, please try
            rm -fr ".git/rebase-merge"
    and run me again.  I am stopping in case you still have something

 中间又去掉--rebase       git pull origin master了一下  也出现一些错误,也记录一下:

git pull origin master

From gitee.com:funpony/learn-tex
 * branch            master     -> FETCH_HEAD
Auto-merging README.md
CONFLICT (content): Merge conflict in README.md
Automatic merge failed; fix conflicts and then commit the result.

然后参考git pull报错:Auto Merge Failed; Fix Conflicts and Then Commit the Result._谁不小心的的博客-CSDN博客

如果我们确定远程的分支正好是我们需要的,而本地的分支上的修改比较陈旧或者不正确,那么可以直接丢弃本地分支内容,运行如下命令(看需要决定是否需要运行git fetch取得远程分支):

git reset --hard origin master

fatal: ambiguous argument 'origin': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
HEAD is now at 2bc3331 update README.md.

然后重新使用git pull origin master --rebase之后提示如下:

From gitee.com:funpony/learn-tex
 * branch            master     -> FETCH_HEAD
fatal: It seems that there is already a rebase-merge directory, and
I wonder if you are in the middle of another rebase.  If that is the
case, please try
        git rebase (--continue | --abort | --skip)
If that is not the case, please
        rm -fr ".git/rebase-merge"
and run me again.  I am stopping in case you still have something
valuable there.

 然后根据提示git rebase --continue

git pull origin master --rebase

git rebase --continue

Successfully rebased and updated refs/heads/master.

便可继续git push origin master --force更新到本地,然后README就更新到本地了。

 git push origin master --force

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rebase的使用以及修改远程库后rebese遇到的冲突问题 的相关文章

  • 使用 git 和 meld 进行交互式变基的三向合并中的三个文件是什么?

    假设我做了一个交互式变基git rebase i 如果出现一些冲突 我可能会遇到合并冲突并被要求进行三向合并 使用meld 我看到三个窗口 LOCAL 左边 中 以及REMOTE 正确的 在这里由 我的意思很简单meld不提供一些特殊名称来
  • 如何在强制推送基础分支后更新我的功能分支。我们只使用rebase,禁止合并

    我们正在使用 git 中的一个非常简单的结构 首先我们有我们的master branch 下面我们有develop 最后我们可以有任何feature branch 我们仅使用 rebase 来更新分支上的历史记录 然后转发到上述分支 每周
  • 为什么 git rebase 的合并冲突通常比合并少?

    我经常听到有人说 与 git merge 相比 使用 git rebase 可以减少合并冲突的数量 但我从未找到解释为什么会出现这种情况 当两个人都修改同一行代码时 简单地在另一组更改之上重放一组更改并不能神奇地消除固有冲突 那么是什么让
  • 当分叉项目都在发展时,Git 的良好实践可以使其源代码保持最新

    Context 我是主要作者立即下一步 https github com UnlyEd next right now这是一个开源 样板 包含使用 Next js 框架构建 Web 应用程序的多个 预设 每个预设都带有内置功能 并且旨在进行分
  • 如何在 `git merge` 之后使用 `git rebase -i` 而不会弄乱事情?

    我有以下情况 我对本地存储库进行了一些提交 然后将另一个分支 约 150 次提交 大量合并到主分支中 这里面有很多冲突 现在 我想将合并之前所做的提交移到推送之前的提交之后 通常情况下 我会使用rebase i for it 不幸的是 默认
  • 为什么重放现有提交时 git pull --rebase 会失败?

    我不明白 当我 git pull rebase 远程分支 时 它会将我的 HEAD 恢复到其共享根 然后开始重放同时发生的所有远程提交 为什么这些提交有时会失败 它们是干净工作区上的干净提交吗 这不就是rebase的重点吗 你确定不是吗yo
  • 如何保存 git“rebase 正在进行中”?

    我正处于一个大型的 正在进行的重新调整 之中 有很多冲突 我想搁置这一进展并尝试使用另一种方法来解决此问题 有什么办法可以拯救进行中变基以便我稍后可以完成它 如果您在变基过程中遇到冲突的合并 那么您就会陷入困境 以下是您的原因 方式和内容c
  • git pull --rebase:传递 --rebase-merges

    这是我在重新调整当前分支的基础时通常会做的事情 同时防止本地分支变平 git fetch origin git rebase r origin develop r is rebase merges 我更喜欢 preserve merges
  • git rebase master 功能会产生(重命名/删除)冲突,而 git rebase -i master 功能则不会

    我在使用 git 时遇到了一种奇怪的情况 其中我有一个功能分支修改了一些文件并删除了一个文件 foo js 当我通过 git rebase master feature 重新基于master时 我遇到了以下类型的冲突 CONFLICT re
  • git rebase -i HEAD~7 -- 在编辑器中仅显示“noop”

    我正在尝试将位于 HEAD 的提交压缩为后面的提交 当我跑步时git rebase i HEAD 7 但是 我只看到一个noop在编辑器中 我完全不知道这是如何运作的 我在分行工作 cleanup 我创建的 使用checkout b cle
  • Git:使用 git rebase 更改已推送的提交消息

    我们正在开发一个有多个分支的 git 存储库 如果所有提交都以功能 ID 作为提交评论的开头 该评论必须得到公司针对该项目的批准 则系统仅允许将更改部署到实时系统上 我们在一次提交中有一个拼写错误 该提交超过了过去的 100 次提交 有几个
  • 为什么“git bisect”分支不知道?

    我正在尝试找到自过去一天在一个长期存在的分支 将在很久以后发布 上提交以来出现的错误的来源 该分支称为特征 x 但有一个错误 我发现我的脚本中没有预期的行为 到目前为止 这些行为可能已在任何提交中引入 特别是因为 master 的功能在 f
  • 按照之前解决冲突的方式解决 git rebase 冲突

    我决定从其他旧版本控制系统追溯提交 Git 中从未有过的历史记录 因此 我创建了一个孤立分支 newroot 并将来自其他版本控制系统的提交导入到其中 以下问题在 Git 中的根提交之前插入一个提交 https stackoverflow
  • 合并/其他提交交错后的交互式变基

    我典型的 git 工作流程是从 master 分支中创建一个功能分支 进行小的提交 同时定期从 master 合并以跟上 然后我在 github 上打开一个拉取请求 当它被接受时我将删除该分支 我想以交互方式进行更多变基 但是当我这样做时
  • 在发出拉取请求之前我应该​​使用 dev 分支进行变基吗?

    我们当前的工作流程 从 dev 创建一个功能分支 开发功能并推送分支后 执行以下操作 git checkout dev git pull rebase 开发中 git checkout my feature branch git rebas
  • git 交互式变基:停止而不提交

    长话短说 有办法进去吗git rebase i停止编辑 没有提交 ID TLDR 更长的版本 背景 With git rebase i 我得到一个文本编辑器 我可以在其中定义命令列表 从pick COMMIT ID在每一行上 其中一个选项是
  • 变基后无法推送到分支

    我们使用 git 并有一个 master 分支和开发人员分支 我需要添加一个新功能 然后将提交重新设置为 master 然后将 master 推送到 CI 服务器 问题是 如果我在变基期间发生冲突 我无法在变基完成后推送到我的远程开发人员分
  • 运行“git gui”时如何跳过“松散对象”弹出窗口

    当我运行 git gui 时 我会看到一个弹出窗口 上面写着 This repository currently has approximately 1500 loose objects 然后它建议压缩数据库 我之前已经这样做过 它将松散对
  • git rebase -i ——为什么它改变提交哈希值?

    所以我或多或少熟悉变基的工作原理 但直到最近我通常只做了一个git rebase i HEAD 20 并修改了需要修改的内容 我很惊讶地发现这将修改所有 20 个提交的哈希值 即使我采取的唯一操作是压缩最后两个提交 我不确定是什么导致其他
  • Git:如何变基到特定提交?

    我想变基到特定的提交 而不是另一个分支的 HEAD A B C master D topic to A B C master D topic 代替 A B C master D topic 我怎样才能做到这一点 您可以通过在您喜欢的提交上创

随机推荐