2017-06-16 43 views
0

所以我们发现自己处于一个远程分支被提前删除的情况,我们仍然有我们想要合并和恢复的未完成提交。我最初的想法是简单地做原开发工作拷贝如下:如何在旧版Git上没有该选项的git --unset-upstream?

> git checkout local-branch 
> git branch --unset-upstream 
> git push -u origin remote-branch 

但是有问题的开发商发现,这并不工作,因为他上运行的系统已经安装的Git的一个特别版本的古并安装更新的版本是不是一种选择:

git branch --unset-upstream 
error: unknown option `unset-upstream' 
usage: git branch [options] [-r | -a] [--merged | --no-merged] 
    or: git branch [options] [-l] [-f] <branchname> [<start-point>] 
    or: git branch [options] [-r] (-d | -D) <branchname>... 
    or: git branch [options] (-m | -M) [<oldbranch>] <newbranch> 

幸运的是我们有问题的提交先前已经被推到远程仓库,以便与上最新版本的git的另一开发商能够获取和将这些提交合并到他们自己的本地分支版本中,从而恢复远程分支并允许我们把它合并:

> git fetch origin <sha1hash> 
> git checkout local-branch 
> git merge <sha1hash> 
> git branch --unset-upstream 
> git push -u origin remote-branch 

但是它好像应该已经取消设置上游分支在最初的开发方式通过编辑配置或许仓库里的文件从而使原开发商以恢复分支。

那么如何在不使用git branch --unset-upstream的情况下删除上游分支?

回答

0

采用分支master例如,运行git config --local -e并删除以下行:

[branch "master"] 
     remote = origin 
     merge = refs/heads/master 

或者只是运行git config --remove-section branch.master如果支持的话。

+1

可能有更多'branch.master。*'项目,所以只删除远程和合并设置会更安全。 – torek