Git获取和重置未按预期工作

Git获取和重置未按预期工作,git,Git,一个队友在master中做了一些修复,我正在尝试将我的分支(feature/me/foo,它在0f0之后有三次提交)重新设置到master上 如果我只是重新设置基址,三方合并会删除我所有的更改(在他更改的三个文件中)。所以我找到了这个甜蜜的命令: $ git rebase -s ours master 但这根本不是我想要的: $ git log commit 20dee42d3e7c06f94618d4e39e84bc07ad2aff9f Author: [him] Date:  Fr

一个队友在master中做了一些修复,我正在尝试将我的分支(feature/me/foo,它在0f0之后有三次提交)重新设置到master上

如果我只是重新设置基址,三方合并会删除我所有的更改(在他更改的三个文件中)。所以我找到了这个甜蜜的命令:

$ git rebase -s ours master
但这根本不是我想要的:

$ git log

commit 20dee42d3e7c06f94618d4e39e84bc07ad2aff9f 
Author: [him] 
Date:   Fri Jun 10 14:09:35 2016 -0700

commit 0f0dac94a0094817a3191f699b1b438ec89aaec2 
Author: [me] 
Date:   Fri Jun 10 09:14:47 2016 -0700
我的最后三次提交(0f0之后)消失,并被他的替换。没问题。我只想回复一下:

( feature/me/foo ) 11:16:35 > git fetch --all 
Fetching origin no slots

( feature/me/foo ) 11:16:45 > git reset --hard 
feature/me/foo HEAD is now at 20dee42 + minor updates:
……除了我仍在指出他的变化,而不是我分支机构的最新变化。如果我使用核弹和克隆,我会回到分支的正确状态


“硬重设”我的分支到远程状态的正确方法是什么?

用远程硬重设分支:

git checkout another-branch
git checkout /remotes/origin/master
git branch -D master
git checkout master
其思想是移动到另一个分支,移动到远程引用,删除主分支,最后创建一个链接到远程分支的新主分支


这不是一个好的做法,但可能会解决您的问题。

要使用遥控器硬重置您的分支:

git checkout another-branch
git checkout /remotes/origin/master
git branch -D master
git checkout master
其思想是移动到另一个分支,移动到远程引用,删除主分支,最后创建一个链接到远程分支的新主分支


这不是一个好的做法,但可能会解决您的问题。

尝试在reflog中找到您想要提交的SHA并重置它

git reflog # find SHA or short name, for example 0f0dac94
git reset --hard 0f0dac94

试着在reflog中找到你想要提交的SHA并重置它

git reflog # find SHA or short name, for example 0f0dac94
git reset --hard 0f0dac94

如果您的分支有上游设置,那么

git reset --hard @{u}
{u}
{upper}
表示“当前分支的上游”)

否则,请使用远程分支名称:

git reset --hard origin/branch_name

如果您的分支有上游设置,那么

git reset --hard @{u}
{u}
{upper}
表示“当前分支的上游”)

否则,请使用远程分支名称:

git reset --hard origin/branch_name

我尝试了使用分支名称的版本(不起作用),但没有使用上游。远程分支名称不应该以任何方式工作吗?您确定使用了远程分支名称吗?当你说它不起作用时,这到底是什么意思?啊!我不能确定我是否尝试了远程分支名称。“不起作用”,因为我的日志仍然显示我处于他的提交状态。我尝试了使用分支名称的版本(不起作用),但没有使用上游。远程分支名称不应该以任何方式工作吗?您确定使用了远程分支名称吗?当你说它不起作用时,这到底是什么意思?啊!我不能确定我是否尝试了远程分支名称。“不起作用”,因为我的日志仍然显示我在他那里。