7

首先:为问题标题道歉,我实际上并不知道问题是什么,所以我不知道如何询问它。

我想区分我的主人和上游主人(应该是原点/主人,基于我的遥控器的设置方式)。

但是:origin是在我在本地工作了一段时间后才放在那里的,所以它只是名义上的“起源”。那就是:我有一个本地仓库,把它放到一个 gitolite 设置中,然后告诉我本地的 git 把它叫做 origin。

这些是症状:

$ git diff master orgin/master
fatal: ambiguous argument 'orgin/master': unknown revision or path not in the working tree.

$ git diff master origin/master --
fatal: bad revision 'origin/master'

嗯。

$ git remote -v
origin  git@example.com:example (fetch)
origin  git@example.com:example (push)

好吧,看起来不错。

$ git branch -a
... # nothing from origin

嗯。

$ git fetch -a origin
From example.com:example
* branch            HEAD       -> FETCH_HEAD

我不知道这是否正确。它看起来很有成效,但git diff master origin/master仍然失败,并且:

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

世界卫生大会?

$ ls .git/refs/remotes
gitps  ps

这看起来不对:那些是几个月不存在的旧遥控器。他们也是空的。并且.git/remotes根本不存在,尽管我不确定它应该存在。

4

3 回答 3

11

你试过git remote update吗?这将更新所有遥控器,根据需要创建远程跟踪分支。

于 2012-04-03T21:22:14.050 回答
10

您可能需要告诉 git 从源站获取哪些分支。在.git/config此 repo 的文件中,在该[remote "origin"]部分下,应该有一行像fetch = .... 这告诉 git 要获取什么以及将其放在本地的什么位置。这是一个非常标准的例子:

[remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = ssh://...

如果您没有看到该fetch = ...行,您可以安全地添加它以匹配示例,这git clone.

有关正在发生的事情的详细描述,请参阅git pro book 。

于 2012-04-03T21:34:04.133 回答
0

我刚才也有类似的问题。我发现我的本地 .git 目录实际上是一个文件

$ file .git
     .git: ASCII text

我删除了文件,并初始化了 git 存储库

git init && git remote add origin "gitrepo"

不太清楚为什么会这样。希望这可以帮助某人..

于 2017-06-19T14:06:13.230 回答