Git 远程分支被删除,如何将本地更改与新分支重新同步

3

我有一个名为develop_1的远程分支,我一直在使用它。我的本地代码更改都已提交到该分支,但是我的主管不小心删除了该远程分支。

我在本地系统中保存了所有这些代码更改。现在,我想将所有这些更改推回同一个Git存储库中的新远程分支,比如develop_2

我应该如何创建一个新分支,同步我的本地更改并将其推送到远程?

3个回答

6

在你的本地分支develop_1中,你可以简单地创建一个新的分支:

$ git checkout -b develop_2

推送您的更改,然后通过运行以下命令使本地仓库保持同步:
$ git fetch -p

-p参数是用于删除本地分支的prune操作,这里指的是那些在远程仓库中已经不存在的旧的develop_1分支。


0
如果这是在GitHub上,您可以使用“穷人的reflog”(也称为“push事件”)(GitHub Events API)获取远程分支的SHA1。
请参见“Does github remember commit IDs?”:查找master分支上的任何最近的推送事件:然后您可以将该提交(及其相关历史记录)取回到本地存储库中。
如果没有,GitHub支持团队将会查看以恢复您之前的内容。
然后需要强制推送以在远程端恢复相同的历史记录。
但更简单的方法是,如果您的本地更改是基于已经推送的内容进行的,则无需创建新分支:只需将现有分支推回即可。

0
你是否已经fork了远程仓库并在本地克隆了它?
如果你有本地分支上的代码更改,例如local_dev,并想要推送到develop_2,则命令应该是:
git push -u origin local_dev:develop_2 然后对主仓库发起拉取请求。
如果你直接访问远程仓库,则直接将更改推送到远程。无需发起拉取请求。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接