git/egit 工具使用之——搞笑的引用名称 (funny refname)

一直懒得把项目从svn切换到git的一个重要原因就是不会使用git. 最近觉得必须研究研究了,然后遇到了各种问题,也读了很多文章。

本文讲讲关于 push tag 失败的问题——搞笑的引用名称。错误信息如下:

Repository [email protected]:wei.chou/GitUsageTest.git
funny refname
error: refusing to create funny ref ‘v2.1‘ remotely

操作被拒绝。原因是 “v2.1” 不能作为引用名称。

Why?

在 stackoverflow 上看到这样一段话:

@ScubaSteve The Pro Git book can be useful here. It describes how refs work, and the Git User‘s Manualtalks about them too. Basically, all refs do is point at a commit. Branches are under refs/heads, tags are under refs/tags, and remotes go under refs/remotes. So refs/heads/workingBranch refers to a branch. –  jszakmeister Dec 11 ‘12 at 9:46????

大概是说,branches 的引用名称必须在跟在 refs/heads/... 路径下,tags 的引用名称必须跟在 refs/tags/... 路径下,remotes 的引用名称必须跟在 refs/remotes/... 路径下。Why? No why. 硬性规定,可从 git 的源码 中看出端倪:

OK! So easy, 问题解决了。

至于不清楚 Git 组织结构的孩纸们,可参见 Git Book 中文版Git 对象模型 以及 Git 追踪分支

时间: 2024-12-31 03:13:23

git/egit 工具使用之——搞笑的引用名称 (funny refname)的相关文章

GitBash、EGit、SourceTree三个Git管理工具对比

Git管理工具对比(GitBash.EGit.SourceTree) GitBash是采用命令行的方式对版本进行管理,功能最为灵活强大,但是由于需要手动输入希望修改的文件名,所以相对繁琐. EGit是Eclipse的Git插件,最为纠结的一个软件,因为开发时直操作很方便,尤其是有svn开发情节的人更热衷于这样,不过EGit中有很多bug和不人性化的东西,让人吐血,所以 一句话EGit并不能解决所有Git问题,开发时必须部分依赖于其他Git管理工具.一会一一列举. SourceTree是最近应用的

Git管理工具对比(GitBash、EGit、SourceTree)

GitBash是采用命令行的方式对版本进行管理,功能最为灵活强大,但是由于需要手动输入希望修改的文件名,所以相对繁琐. EGit是Eclipse的Git插件,最为纠结的一个软件,因为开发时直操作很方便,尤其是有svn开发情节的人更热衷于这样,不过EGit中有很多bug和不人性化的东西,让人吐血,所以 一句话EGit并不能解决所有Git问题,开发时必须部分依赖于其他Git管理工具.一会一一列举. SourceTree是最近应用的一个软件,一句话概括,既有GitBash的命令行,又有EGit的图形化

Git 版本管理工具命令速查

转自:http://www.jb51.net/article/55442.htm 一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r 查看远程所有分支git commit -am "init" 提交并且加注释 git remote add origin [email protected]:ndshowgit push origin mast

Git版本控制工具学习

Git代码管理工具学习 分布式管理工具:git 相比较svn它更加的方便,基本上我们的操作都是在本地进行的. Git文件的三种状态:已提交,已修改,以暂存. 已提交:表示文件已经被保存到本地数据库. 已修改:修改了某个文件. 以暂存:把修改的文件放到了下次提交保存的清单中. Git只关心文件系统的整体是否发生了变化,其它的版本控制工具更多的关心文件的内容是否发生变化. Git基本的工作流程 1:在工作目录中修改某些文件,2:对修改后的文件进行快照,然后保存到暂存区域.3:提交更新,将保存在暂存区

[.net 面向对象程序设计进阶] (26) 团队开发利器(五)分布式版本控制系统Git——图形化Git客户端工具TortoiseGit

[.net 面向对象程序设计进阶] (26) 团队开发利器(五)分布式版本控制系统Git——图形化Git客户端工具TortoiseGit 读前必备: 接上篇: 分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境 http://www.cnblogs.com/yubinfeng/p/5182271.html 本篇导读: 上篇介绍了一款Windows环境下的Git服务器工具GitStack ,搭建了最简单的Windows下的Git服务器,需要再次提醒的是

Git版本工具的使用

Git版本工具:Git是一个开源的分布式版本控制系统,可用于敏捷高效的处理任何或大或小的项目.详细介绍地址:https://git-scm.com/downloads.今天主要为大家分享一下怎样把本地文件上传Github. 首先 :我们需要安装Git.下载地址:https://git-scm.com/downloads 下载我们需要的版本这里我用的是Windows的.接下来我们来看下安装过程: 1.下载Git 按默认安装即可.然后我们在安装Git的磁盘里找到 接下来运行git-bash在git-

Git 版本管理工具(一)

Git 是一个分布式版本控制工具,它的作者 Linus Torvalds 是这样给我们介绍 Git  —— The stupid content tracker(傻瓜式的内容跟踪器) 1. Git 背景 Git 最初由Linus Torvalds编写,用于 Linux 内核开发的版本控制工具. Git 与常用的版本控制工具 CVS.Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便. Git 的速度很快,这对于诸如 Linux kerne

git版本管理工具的上手

git是一个分布式的版本管理工具 和其他集中式版本管理 工具相比具有以下优点: 1.可以在不联网的情况下开发 2.可以方便的建立本地分支 3.本地化的日志,快速获得信息 git命令的使用 mkdir /d/myproject  (在本地d盘下面创建一个名为myproject的本地仓库) cd /d/myproject    (切换到该目录下) git init  (初始化为主枝) git add filename  (添加一个文件的记录   一次只能添加一个文件) git commit -m "

Git可视化工具SourceTree的使用

我在前面几篇文章中详细介绍了Git命令行的使用<Git学习札记><Git学习札记--进阶>,以及使用Xcode中自带的Git可视化工具的使用<Xcode中git的使用方法介绍与"Please tell me who you are"问题的解决方案>.对于Git的初学者,个人建议先学习Git命令行,然后再去使用图形化工具,这样才会对整个Git的工作流有一个完整的了解.今天我们要来学习的工具是SourceTree,一款非常好用的Git可视化工具.我今天的