不确定这是否是使用分支机构的正确方法。
请求:
如何做到这一点?
答案 0 :(得分:10)
如果您创建了一个单独的分支,那么您需要做的就是切换回之前的分支:git checkout A
(假设A
是您所在分支的名称在......或者可能是master
)。
如果需要,可以使用git branch -d <branchname>
删除坏分支,如果有未合并的提交,也可以输入-f
。
编辑:如果您的存储库包含许多要删除的错误更改,则可以使用git reset --hard HEAD
撤消它们。如果有新文件(未通过git跟踪),git clean -fd
将全部删除它们。显然,请谨慎使用,因为它们无法通过git恢复。
答案 1 :(得分:4)
我需要反转到分支Z
上的结构A“快照”
$ git checkout A
$ git branch -d Z
$ git branch Z
$ git reset --hard HEAD~3
$ git checkout Z
英文:
删除“Z”分支并从当前状态“A”重新创建。
将A分支重置为三次提交。这是一个例子 - 三个可能不是你历史上重新设置的正确深度。将该数字更改为正确的数字(并使用git log
来确定您的分支机构分歧的提交数量。)
切换到您的Z分支并确认您之前在“A”中的更改现在位于“Z”。
答案 2 :(得分:3)
我怀疑您只创建了分支:
git branch Z
当你实际上想要创建它并切换到它时。您可以使用-b标志来git checkout创建一个分支并切换到它,如下所示:
git checkout -b Z
您现在需要做的是撤消已提交给主分支的更改。这将撤消提交并使索引看起来就像您提交之前一样:
git checkout master
git reset --soft HEAD^
然后切换到Z并提交索引中的更改(已经暂存):
git checkout Z
git commit -m "blah blah"
希望这会有所帮助。
哦,是的,避免直接在master上工作,除非这是一个简单的bug修复。
请保留你的答案,因为它 包含我必须的重要概念 了解。那没用。我是什么 需要的是:抓住分支Z并放置它 作为主人 - 这有可能吗?
当然是。你可以用很多不同的方式做到这一点。如果只有一个提交,您可以将Z分支合并到master中以将该提交转换为master。但我假设你根本不想在Z分支上提交。然后你可以做同样但切换分支,例如:
git checkout Z
git reset --soft HEAD^
git checkout master
git commit -m "blah blah"