git push tmp master
我收到了这条消息。
warning: Duplicated ref: refs/heads/master
推送仍然可以成功。
但这条消息是什么意思? 我怎样才能找到更详细的日志信息?
这是我的 .git/config 文件。
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
hideDotFiles = dotGitOnly
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@github.com:testuser/myproject.git
[branch "master"]
remote = origin
merge = refs/heads/master
[remote "tmp"]
url = git@192.168.1.44:testuser/myproject.git
fetch = +refs/heads/*:refs/remotes/tmp/*
我的git版本是1.7.11.msysgit.1
show-ref
和ls-remote
信息
$ git show-ref
1696d17186db41cc70876f76f943e18ea4708ad3 refs/heads/master
3c51688bf27e712001db1b6e9f316748634643c4 refs/remotes/origin/HEAD
3c51688bf27e712001db1b6e9f316748634643c4 refs/remotes/origin/master
1696d17186db41cc70876f76f943e18ea4708ad3 refs/remotes/tmp/master
$ git ls-remote tmp
warning: Duplicated ref: refs/heads/master
1696d17186db41cc70876f76f943e18ea4708ad3 HEAD
1696d17186db41cc70876f76f943e18ea4708ad3 refs/heads/master
$ git ls-remote origin
3c51688bf27e712001db1b6e9f316748634643c4 HEAD
3c51688bf27e712001db1b6e9f316748634643c4 refs/heads/master
在tmp上运行
git show-ref
的输出结果为:$ git show-ref
warning: Duplicated ref: refs/heads/master
1696d17186db41cc70876f76f943e18ea4708ad3 refs/heads/master
在tmp上的packed-refs
内容
# pack-refs with: peeled
3c51688bf27e712001db1b6e9f316748634643c4 refs/heads/master
3c51688bf27e712001db1b6e9f316748634643c4 refs/heads/master
myproject.git
裸仓库中 find .
命令的输出结果。由于objects目录下的子目录过多,我没有将它们粘贴在这里。
$ find .
.
./branches
./packed-refs
./objects
./HEAD
./info
./info/exclude
./config
./description
./refs
./refs/tags
./refs/heads
./refs/heads/master
./hooks
./hooks/commit-msg.sample
./hooks/update.sample
./hooks/pre-commit.sample
./hooks/prepare-commit-msg.sample
./hooks/post-update.sample
./hooks/pre-rebase.sample
./hooks/post-receive
./hooks/pre-applypatch.sample
./hooks/update
./hooks/applypatch-msg.sample
git show-ref
。我想它会像git ls-remote
一样显示相同的内容,但让我们看看。其次,在裸仓库(myproject.git)中运行'find .'。最后,cat输出的packed-refs并使用这些输出更新您的答案。 - John Szakmeisterls-remote
的输出,我们可能会删除tmp上的refs/heads/master
(可以通过git push
或git update-ref
进行操作--后者需要访问服务器),然后让您从工作树重新推送到主分支。但是我想先确保没有其他问题。顺便问一下,tmp远程安装了哪个版本的git? - John Szakmeisterls-remote
和ls-remote origin
的输出结果相同。 - txworking1.7.9.5
,本地版本是git version 1.7.11.msysgit.1
。非常感谢。 - txworkinggit gc
命令就可以解决问题了。git gc
会重新打包对象和压缩引用,这将导致文件被重写而不再有重复的行。 - John Szakmeister