为什么git不能将“origin / master”识别为有效的对象名称?

时间:2013-02-05 22:10:02

标签: git

~/www> git branch --track live origin/master
fatal: Not a valid object name: 'origin/master'.
~/www> git remote
origin
~/www> git branch
* master
  test_branch
  working_branch

我还尝试使用以下方法创建跟踪分支:

git branch live
git branch --set-upstream live origin/master

但是我得到了同样的错误

4 个答案:

答案 0 :(得分:11)

$ git branch -r
  origin/1.x
  origin/1.x@60
  origin/1.x@63
  origin/HEAD -> origin/master
  origin/master

$ git branch --track live origin/blah
fatal: Not a valid object name: 'origin/blah'.

如上所述,您只能跟踪已添加的遥控器。也许像这样添加遥控器

$ git remote add upstream git://github.com/svnpenn/rtmpdump.git

$ git fetch upstream

Example

答案 1 :(得分:5)

git remote的输出确认您已成功添加了origin遥控器。

我预计问题是你还没有创建远程跟踪分支。如果你执行git branch -r,它可能不会输出任何内容。因此origin/master不是有效的对象名称,因为远程跟踪分支尚不存在。

解决方案是git fetch origin来创建远程跟踪分支。如果您执行git branch -r,则会看到origin/master现在存在。

答案 2 :(得分:1)

我遇到了同样的问题。事实证明我在遥控器上没有写入权限。因而错误。

确保您具有远程写入权限。没有一个是导致此特定错误的原因之一。

答案 3 :(得分:0)

在没有master分支的情况下尝试建立分支时,会出现这个错误。 考虑以下场景:

        var foundHandle = FindWindowEx(OutlookWindowInterceptor.Instance.Handle, (IntPtr)0, null, "FolderBar\0");
        foundHandle = FindWindowEx(foundHandle, (IntPtr)0, null, "NUIDocumentWindow\0");
        foundHandle = FindWindowEx(foundHandle, (IntPtr)0, "NetUIHWND\0", null);
        base.AssignHandle(foundHandle);
        _handle = this.Handle;
        foundHandle = FindWindowEx(foundHandle, (IntPtr)0, "NetUICtrlNotifySink\0", null);
        if (MailUtility.IsOffice2019Installed())
        {
            foundHandle = FindWindowEx(foundHandle, (IntPtr)0, "RICHEDIT60W\0", null);
        }
        editBoxHandle = foundHandle;
        bool result = ShowWindow(editBoxHandle, 0);
        if (result)
            Print("Hide success");
        else
            Print("Hide Fail");

在我们第一次提交后会创建一个主分支。让我们提交一个文件并检查分支列表:

$ git init 
Initialized empty Git repository in /Users/amir/gitdemo/.git/ 
$ git branch feature-1 
fatal: Not a valid object name: 'master'.

既然已经创建了 master,我们现在可以创建一个分支:

$ touch test.txt
$ git add test.txt 
$ git commit -m "First commit" 
$ git branch 
* main