我知道它应该很简单,只有我是Git的新手并且对它的术语有点混淆(例如HEAD或Origin ......它们是否相同?)
目前我的分支机构v4000具有以下提交:
---X-Y-Z (v4000 branch head)
我意识到分支v4000 Head应该在提交Y,我需要一个新的分支v4100并将提交Z移动到那个:
---X-Y (v4000 head)
\
Z (v4100 head)
您能否在Visual Studio 2017团队资源管理器中帮助我如何实现这一目标?
提前谢谢。
答案 0 :(得分:2)
分支只是指向某个提交的指针。正如@LethalProgrammer在评论中所说,当前分支的HEAD
是它指向的提交。 Origin
现在完全不同了,它是远程存储库的默认名称(即服务器上的存储库,您pull
和push
)。
当你在v4000
分支上Z
为HEAD
时(根据我的理解,你的当前状态),你可以创建一个新的分支v4100
并reset
v4000
分支返回Y
。
在命令行中,如下所示:
git stash
存储任何未经修改的更改
git branch v4100
使用v4100
创建分支Z
,因为它的头部
git reset --hard Y
Y
是提交的SHA ID:重置分支v4000
的{{1}}以提交HEAD
Y
恢复以前隐藏的更改(如果有)
您也可以通过VSTeamExplorer执行此操作,但我不知道如何存储,所以请确保在尝试此操作之前没有任何未经修改的更改:
选择git stash pop
- > Branches
,输入New Branch
作为分支名称,取消选中v4100
,然后点击“创建”。这会创建具有提交Checkout branch
的分支4100
,因为它是Z
。
然后,仍然在HEAD
标签中,选择Branches
- > Actions
。在打开的窗口中,右键单击提交View History
并选择Y
- > Reset
。
编辑:一如既往,在使用Delete Changes (--hard)
时要小心,因为它可能会导致数据丢失。
这个描述应该足以说服你通过命令行使用git更干净,人们通过本机git命令解释内容更容易。而且,正如@axiac在评论中所建议的那样,阅读Git Book绝对值得花时间。