Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 从主节点签出后删除分支_Git - Fatal编程技术网

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
和local
FNB-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
)在“应该”的位置进行适当的提交;更改远程分支可能会让其他人感到不安,但是。。如果物品被意外移动,通常可以方便地查看它们来自何处。