Git获取和重置未按预期工作
一个队友在master中做了一些修复,我正在尝试将我的分支(feature/me/foo,它在0f0之后有三次提交)重新设置到master上 如果我只是重新设置基址,三方合并会删除我所有的更改(在他更改的三个文件中)。所以我找到了这个甜蜜的命令:Git获取和重置未按预期工作,git,Git,一个队友在master中做了一些修复,我正在尝试将我的分支(feature/me/foo,它在0f0之后有三次提交)重新设置到master上 如果我只是重新设置基址,三方合并会删除我所有的更改(在他更改的三个文件中)。所以我找到了这个甜蜜的命令: $ git rebase -s ours master 但这根本不是我想要的: $ git log commit 20dee42d3e7c06f94618d4e39e84bc07ad2aff9f Author: [him] Date: Fr
$ 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
我尝试了使用分支名称的版本(不起作用),但没有使用上游。远程分支名称不应该以任何方式工作吗?您确定使用了远程分支名称吗?当你说它不起作用时,这到底是什么意思?啊!我不能确定我是否尝试了远程分支名称。“不起作用”,因为我的日志仍然显示我处于他的提交状态。我尝试了使用分支名称的版本(不起作用),但没有使用上游。远程分支名称不应该以任何方式工作吗?您确定使用了远程分支名称吗?当你说它不起作用时,这到底是什么意思?啊!我不能确定我是否尝试了远程分支名称。“不起作用”,因为我的日志仍然显示我在他那里。