结账后从主人那里删除分支

时间:2018-02-14 04:54:39

标签: git

我从主人那里检查了一个名为FNB-90的分支。在分支FNB-90中,我进行了2次添加,提交并将它们推送到远程。然后,从FNB-90-CHILD查看另一个名为FNB-90的分支。

一个。现在,如果在分支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会恢复到我检查过的原始状态吗?如果没有,那该怎么做?

湾如果我使用推荐删除分支FNB-90

$ git branch -d FNB-90
$ git push origin --delete FNB-90

分支FNB-90-CHILD会发生什么,即它会成为master的直接分支?

2 个答案:

答案 0 :(得分:1)

答案:

  

FNB-90会恢复到我检查过的原始状态吗?

是的,现在origin/master和本地FNB-90具有相同的提交历史记录。如果您想要更新origin/FNB-90,则必须执行force push

N.B。强制推送会将origin/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无效。分支(HEAD)只是指向提交的指针。如果我们删除一个分支,它会删除分支的指针,但是仍然存在提交。

答案 1 :(得分:1)

  

FNB-90会恢复到我检查过的原始状态吗?

是的,如果master没有在本地完成提交,则与origin / master相比 要确保还原,请在 reflog 中查找checkout FNB-90事件,seen here

请注意,如果您之前推过FNB-90,则必须执行git push --force才能传播重置:确保您的同事知道这一点(他们必须重置自己的FNB-90分支)