实习生从我们的master分支机构创建了一个分支并命名了它Master!现在,当我想将我的代码合并到真实中master并执行a时git pull,我收到如下错误:
error: Ref refs/remotes/origin/master is at bce957a261a1ef76eaec043243c5d036f8d5483e but expected afba8312e4c8bba8d3e6ba440463381dfe819461
From http://github.company.com/InternID/her_prototype
! afba831..db56ee6 master -> origin/master (unable to update local ref)
Run Code Online (Sandbox Code Playgroud)
我们是在OSX上,这是不区分大小写的文件名,所以master和Master看起来是一样的吧.
如何Master将实习生创建的这个分支重命名为其他内容?
我没有快速的测试方法,但类似:
git checkout master
git branch -m temp
git checkout --track origin/Master
git push origin HEAD:renamed
git push origin :Master
git checkout temp
git branch -D Master
git branch -m master
Run Code Online (Sandbox Code Playgroud)
应该做。
在 Mac 上制作区分大小写的磁盘映像、克隆到它并在那里进行修复可能会更容易。
编辑:我做了一个快速测试,它的工作原理如上所述。可能有一些捷径;我将把它留给评论者来撤回。这是一份文字记录(#内嵌评论):
$ git remote update # update repository
Fetching origin
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 2 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (2/2), done.
From /Volumes/Disk Image/remote
* [new branch] Master -> origin/Master
$ git branch -a # note bad name 'Master'
* master
remotes/origin/HEAD -> origin/master
remotes/origin/Master
remotes/origin/master
$ git checkout master
Already on 'master'
Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded.
(use "git pull" to update your local branch)
$ git branch -m temp # rename 'master' for a moment
$ git checkout --track origin/Master # checkout the bad branch
Branch Master set up to track remote branch Master from origin.
Switched to a new branch 'Master'
$ git push origin HEAD:renamed # push it with a different name
Total 0 (delta 0), reused 0 (delta 0)
To /Volumes/Disk Image/remote
* [new branch] HEAD -> renamed
$ git push origin :Master # delete bad branch on remote
To /Volumes/Disk Image/remote
- [deleted] Master
$ git checkout temp # checkout renamed 'master'
Switched to branch 'temp'
$ git branch -D Master # delete bad local branch
Deleted branch Master (was 5343242).
$ git branch -m master # change 'master' name back
$ git branch -a # presto!
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/renamed
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
323 次 |
| 最近记录: |