Git-重置原点/主节点

时间:2020-06-24 23:46:40

标签: git

有人弄乱了原籍/主人。他们将大约15项提交合并到了其中,这些提交本来应该在以后的冲刺中才出现。

我应该是本地分支机构的起源/母版。我如何将原点/母版重置为我的本地分支?

我在想可以将我的本地分支推送到原始服务器上,称为masterbackup,然后签出origin / master,将其重置为origin / masterbackup,然后进行推送。像这样:

library(igraph)
library(tidyverse)
library(ggraph)

# Create example matrix
id <- c("s01", "s02", "s03", "s04", "s05")
s01 <- c(0, 0, 0, 1, 1)
s02 <- c(0, 0, 1, 1, 1)
s03 <- c(1, 0, 0, 0, 1)
s04 <- c(0, 1, 0, 0, 0)
s05 <- c(0, 0, 0, 0, 0)
links <- data.frame(id, s01, s02, s03, s04, s05)
links <- column_to_rownames(links, var = "id")
links <- as.matrix(links)
expertise <- c("neuro", "micro", "phys", "phys", "neuro")
nodes <- data.frame(id, expertise)

# Generate igraph object
network <- graph_from_adjacency_matrix(links, weighted = NULL, mode = "undirected")

# Generate plot
ggraph(network, layout = "circle") + geom_edge_arc(color = "darkgray", strength = 0.15) + 
geom_node_point(size = 8, aes(color = nodes$expertise)) + geom_node_text(aes(label = id), nudge_y = -0.2) + 
theme_void()

那行得通吗?

谢谢。

1 个答案:

答案 0 :(得分:3)

您想要的只是一个命令:

(在继续之前阅读完整的答案...我在末尾添加了可选的“安全”命令)

git push -f origin masterbackup:master

以下是文档中描述冒号的最后一个参数的相关部分:

...

指定要更新哪个目标引用的源 目的。参数的格式是可选的加号+, 然后是源对象,然后是冒号:,然后是 通过目的地裁判。

通常是您要推送的分支的名称,但是 它可以是任意的“ SHA-1表达式”,例如master〜4或HEAD (请参见gitrevisions [7])。

告诉远端的哪个ref以此更新 推。

来源:https://git-scm.com/docs/git-push

英语中,此命令说:使master存储库中的origin分支指向与本地存储库中masterbackup分支相同的提交。用git术语来说,这称为“将masterbackup推到远程master上的origin

如果需要更高的安全性,请在执行此命令之前执行以下操作:

git fetch origin master

git branch bad-master origin/master

如果要恢复到修复之前的状态,可以执行以下操作:

git push -f origin bad-master:master

一旦您对不需要返回感到满意,可以使用以下方法删除该分支:

git branch -D bad-master

需要大写字母D,因为否则git将拒绝删除将孤立提交的分支。

最后一点……您的环岛方法似乎也可以使用,除了在最后一个-f中需要一个push并且还会留下不必要的分支({{ 1}})。

(似乎您在git用户中普遍认为远程回购比实际更重要,这也许是使用集中式vc的副作用。这通常以不必要的masterbackuppush命令。分支不需要在服务器上就可以使用。远程仓库与本地仓库完全相同,没有额外的功能。 )

相关问题