如何丢弃git中rebase后产生的冲突并返回到最新推送的代码

问题描述 投票:0回答:1

有没有办法忽略我尝试变基后所做的更改并返回到我推送到主远程存储库中的最新代码? Rebase 将两个不同的版本堆叠到一个类中后,所有冲突的类都出现错误。

我在 Eclipse 中进行了最新的更改,并将它们成功推送到主分支中。当我尝试提交合并请求时,由于存在许多冲突的文件,我被要求重新设置基准。在 Eclipse 中进行变基的过程中,我必须将类的版本与多次提交进行比较。我是 Eclipse 的新手,所以我不确定如何“选择”本地更改而不是早期提交中的更改。由于这个问题,git 将两个版本放在一个类中,这对我来说太复杂了,无法进行排序。我现在剩下 5 个类,它们有很多错误,如果我可以提取我已成功推送的代码来重新开始,那就更容易了。

在不遇到同样问题的情况下,最简单的方法是什么?

java git eclipse rebase egit
1个回答
0
投票

如果想要撤消因不成功的变基而引入的更改,并返回到成功将最新更改推送到远程存储库的状态。以下是实现这一目标的方法:

备份您当前的状态(可选但推荐): 在进行任何重大更改之前,最好创建备份。您可以创建一个分支或简单地复制整个项目文件夹,以确保出现问题时可以恢复。

丢弃不成功的变基: 由于变基没有按计划进行并使您的代码处于混乱状态,因此您可以放弃变基引入的更改并将本地存储库重置为远程存储库的状态。为此:

# Make sure you are on the main branch
git checkout main

# Fetch the latest changes from the remote repository
git fetch origin

# Reset your local branch to the state of the remote repository
git reset --hard origin/main

这将删除变基引入的任何更改,并重置本地分支以匹配远程存储库的最新状态。

重新应用您的本地更改: 现在您回到了远程存储库的状态,您可以重新应用之前成功推送的本地更改:

#Make sure you have the latest changes from the remote repository
    git pull origin main
    
# Now you can push your local changes again
    git push origin main

解决冲突并重新设定基准: 如果您在推送本地更改时遇到冲突,可能是由于自上次成功推送以来远程存储库中发生了更改。在这种情况下,您应该解决冲突,这可能需要仔细检查和选择您想要保留的更改,类似于您在不成功的变基期间尝试的操作。

冲突解决后推送: 解决冲突并确保本地更改处于干净状态后,您可以将已解决的更改推送到远程存储库:

git push origin main

请记住,解决冲突可能很复杂,在将更改推送到远程存储库之前仔细检查和测试更改非常重要。如果您不习惯手动解决冲突,请考虑联系更有经验的同事或向您的团队领导或导师寻求帮助。

© www.soinside.com 2019 - 2024. All rights reserved.