Git要提交到B分支。但是误提交到A分支,然后推送到远程仓库。然后撤回并重新提交到B分支。

Git要提交到B分支。但是误提交到A分支,然后推送到远程仓库。然后撤回并重新提交到B分支。

分为两种情况

A分支要保留这次更改。

如果你不小心将最新的提交提交到了 A 分支而不是 B分支,并且已经将这一次提交推送到了远程仓库,你可以按照以下步骤来修复这个问题:

  1. 切换到 B 分支:
git checkout B
  1. 使用 git cherry-pick 命令将 A 分支上的最新提交应用到 B 分支。首先,查找 A 分支上的提交哈希值,例如,假设最新提交的哈希是 abc123
git log A
  1. 使用 git cherry-pick 应用该提交到 B 分支:
git cherry-pick abc123
  1. 解决任何合并冲突(如果有的话)。
  2. 推送修正后的 B 分支到远程仓库:
git push origin B

现在,你的 B 分支应该包含最新的提交,而 A 分支保持不变。

A分支不要保留这次更改。(大多数场景)

  1. 首先,使用以下命令查找 A 分支上你要回滚到的提交的哈希值,假设该提交的哈希是 old-commit-hash
git log A
  1. 然后,使用以下命令在 A 分支上回滚到指定的提交 old-commit-hash
git checkout A
git reset --hard old-commit-hash

这将回滚 A 分支到指定的提交,丢弃了最新的提交。(A分支上一次的提交本地的代码已经不在了,但是远程的还在)

  1. 然后,切换到 B 分支:
git checkout B
  1. 使用 git cherry-pick 命令将最新的提交应用到 B 分支
git cherry-pick old-commit-hash
  1. 解决任何合并冲突(如果有的话)。
  2. 推送修正后的 B 分支到远程仓库:
git push origin master
  1. 切换到A分支,更新A分支远程仓库的代码。
git checkout A
git push -f origin A

现在,A 分支回滚到了指定的提交,而 B 分支包含了最新的提交。
请确保在执行这些操作之前备份任何重要数据,以防发生意外情况。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如果你想撤回已经push到远程代码,可以使用以下命令: 1. 首先,使用git log命令查看你最近的提交记录,找到你想要撤回提交的commit id。 2. 然后,使用git revert命令撤回提交。例如,如果你想要撤回commit id为abc123的提交,可以使用以下命令: git revert abc123 3. 接下来,你需要将撤回提交push到远程仓库。使用git push命令即可: git push origin master 注意,这里的master是你的分支名称,如果你使用的是其他分支,需要将其替换为对应的分支名称。 4. 最后,你需要将撤回提交推送远程仓库。使用git push命令即可: git push origin master 注意,这里的master是你的分支名称,如果你使用的是其他分支,需要将其替换为对应的分支名称。 这样,你就成功地撤回了push到远程仓库代码。 ### 回答2: 在进行 Git 开发的过程中,我们常常将本地的代码推送远程仓库中,但有时候在推送之前可能发现代码或不完整,此时就需要进行撤回操作。下面介绍两种方式实现撤回已经推送远程代码。 1. revert 操作 revert 操作可以撤回已经推送远程代码,但是它并不是直接删除该代码,而是将其视为一个新的提交,相当于在原有的提交中新增了一条反向提交信息,撤回这次提交的同时保留了原提交历史。撤回已经推送远程代码可以通过以下步骤实现: 1.1. 打开 Git Bash 终端,并进入需要撤回代码仓库目录。 1.2. 使用 git log 命令查看需要撤回代码提交记录。 1.3. 根据查看到的提交记录,使用 git revert SHA 命令进行回滚,其中 SHA 为需要撤回代码所在提交的标识符。 1.4. 在弹出的文本编辑器中输入撤回提交的信息。 1.5. 保存并退出编辑器,提交修改。 1.6. 使用 git push 将本地修改推送远程仓库中。 2. reset 操作 reset 操作是将本地仓库回退到某一个版本,相当于是删除了不存在于指定版本之后的所有提交记录,不仅可以删除本地未推送代码,也可以撤回已经推送远程代码,但是要注意的是,这样操作彻底删除历史提交的所有信息,因此如果不确定是否需要删除,建议使用 revert 操作。使用 reset 操作撤销已经推送远程代码可以通过以下步骤实现: 2.1. 打开 Git Bash 终端,并进入需要撤回代码仓库目录。 2.2. 使用 git log 命令查看需要撤回代码提交记录。 2.3. 根据查看到的提交记录,使用 git reset HEAD~X 命令将代码回退到指定版本,其中 X 为需要回退的版本号。 2.4. 使用 git push -f 命令强制推送修改,覆盖掉已经推送远程代码。需要注意的是,这么做有可能导致团队合作出现问题,因此在推荐团队成员和管理员在进行此操作之前先进行充分的沟通和协商,避免操作错对项目造成不好的影响。 总之,撤回已经推送远程代码可以使用 revert 或 reset 操作,但是要视情况而定,根据实际需要进行选择。同时,为了避免不必要的麻烦,建议使用 Git 之前学习好相关的操作指南,高自己的代码管理能力。 ### 回答3: Git是一个非常流行的版本控制系统,常常用于协同工作、代码管理等方面。在Git中,push命令可以将本地代码库的修改推送远程仓库。但有时候我们发现自己不小心将错代码提交到了远程仓库,这时就需要撤回之前的提交Git的撤销操作主要有两种,分别是撤销本地的提交撤回远程仓库提交。 撤销本地的提交:如果你还没有将本地代码推送远程仓库,那么可以通过以下命令撤销本地的提交: ``` git reset --soft HEAD^ ``` 该命令的意思是将HEAD指针指向上一次提交的父节点,并将本地的修改保留在工作区中,让你有机修复之前的错撤回远程仓库提交:如果你已经将代码推送到了远程仓库,那么你需要使用撤销提交命令来撤回远程仓库提交: ``` git revert <commit-id> ``` 其中<commit-id>是需要撤销的提交的SHA-1哈希值。该命令自动创建一个新的提交来撤销之前的提交,并将该提交推送远程仓库。 总之,撤销Git上的提交是一项必要的技能。在进行任何提交之前,请仔细检查您的代码,以确保您不意外地将错代码推送远程仓库。如果发生错,适当使用Git的命令可以更好地管理代码库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值