Git 从主节点签出后删除分支
我从主机上签出一个名为Git 从主节点签出后删除分支,git,Git,我从主机上签出一个名为FNB-90的分支。在分支FNB-90中,我做了2次添加、提交并将它们推送到远程。然后,从FNB-90中查看另一个名为FNB-90-CHILD的分支 a。现在,如果在分支机构FNB-90,我推荐: $ git fetch # will fetch the latest changes on the remote $ git reset --hard origin/master # will set your local branch to match the repres
FNB-90
的分支。在分支FNB-90
中,我做了2次添加、提交并将它们推送到远程。然后,从FNB-90
中查看另一个名为FNB-90-CHILD
的分支
a。现在,如果在分支机构FNB-90
,我推荐:
$ git fetch # will fetch the latest changes on the remote
$ git reset --hard origin/master # will set your local branch to match the representation of the remote just pulled down.
FNB-90
是否会恢复到我已签出的原始状态?如果没有,那怎么办
b。如果我用命令删除分支FNB-90
$ git branch -d FNB-90
$ git push origin --delete FNB-90
分支
FNB-90-CHILD
会发生什么情况,即它会成为主分支的直接分支吗 回答:a
FNB-90会恢复到我签出的原始状态吗
是的,现在origin/master
和localFNB-90
具有相同的提交历史。如果要更新原点/FNB-90
,则必须执行强制推送操作
N.B.强制推送将用本地FNB-90的历史记录取代起源/FNB-90的历史记录
$ git fetch
$ git checkout FNB-90
$ git reset --hard origin/master
$ git push -f origin FNB-90
现在,origin/master
=origin/FNB-90
=local FNB-90
处于相同状态
此外,FNB-90-CHILD
对此没有影响。(历史和以前一样)
回答:b
如果从本地和远程删除分支FNB-90
,则对FNB-90-CHILD
没有影响。分支(头)只是指向提交的指针。如果我们删除一个分支,它将删除该分支的指针,但提交仍然存在
FNB-90会恢复到我签出的原始状态吗
是,与源站/主站相比,前提是主站没有在本地完成提交。
为确保恢复,请在中查找签出FNB-90
事件,如下所示
请注意,如果您以前按过FNB-90
,则必须执行git push--force
以传播该重置:确保您的同事意识到这一点(他们必须重置自己的FNB-90
分支)git中的分支是“指向特定DAG中“head”节点的指针”。到目前为止,两个不同的分支名称是不相关的-删除提交的名称(参见上文)不会影响该提交或其他提交的任何其他名称。DAG是什么?如果时间允许,您可以写一个简短的回答吗?特别是,我需要知道如何在add、commit和push(s)DAG代表后将FNB-90
恢复到原始状态-基本上,任何提交都不能是其自身的祖先(或后代)。要将FNB-90恢复到原始状态,请强制它(分支-f
)在“应该”的位置进行适当的提交;更改远程分支可能会让其他人感到不安,但是。。如果物品被意外移动,通常可以方便地查看它们来自何处。