svn查看已删除文件历史版本的命令如何写?

大鸟的小天空 2013-09-04 11:25:31
svn cat ^/jigou_manage/Public/css/left.css@7991

svn cat -r 7991 Public/css/left.css

svn cat -r 7991 /jigou_manage/Public/css/left.css@7991
提示:svn: E155010: 找不到节点 '/Volumes/data/Dropbox/job/jigou_manage/Public/css/left.css'。

我知道7991和7993不同,7993删除的,7991中就有这个文件。而且如果直接用svn cat -r 7991 其他还存在的文件,就没问题。

下面是log的日志:

svn log -r7993 -v
------------------------------------------------------------------------
r7993 | liangpeng | 2013-09-02 16:45:32 +0800 (一, 2013-09-02) | 1 行
改变的路径:
M /jigou_manage/JGGL/Lib/Widget/Menu/left.html
M /jigou_manage/JGGL/Lib/Widget/Menu/menu.html
M /jigou_manage/JGGL/Tpl/Account/editpass.html
M /jigou_manage/JGGL/Tpl/ReportOccupancyRate/main.html
M /jigou_manage/JGGL/Tpl/StatAnaly/index.html
M /jigou_manage/JGGL/Tpl/SysDic/main.html
D /jigou_manage/Public/css/left.css
...全文
2185 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
大鸟的小天空 2013-09-05
  • 打赏
  • 举报
回复
使用绿乌龟很简单呀。。点吧点吧就有了。。 说的是命令的方式。
青松2 2013-09-04
  • 打赏
  • 举报
回复
WIN下怎么实现?

使用Subversion进行版本控制针对 Subversion 1.4(根据r2866编译) 参照网页版 http://svndoc.iusesvn.com/svnbook/1.4/制作而成。 目录 前言 序言 读者 怎样阅读本书 本书约定 排版习惯 图标 本书的结构 本书是免费的 致谢 来自 Ben Collins-Sussman 来自 Brian W. Fitzpatrick 来自 C. Michael Pilato Subversion是什么? Subversion的历史 Subversion的特性 Subversion的架构 Subversion的组件 1. 基本概念 版本版本模型 文件共享的问题 锁定-修改-解锁 方案 拷贝-修改-合并 方案 Subversion实践 Subversion版本库URL 工作拷贝 修订版本 工作拷贝怎样跟踪版本库 混合修订版本的工作拷贝 更新和提交是分开的 混合修订版本很常见 混合版本很有用 混合版本有限制 总结 2. 基本使用 求助! 导入数据到你的版本svn import 推荐的版本库布局 初始化检出 禁用密码缓存 用其它身份认证 基本的工作周期 更新你的工作拷贝 修改你的工作拷贝 检查你的修改 查看你的修改概况 检查你的本地修改的详情 取消本地修改 解决冲突(合并别人的修改) 手工合并冲突 复制文件到你的工作文件 脚注:使用svn revert 提交你的修改 检验历史 产生历史修改列表 检查历史修改的详情 比较本地修改 比较工作拷贝和版本库 比较版本库与版本库 浏览版本svn cat svn list 获得旧的版本库快照 有时你只需要清理 总结 3. 高级主题 版本清单 修订版本关键字 版本日期 属性 为什么需要属性? 操作属性 属性和 Subversion 工作流程 自动设置属性 文件移植性 文件内容类型 文件的可执行性 行结束字符串 忽略未版本控制的条目 关键字替换 锁定 创建锁定 发现锁定 解除和偷窃锁定 锁定交流 外部定义 Peg和实施修订版本 网络模型 请求和响应 客户端凭证缓存 4. 分支与合并 什么是分支? 使用分支 创建分支 在分支上工作 分支背后的关键概念 在分支间复制修改 复制特定的修改 合并背后的关键概念 合并的最佳实践 手工跟踪合并 预览合并 合并冲突 关注还是忽视祖先 合并和移动 常见用例 合并分支到另一分支 取消修改 找回删除的项目 常用分支模式 发布分支 特性分支 使用分支 标签 建立简单标签 建立复杂标签 分支维护 版本库布局 数据的生命周期 供方分支 常规的供方分支管理过程 svn_load_dirs.pl 总结 5. 版本库管理 Subversion 版本库的定义 版本库开发策略 规划你的版本库结构 决定在哪里与如何部署你的版本库 选择数据存储格式 Berkeley DB FSFS 创建和配置你的版本库 创建版本库 实现版本库钩子 Berkeley DB 配置 版本库维护 管理员的工具箱 svnadmin svnlook svndumpfilter svnsync Berkeley DB 工具 修正提交消息 管理磁盘空间 Subversion如何节约磁盘空间 删除终止的事务 删除不使用的Berkeley DB日志文件 Berkeley DB 恢复 版本库数据的移植 过滤版本历史 版本库复制 版本库备份 总结 6. 服务配置 概述 选择一个服务器配置 svnserve服务器 svnserve使用SSH通道 Apache 的 HTTP 服务器 推荐 svnserve,一个自定义的服务器 调用服务器 svnserve作为守护进程 使用svnserve通过inetd 通过通道使用svnserve svnserve作为Windows服务 内置的认证和授权 创建一个用户文件和认证域 设置访问控制 SSH 隧道 SSH 配置技巧 初始设置 控制调用的命令 httpd,Apache的HTTP服务器 先决条件 基本的 Apache 配置 认证选项 基本HTTP认证 SSL 证书管理 授权选项 整体访问控制 每目录访问控制 禁用基于路径的检查 额外的糖果 版本库浏览 Apache 日志 其它特性 基于路径的授权 支持多种版本库访问方法 7. 定制你的Subversion体验 运行配置区 配置区布局 配置和Windows注册表 配置选项 服务器 配置 本地化 理解地区 Subversion对区域设置的支持 使用外置比较工具 外置 diff 外置 diff3 8. 嵌入Subversion 分层的库设计 版本库层 版本库访问层 客户端层 进入工作拷贝的管理区 条目文件 原始拷贝和属性文件 使用API Apache可移植运行库 URL 和路径需求 使用 C 和 C++ 以外的语言 代码样例 9. Subversion 完全参考 Subversion 命令行客户端:svn svn选项 svn命令 svnadmin svnadmin选项 svnadmin子命令 svnlook svnlook选项 svnlook子命令 svnsync svnsync选项 svnsync子命令 svnserve svnserve选项 svnversion mod_dav_svn Subversion属性 版本控制的属性 未版本控制的属性 版本库钩子 A. Subversion 快速入门指南 安装 Subversion 快速指南 B. CVS用户的Subversion指南 版本号现在不同了 目录的版本 更多离线操作 区分状态和更新 状态 更新 分支和标签 元数据属性 解决冲突 二进制文件和行结束标记转换 版本化的模块 认证 迁移CVS版本库到Subversion C. WebDAV和自动版本 什么是WebDAV ? 自动版本化 客户端交互性 独立的 WebDAV 应用程序 Microsoft Office,Dreamweaver,Photoshop Cadaver,DAV 浏览器 文件浏览器 WebDAV 扩展 Microsoft Web 文件夹 Nautilus,Konqueror WebDAV文件系统实现 WebDrive,NetDrive Mac OS X Linux davfs2 D. 第三方工具 E. Copyright 索引 插图清单 1. Subversion的架构 1.1. 一个典型的客户/服务器系统 1.2. 需要避免的问题 1.3. 锁定-修改-解锁 方案 1.4. 拷贝-修改-合并 方案 1.5. 拷贝-修改-合并 方案(续) 1.6. 版本库的文件系统 1.7. 版本库 4.1. 分支与开发 4.2. 开始规划版本库 4.3. 版本库与复制 4.4. 一个文件的分支历史 8.1. 二维的文件和目录 8.2. 版本时间—第三维! 表格清单 1.1. 版本库访问URL 5.1. 版本库数据存储对照表 6.1. Subversion服务器选项比较 C.1. 常用WebDAV客户端 范例清单 5.1. txn-info.sh(报告异常事务) 5.2. 镜像版本库的 pre-revprop-change 钩子 5.3. 镜像版本库的 start-commit 钩子 6.1. 匿名访问的配置实例。 6.2. 一个认证访问的配置实例。 6.3. 一个混合认证/匿名访问的配置实例。 6.4. 禁用所有的路径检查 7.1. 注册表条目(.reg)样本文件。 7.2. diffwrap.sh 7.3. diffwrap.bat 7.4. diff3wrap.sh 7.5. diff3wrap.bat 8.1. 使用版本库层 8.2. 使用 Python 处理版本库层 8.3. 一个Python状态爬虫
1. 介绍 Subversion是什么? Subversion的历史 Subversion的特性 Subversion的架构 安装Subversion Subversion的组件 快速入门 2. 基本概念 版本版本模型 文件共享的问题 锁定-修改-解锁 方案 拷贝-修改-合并 方案 Subversion实战 工作拷贝 修订版本 工作拷贝怎样追踪版本库 修订版本混合的限制 摘要 3. 指导教程 帮助! 导入 修订版本: 号码、关键字和日期,噢,我的! 修订版本号 修订版本关键字 修订版本日期 初始化的Checkout 基本的工作周期 更新你的工作拷贝 修改你的工作拷贝 检查你的修改 svn status svn diff svn revert 解决冲突(合并别人的修改) 手工合并冲突 拷贝覆盖你的工作文件 下注:使用svn revert 提交你得修改 检验历史 svn log svn diff 比较本地修改 比较工作拷贝和版本库 比较版本库与版本svn cat svn list 关于历史的最后一个词 其他有用的命令 svn cleanup svn import 摘要 4. 分支与合并 什么是分支? 使用分支 创建分支 在分支上工作 分支背后的关键概念 在分支间拷贝修改 拷贝特定的修改 合并背后的关键概念 合并的最佳实践 手工追踪合并 预览合并 合并冲突 关注还是忽视祖先 常见用例 合并一条分支到另一支 取消修改 找回删除的项目 常用分支模式 发布分支 特性分支 转换工作拷贝 标签 建立最简单的标签 建立复杂的标签 分支维护 版本库布局 数据的生命周期 摘要 5. 版本库管理 版本库基本知识 理解事务和修订版本 未受版本控制的属性 版本库数据存储 Berkeley DB FSFS 版本库的创建和配置 钩子脚本 Berkeley DB配置 版本库维护 管理员的工具箱 svnlook svnadmin svndumpfilter svnshell.py Berkeley DB工具 版本库清理 管理磁盘空间 版本库的恢复 版本库的移植 版本库备份 添加项目 选择一种版本库布局 创建布局,导入初始数据 摘要 6. 配置服务器 概述 网络模型 请求和响应 客户端凭证缓存 svnserve,一个自定义的服务器 调用服务器 内置的认证和授权 创建一个用户文件和域 设置访问控制 SSH认证和授权 SSH配置技巧 初始设置 控制调用的命令 httpd,Apache的HTTP服务器 必备条件 基本的Apache配置 认证选项 基本HTTP认证 SSL证书管理 授权选项 整体访问控制 每目录访问控制 关闭路径为基础的检查 额外的糖果 版本库浏览 其它特性 支持多种版本库访问方法 7. 高级主题 运行配置区 配置区布局 配置和Windows注册表 配置选项 服务器 config 属性 为什么需要属性? 处理属性 特别属性 svn:executable svn:mime-type svn:ignore svn:keywords svn:eol-style svn:externals svn:special 自动属性设置 Peg和实施修订版本 外部定义 卖主分支 常规的卖主分支管理过程 svn_load_dirs.pl 本地化 理解地区 Subversion对地区的支持 Subversion版本库URL 8. 开发者信息 分层的库设计 版本库层 版本库访问层 RA-DAV(使用HTTP/DAV版本库访问) RA-SVN(自定义协议版本库访问) RA-Local(直接版本库访问) 你的RA库在这里 客户端层 使用API Apache可移植运行库 URL和路径需求 使用C和C++以外的语言 进入工作拷贝的管理区 条目文件 原始拷贝和属性文件 WebDAV 使用内存池编程 为Subversion做贡献 加入社区 取得源代码 开始熟悉社区政策 作出修改并测试 贡献你的修改 9. Subversion完全参考 Subversion命令行客户端:svn svn选项 svn命令 svn add svn blame svn cat svn checkout svn cleanup svn commit svn copy svn delete svn diff svn export svn help svn import svn info svn list svn log svn merge svn mkdir svn move svn propdel svn propedit svn propget svn proplist svn propset svn resolved svn revert svn status svn switch svn update svnadmin svnadmin Switches svnadmin Subcommands svnadmin create svnadmin deltify svnadmin dump svnadmin help svnadmin hotcopy svnadmin list-dblogs svnadmin list-unused-dblogs svnadmin load svnadmin lstxns svnadmin recover svnadmin rmtxns svnadmin setlog svnadmin verify svnlook svnlook选项 svnlook svnlook author svnlook cat svnlook changed svnlook date svnlook diff svnlook dirs-changed svnlook help svnlook history svnlook info svnlook log svnlook propget svnlook proplist svnlook tree svnlook uuid svnlook youngest svnserve svnserve选项 svnversion svnversion mod_dav_svn mod_dav_svn Configuration Directives A. Subversion对于CVS用户 修订版本号现在不同了 目录的版本 更多离线操作 区分状态和更新 分支和标签 元数据属性 冲突解决 二进制文件和转化 版本化的模块 认证 转化CVS版本库到Subversion B. 故障解决 共同问题 使用Subversion的问题 每当我尝试访问版本库,我的Subversion客户端挂起。 每当我尝试运行svn,它告诉我工作拷贝已经锁定。 我在查找和打开版本库时得到错误,而我知道我的版本库URL是正确的。 我怎样在file://的URL中指定一个Windows驱动器盘符? 通过网络对Subversion版本库进行操作发生问题。 在Windows XP下,Subversion服务器有时候看起来发送损坏的数据。 跟踪Subversion客户端和Apache服务器通话最好的方法是什么? 我刚刚编译了二进制分发版本,当我尝试检出Subversion,我得到一个“Unrecognized URL scheme”错误。 为什么svn revert命令要有一个明确的目标?为什么缺省不是递归的?它的行为方式与大多数其它子命令不同。 当我启动Apache,mod_dav_svn抱怨说发现一个“bad database version”,它发现了db-3.X而不是db-4.X。 我在RedHat 9得到“Function not implemented”错误,无法工作,我如何修正这个问题? 为什么日志说通过Apache(ra_dav)提交或导入的文件“(no author)”? 我偶然在Windows得到“Access Denied”错误,它们看起来随即出现。 在FreeBSD,某些操作(特别是svnadmin create)有时会挂起。 我可以在web浏览器看到我的版本库,但是svn checkout给我一个301 Moved Permanently错误。 我尝试察看我的文件的一个老版本,但是svn告诉我“path not found”。 C. WebDAV和自动版本化 WebDAV基本概念 仅是平常的WebDAV DeltaV扩展 Subversion和DeltaV 影射Subversion到DeltaV 自动版本化支持 选择mod_dav_lock 自动版本化交互性 Win32网络文件夹 Mac OS X Unix: Nautilus 2 Linux davfs2 D. 第三方工具 客户端和插件 语言绑定 版本库转化 高级工具 版本库浏览工具 E. 版权 术语表 插图清单 1.1. Subversion的架构 2.1. 一个典型的客户/服务器系统 2.2. 需要避免的问题 2.3. 锁定-修改-解锁 方案 2.4. 拷贝-修改-合并 方案 2.5. 拷贝-修改-合并 方案(续) 2.6. 版本库的文件系统 2.7. 版本库 4.1. 分支开发 4.2. 开始规划版本库 4.3. 拷贝后的版本库 4.4. 一个文件的分支历史 8.1. 二维的文件目录 8.2. 版本时间—第三维! 表格清单 2.1. 版本库访问URL 5.1. 版本库数据存储对照表 6.1. 网络服务器比较 8.1. Subversion库的摘要目录 范例清单 5.1. 使用svnshell浏览版本库 5.2. txn-info.sh(异常事务报告) 6.1. 匿名访问的配置实例。 6.2. 一个认证访问的配置实例。 6.3. 一个混合认证/匿名访问的配置实例。 6.4. 关闭所有的路经检查 7.1. 注册表条目(.reg)样本文件。 8.1. 使用版本库层 8.2. 使用Python处理版本库层 8.3. 一段检出工作拷贝的简单脚本 8.4. 典型的.svn/entries文件内容 8.5. 有效地池使用
目录 译者序 前言 序言 读者 怎样阅读本书 本书约定 排版习惯 图标 本书组织结构 Subversion 1.1的新特性 这本书是免费的 致谢 来自Ben Collins-Sussman 来自Brian W. Fitzpatrick 来自C. Michael Pilato 1. 介绍 Subversion是什么? Subversion的历史 Subversion的特性 Subversion的架构 安装Subversion Subversion的组件 快速入门 2. 基本概念 版本版本模型 文件共享的问题 锁定-修改-解锁 方案 拷贝-修改-合并 方案 Subversion实战 工作拷贝 修订版本 工作拷贝怎样追踪版本库 修订版本混合的限制 摘要 3. 指导教程 帮助! 导入 修订版本: 号码、关键字和日期,噢,我的! 修订版本号 修订版本关键字 修订版本日期 初始化的Checkout 基本的工作周期 更新你的工作拷贝 修改你的工作拷贝 检查你的修改 svn status svn diff svn revert 解决冲突(合并别人的修改) 手工合并冲突 拷贝覆盖你的工作文件 下注:使用svn revert 提交你得修改 检验历史 svn log svn diff 比较本地修改 比较工作拷贝和版本库 比较版本库与版本svn cat svn list 关于历史的最后一个词 其他有用的命令 svn cleanup svn import 摘要 4. 分支与合并 什么是分支? 使用分支 创建分支 在分支上工作 分支背后的关键概念 在分支间拷贝修改 拷贝特定的修改 合并背后的关键概念 合并的最佳实践 手工追踪合并 预览合并 合并冲突 关注还是忽视祖先 常见用例 合并一条分支到另一支 取消修改 找回删除的项目 常用分支模式 发布分支 特性分支 转换工作拷贝 标签 建立最简单的标签 建立复杂的标签 分支维护 版本库布局 数据的生命周期 摘要 5. 版本库管理 版本库基本知识 理解事务和修订版本 未受版本控制的属性 版本库数据存储 Berkeley DB FSFS 版本库的创建和配置 钩子脚本 Berkeley DB配置 版本库维护 管理员的工具箱 svnlook svnadmin svndumpfilter svnshell.py Berkeley DB工具 版本库清理 管理磁盘空间 版本库的恢复 版本库的移植 版本库备份 添加项目 选择一种版本库布局 创建布局,导入初始数据 摘要 6. 配置服务器 概述 网络模型 请求和响应 客户端凭证缓存 svnserve,一个自定义的服务器 调用服务器 内置的认证和授权 创建一个用户文件和域 设置访问控制 SSH认证和授权 SSH配置技巧 初始设置 控制调用的命令 httpd,Apache的HTTP服务器 必备条件 基本的Apache配置 认证选项 基本HTTP认证 SSL证书管理 授权选项 整体访问控制 每目录访问控制 关闭路径为基础的检查 额外的糖果 版本库浏览 其它特性 支持多种版本库访问方法 7. 高级主题 运行配置区 配置区布局 配置和Windows注册表 配置选项 服务器 config 属性 为什么需要属性? 处理属性 特别属性 svn:executable svn:mime-type svn:ignore svn:keywords svn:eol-style svn:externals svn:special 自动属性设置 Peg和实施修订版本 外部定义 卖主分支 常规的卖主分支管理过程 svn_load_dirs.pl 本地化 理解地区 Subversion对地区的支持 Subversion版本库URL 8. 开发者信息 分层的库设计 版本库层 版本库访问层 RA-DAV(使用HTTP/DAV版本库访问) RA-SVN(自定义协议版本库访问) RA-Local(直接版本库访问) 你的RA库在这里 客户端层 使用API Apache可移植运行库 URL和路径需求 使用C和C++以外的语言 进入工作拷贝的管理区 条目文件 原始拷贝和属性文件 WebDAV 使用内存池编程 为Subversion做贡献 加入社区 取得源代码 开始熟悉社区政策 作出修改并测试 贡献你的修改 9. Subversion完全参考 Subversion命令行客户端:svn svn选项 svn命令 svn add svn blame svn cat svn checkout svn cleanup svn commit svn copy svn delete svn diff svn export svn help svn import svn info svn list svn log svn merge svn mkdir svn move svn propdel svn propedit svn propget svn proplist svn propset svn resolved svn revert svn status svn switch svn update svnadmin svnadmin Switches svnadmin Subcommands svnadmin create svnadmin deltify svnadmin dump svnadmin help svnadmin hotcopy svnadmin list-dblogs svnadmin list-unused-dblogs svnadmin load svnadmin lstxns svnadmin recover svnadmin rmtxns svnadmin setlog svnadmin verify svnlook svnlook选项 svnlook svnlook author svnlook cat svnlook changed svnlook date svnlook diff svnlook dirs-changed svnlook help svnlook history svnlook info svnlook log svnlook propget svnlook proplist svnlook tree svnlook uuid svnlook youngest svnserve svnserve选项 svnversion svnversion mod_dav_svn mod_dav_svn Configuration Directives A. Subversion对于CVS用户 修订版本号现在不同了 目录的版本 更多离线操作 区分状态和更新 分支和标签 元数据属性 冲突解决 二进制文件和转化 版本化的模块 认证 转化CVS版本库到Subversion B. 故障解决 共同问题 使用Subversion的问题 每当我尝试访问版本库,我的Subversion客户端挂起。 每当我尝试运行svn,它告诉我工作拷贝已经锁定。 我在查找和打开版本库时得到错误,而我知道我的版本库URL是正确的。 我怎样在file://的URL中指定一个Windows驱动器盘符? 通过网络对Subversion版本库进行操作发生问题。 在Windows XP下,Subversion服务器有时候看起来发送损坏的数据。 跟踪Subversion客户端和Apache服务器通话最好的方法是什么? 我刚刚编译了二进制分发版本,当我尝试检出Subversion,我得到一个“Unrecognized URL scheme”错误。 为什么svn revert命令要有一个明确的目标?为什么缺省不是递归的?它的行为方式与大多数其它子命令不同。 当我启动Apache,mod_dav_svn抱怨说发现一个“bad database version”,它发现了db-3.X而不是db-4.X。 我在RedHat 9得到“Function not implemented”错误,无法工作,我如何修正这个问题? 为什么日志说通过Apache(ra_dav)提交或导入的文件“(no author)”? 我偶然在Windows得到“Access Denied”错误,它们看起来随即出现。 在FreeBSD,某些操作(特别是svnadmin create)有时会挂起。 我可以在web浏览器看到我的版本库,但是svn checkout给我一个301 Moved Permanently错误。 我尝试察看我的文件的一个老版本,但是svn告诉我“path not found”。 C. WebDAV和自动版本化 WebDAV基本概念 仅是平常的WebDAV DeltaV扩展 Subversion和DeltaV 影射Subversion到DeltaV 自动版本化支持 选择mod_dav_lock 自动版本化交互性 Win32网络文件夹 Mac OS X Unix: Nautilus 2 Linux davfs2 D. 第三方工具 客户端和插件 语言绑定 版本库转化 高级工具 版本库浏览工具 E. 版权 术语表 插图清单 1.1. Subversion的架构 2.1. 一个典型的客户/服务器系统 2.2. 需要避免的问题 2.3. 锁定-修改-解锁 方案 2.4. 拷贝-修改-合并 方案 2.5. 拷贝-修改-合并 方案(续) 2.6. 版本库的文件系统 2.7. 版本库 4.1. 分支开发 4.2. 开始规划版本库 4.3. 拷贝后的版本库 4.4. 一个文件的分支历史 8.1. 二维的文件目录 8.2. 版本时间—第三维! 表格清单 2.1. 版本库访问URL 5.1. 版本库数据存储对照表 6.1. 网络服务器比较 8.1. Subversion库的摘要目录 范例清单 5.1. 使用svnshell浏览版本库 5.2. txn-info.sh(异常事务报告) 6.1. 匿名访问的配置实例。 6.2. 一个认证访问的配置实例。 6.3. 一个混合认证/匿名访问的配置实例。 6.4. 关闭所有的路经检查 7.1. 注册表条目(.reg)样本文件。 8.1. 使用版本库层 8.2. 使用Python处理版本库层 8.3. 一段检出工作拷贝的简单脚本 8.4. 典型的.svn/entries文件内容 8.5. 有效地池使用
Git权威指南 目 录 前 言 第1篇 初识Git 第1章 版本控制的前世和今生/ 2 1.1 黑暗的史前时代/ 2 1.2 CVS—开启版本控制大爆发/ 5 1.3 SVN—集中式版本控制集大成者/ 7 1.4 Git—Linus 的第二个伟大作品/ 9 第2章 爱上 Git 的理由/ 11 2.1 每日工作备份/ 11 2.2 异地协同工作/ 12 2.3 现场版本控制/ 13 2.4 避免引入辅助目录/ 15 2.5 重提交说明/ 15 2.6 想吃后悔药/ 16 2.7 更好用的提交列表/ 17 2.8 更好的差异比较/ 18 2.9 工作进度保存/ 18 2.10 代理SVN提交实现移动式办公/ 19 2.11 无处不在的分页器/ 20 2.12 快/ 21 第3章 Git的安装和使用/ 22 3.1 在Linux 下安装和使用 Git/ 22 3.1.1 包管理器方式安装/ 22 3.1.2 从源代码进行安装/ 23 3.1.3 从Git版本库进行安装/ 23 3.1.4 命令补齐/ 25 3.1.5 中文支持/ 25 3.2 在Mac OS X 下安装和使用 Git/ 26 3.2.1 以二进制发布包的方式安装/ 26 3.2.2 安装 Xcode/ 27 3.2.3 使用 Homebrew 安装 Git/ 29 3.2.4 从Git源码进行安装/ 29 3.2.5 命令补齐/ 30 3.2.6 其他辅助工具的安装/ 30 3.2.7 中文支持/ 31 3.3 在Windows 下安装和使用 Git(Cygwin篇)/ 31 3.3.1 安装 Cygwin/ 32 3.3.2 安装 Git/ 36 3.3.3 Cygwin 的配置和使用/ 37 3.3.4 Cygwin 下 Git 的中文支持/ 40 3.3.5 Cygwin 下 Git 访问 SSH 服务/ 41 3.4 Windows 下安装和使用 Git(msysGit篇)/ 45 3.4.1 安装 msysGit/ 46 3.4.2 msysGit 的配置和使用/ 48 3.4.3 msysGit中shell环境的中文支持/ 49 3.4.4 msysGit中Git的中文支持/ 50 3.4.5 使用 SSH 协议/ 51 3.4.6 TortoiseGit 的安装和使用/ 52 3.4.7 TortoiseGit 的中文支持/ 55 第2篇 Git独奏 第4章 Git 初始化/ 58 4.1 创建版本库及第一次提交/ 58 4.2 思考:为什么工作区根目录下有一个 .git 目录/ 60 4.3 思考:git config 命令的各参数有何区别/ 63 4.4 思考:是谁完成的提交/ 65 4.5 思考:随意设置提交者姓名,是否太不安全/ 67 4.6 思考:命令别名是干什么的/ 68 4.7 备份本章的工作成果/ 69 第5章 Git 暂存区/ 70 5.1 修改不能直接提交吗/ 70 5.2 理解 Git 暂存区(stage)/ 76 5.3 Git Diff 魔法/ 78 5.4 不要使用 git commit -a/ 81 5.5 搁置问题,暂存状态/ 82 第6章 Git对象/ 83 6.1 Git对象库探秘/ 83 6.2 思考:SHA1 哈希值到底是什么,是如何生成的/ 88 6.3 思考:为什么不用顺序的数字来表示提交/ 90 第7章 Git 重置/ 93 7.1 分支游标master探秘/ 93 7.2 用 reflog 挽救错误的重置/ 95 7.3 深入了解git reset命令/ 96 第8章 Git 检出/ 99 8.1 HEAD 的重置即检出/ 99 8.2 挽救分离头指针/ 102 8.3 深入了解 git checkout 命令/ 103 第9章 恢复进度/ 105 9.1 继续暂存区未完成的实践/ 105 9.2 使用 git stash/ 108 9.3 探秘 git stash/ 109 第10章 Git 基本操作/ 114 10.1 先来合个影/ 114 10.2 删除文件/ 114 10.2.1 本地删除不是真的删除/ 115 10.2.2 执行 git rm 命令删除文件/ 116 10.2.3 命令git add -u快速标记删除/ 117 10.3 恢复删除文件/ 118 10.4 移动文件/ 119 10.5 一个显示版本号的 Hello World/ 120 10.6 使用 git add -i 选择性添加/ 122 10.7 Hello World 引发的新问题/ 124 10.8 文件忽略/ 125 10.9 文件归档/ 129 第11章 历史穿梭/ 130 11.1 图形工具:gitk/ 130 11.2 图形工具:gitg/ 131 11.3 图形工具:qgit/ 135 11.4 命令行工具/ 140 11.4.1 版本表示法:git rev-parse/ 141 11.4.2 版本范围表示法:git rev-list/ 144 11.4.3 浏览日志:git log/ 146 11.4.4 差异比较:git diff/ 150 11.4.5 文件追溯:git blame/ 151 11.4.6 二分查找:git bisect/ 152 11.4.7 获取历史版本/ 156 第12章 改变历史/ 157 12.1 悔棋/ 157 12.2 多步悔棋/ 159 12.3 回到未来/ 161 12.3.1 时间旅行一/ 162 12.3.2 时间旅行二/ 167 12.3.3 时间旅行三/ 171 12.4 丢弃历史/ 174 12.5 反转提交/ 177 第13章 Git 克隆/ 179 13.1 鸡蛋不装在一个篮子里/ 179 13.2 对等工作区/ 180 13.3 克隆生成裸版本库/ 183 13.4 创建生成裸版本库/ 184 第14章 Git库管理/ 187 14.1 对象和引用哪里去了/ 187 14.2 暂存区操作引入的临时对象/ 189 14.3 重置操作引入的对象/ 191 14.4 Git管家:git-gc/ 193 14.5 Git管家的自动执行/ 196 第3篇 Git和声 第15章 Git协议与工作协同/ 200 15.1 Git 支持的协议/ 200 15.2 多用户协同的本地模拟/ 202 15.3 强制非快进式推送/ 203 15.4 合并后推送/ 207 15.5 禁止非快进式推送/ 208 第16章 冲突解决/ 210 16.1 拉回操作中的合并/ 210 16.2 合并一:自动合并/ 212 16.2.1 修改不同的文件/ 212 16.2.2 修改相同文件的不同区域/ 214 16.2.3 同时更改文件名和文件内容/ 215 16.3 合并二:逻辑冲突/ 217 16.4 合并三:冲突解决/ 218 16.4.1 手工编辑完成冲突解决/ 221 16.4.2 图形工具完成冲突解决/ 221 16.5 合并四:树冲突/ 225 16.5.1 手工操作解决树冲突/ 227 16.5.2 交互式解决树冲突/ 228 16.6 合并策略/ 230 16.7 合并相关的设置/ 231 第17章 Git 里程碑/ 233 17.1 显示里程碑/ 234 17.2 创建里程碑/ 236 17.2.1 轻量级里程碑/ 237 17.2.2 带说明的里程碑/ 238 17.2.3 带签名的里程碑/ 239 17.3 删除里程碑/ 242 17.4 不要随意更改里程碑/ 243 17.5 共享里程碑/ 243 17.6 删除远程版本库的里程碑/ 246 17.7 里程碑命名规范/ 247 第18章 Git 分支/ 253 18.1 代码管理之殇/ 253 18.1.1 发布分支/ 253 18.1.2 特性分支/ 256 18.1.3 卖主分支/ 257 18.2 分支命令概述/ 258 18.3 “Hello World”开发计划/ 259 18.4 基于特性分支的开发/ 260 18.4.1 创建分支 user1/getopt/ 261 18.4.2 创建分支 user2/i18n/ 262 18.4.3 开发者 user1 完成功能开发/ 263 18.4.4 将 user1/getopt 分支合并到主线/ 264 18.5 基于发布分支的开发/ 265 18.5.1 创建发布分支/ 266 18.5.2 开发者 user1 工作在发布分支/ 267 18.5.3 开发者 user2 工作在发布分支/ 268 18.5.4 开发者 user2 合并推送/ 270 18.5.5 发布分支的提交合并到主线/ 271 18.6 分支变基/ 275 18.6.1 完成 user2/i18n 特性分支的开发/ 275 18.6.2 分支 user2/i18n 变基/ 277 第19章 远程版本库/ 284 19.1 远程分支/ 284 19.2 分支追踪/ 287 19.3 远程版本库/ 290 19.4 PUSH 和 PULL 操作与远程版本库/ 292 19.5 里程碑和远程版本库/ 294 19.6 分支和里程碑的安全性/ 294 第20章 补丁文件交互/ 296 20.1 创建补丁/ 296 20.2 应用补丁/ 297 20.3 StGit 和 Quilt/ 300 20.3.1 StGit/ 300 20.3.2 Quilt/ 304 第4篇 Git协同模型 第21章 经典Git协同模型/ 308 21.1 集中式协同模型/ 308 21.1.1 传统集中式协同模型/ 309 21.1.2 Gerrit 特殊的集中式协同模型/ 310 21.2 金字塔式协同模型/ 311 21.2.1 贡献者开放只读版本库/ 312 21.2.2 以补丁方式贡献代码/ 313 第22章 Topgit 协同模型/ 314 22.1 作者版本控制系统的三个里程碑/ 314 22.2 Topgit 原理/ 316 22.3 Topgit 的安装/ 317 22.4 Topgit 的使用/ 319 22.5 用Topgit方式改造Topgit/ 330 22.6 Topgit 使用中的注意事项/ 334 第23章 子模组协同模型/ 336 23.1 创建子模组/ 336 23.2 克隆带子模组的版本库/ 339 23.3 在子模组中修改和子模组的更新/ 340 23.4 隐性子模组/ 343 23.5 子模组的管理问题/ 345 第24章 子树合并/ 347 24.1 引入外部版本库/ 347 24.2 子目录方式合并外部版本库/ 349 24.3 利用子树合并跟踪上游改动/ 351 24.4 子树拆分/ 353 24.5 git-subtree 插件/ 353 第25章 Android 式多版本库协同/ 356 25.1 关于 repo/ 357 25.2 安装 repo/ 357 25.3 repo和清单库的初始化/ 359 25.4 清单库和清单文件/ 360 25.5 同步项目/ 361 25.6 建立 Android 代码库本地镜像/ 363 25.7 repo 的命令集/ 365 25.8 repo 命令的工作流/ 370 25.9 好东西不能 Android 独享/ 371 25.9.1 repo+Gerrit 模式/ 371 25.9.2 repo 无审核模式/ 371 25.9.3 改进的 repo 无审核模式/ 372 第26章 Git 和 SVN 协同模型/ 378 26.1 使用 git-svn 的一般流程/ 380 26.2 git-svn 的奥秘/ 386 26.2.1 Git 库配置文件的扩展及分支映射/ 387 26.2.2 Git工作分支和 Subversion 如何对应/ 388 26.2.3 其他辅助文件/ 390 26.3 多样的 git-svn 克隆模式/ 390 26.4 共享 git-svn 的克隆库/ 393 26.5 git-svn 的局限/ 394 第5篇 搭建Git服务器 第27章 使用 HTTP 协议/ 398 27.1 哑传输协议/ 398 27.2 智能 HTTP 协议/ 400 27.3 Gitweb 服务器/ 401 27.3.1 Gitweb的安装/ 402 27.3.2 Gitweb的配置/ 403 27.3.3 版本库的 Gitweb 相关设置/ 404 27.3.4 即时Gitweb服务/ 405 第28章 使用 Git 协议/ 406 28.1 Git 协议语法格式/ 406 28.2 Git 服务软件/ 406 28.3 以 inetd 方式配置运行/ 406 28.4 以 runit 方式配置运行/ 407 第29章 使用 SSH 协议/ 409 29.1 SSH 协议语法格式/ 409 29.2 服务架设方式比较/ 409 29.3 关于 SSH 公钥认证/ 411 29.4 关于 SSH 主机别名/ 411 第30章 Gitolite 服务架设/ 413 30.1 安装Gitolite/ 414 30.1.1 服务器端创建专用账号/ 414 30.1.2 Gitolite 的安装/升级/ 415 30.1.3 关于 SSH 主机别名/ 417 30.1.4 其他的安装方法/ 418 30.2 管理 Gitolite/ 419 30.2.1 管理员克隆 gitolite-admin 管理库/ 419 30.2.2 增加新用户/ 420 30.2.3 更改授权/ 422 30.3 Gitolite 授权详解/ 423 30.3.1 授权文件的基本语法/ 423 30.3.2 定义用户组和版本库组/ 424 30.3.3 版本库ACL/ 424 30.3.4 Gitolite 授权机制/ 426 30.4 版本库授权案例/ 427 30.4.1 对整个版本库进行授权/ 427 30.4.2 通配符版本库的授权/ 428 30.4.3 用户自己的版本库空间/ 429 30.4.4 对引用的授权:传统模式/ 430 30.4.5 对引用的授权:扩展模式/ 430 30.4.6 对引用的授权:禁用规则的使用/ 431 30.4.7 用户分支/ 431 30.4.8 对路径的授权/ 432 30.5 创建新版本库/ 432 30.5.1 在配置文件中出现的版本库,即时生成/ 433 30.5.2 通配符版本库,管理员通过推送创建/ 434 30.5.3 直接在服务器端创建/ 435 30.6 对 Gitolite 的改进/ 435 30.7 Gitolite 功能拓展/ 436 30.7.1 版本库镜像/ 436 30.7.2 Gitweb 和 Git daemon 支持/ 438 30.7.3 其他功能拓展和参考/ 439 第31章 Gitosis 服务架设/ 441 31.1 安装 Gitosis/ 442 31.1.1 Gitosis 的安装/ 442 31.1.2 服务器端创建专用账号/ 442 31.1.3 Gitosis 服务初始化/ 443 31.2 管理 Gitosis/ 443 31.2.1 管理员克隆 gitolit-admin 管理库/ 443 31.2.2 增加新用户/ 444 31.2.3 更改授权/ 446 31.3 Gitosis 授权详解/ 447 31.3.1 Gitosis 默认设置/ 447 31.3.2 管理版本库 gitosis-admin/ 447 31.3.3 定义用户组和授权/ 448 31.3.4 Gitweb 整合/ 449 31.4 创建新版本库/ 449 31.5 轻量级管理的 Git 服务/ 450 第32章 Gerrit 代码审核服务器/ 452 32.1 Gerrit 的实现原理/ 452 32.2 架设 Gerrit 的服务器/ 456 32.3 Gerrit 的配置文件/ 461 32.4 Gerrit 的数据库访问/ 462 32.5 立即注册为 Gerrit 管理员/ 464 32.6 管理员访问 SSH 的管理接口/ 467 32.7 创建新项目/ 468 32.8 从已有的 Git 库创建项目/ 472 32.9 定义评审工作流/ 473 32.10 Gerrit 评审工作流实战/ 477 32.10.1 开发者在本地版本库中工作/ 477 32.10.2 开发者向审核服务器提交/ 478 32.10.3 审核评审任务/ 478 32.10.4 评审任务没有通过测试/ 480 32.10.5 重新提交新的补丁集/ 482 32.10.6 新修订集通过评审/ 483 32.10.7 从远程版本库更新/ 485 32.11 更多 Gerrit 参考/ 486 第33章 Git 版本库托管/ 487 33.1 Github/ 487 33.2 Gitorious/ 489 第6篇 迁移到Git 第34章 CVS版本库到Git的迁移/ 492 34.1 安装cvs2svn(含 cvs2git)/ 492 34.1.1 Linux下cvs2svn的安装/ 492 34.1.2 Mac OS X 下 cvs2svn 的安装/ 493 34.2 版本库转换的准备工作/ 494 34.2.1 版本库转换注意事项/ 494 34.2.2 文件名乱码问题/ 494 34.2.3 提交说明乱码问题/ 494 34.3 版本库转换/ 496 34.3.1 配置文件解说/ 496 34.3.2 运行cvs2git完成转换/ 500 34.4 迁移后的版本库检查/ 501 第35章 更多版本控制系统的迁移/ 502 35.1 SVN版本库到Git的迁移/ 502 35.2 Hg 版本库到Git的迁移/ 503 35.3 通用版本库迁移/ 505 35.4 Git 版本库整理/ 511 35.4.1 环境变量过滤器/ 513 35.4.2 树过滤器/ 513 35.4.3 暂存区过滤器/ 513 35.4.4 父节点过滤器/ 514 35.4.5 提交说明过滤器/ 514 35.4.6 提交过滤器/ 515 35.4.7 里程碑名字过滤器/ 516 35.4.8 子目录过滤器/ 516 第7篇 Git的其他应用 第36章 etckeeper/ 518 36.1 安装 etckeeper/ 518 36.2 配置 etckeeper/ 519 36.3 使用 etckeeper/ 519 第37章 Gistore/ 520 37.1 Gistore 的安装/ 520 37.1.1 软件依赖/ 520 37.1.2 从源码安装 Gistore/ 521 37.1.3 用 easy_install 安装/ 521 37.2 Gistore 的使用/ 522 37.2.1 创建并初始化备份库/ 522 37.2.2 Gistore 的配置文件/ 523 37.2.3 Gistore 的备份项管理/ 524 37.2.4 执行备份任务/ 525 37.2.5 查看备份日志/ 525 37.2.6 查看及恢复备份数据/ 527 37.2.7 备份回滚及设置/ 528 37.2.8 注册备份任务别名/ 529 37.2.9 自动备份:crontab/ 529 37.3 Gistore 双机备份/ 529 第38章 补丁中的二进制文件/ 531 38.1 Git 版本库中二进制文件变更的支持/ 531 38.2 对非 Git 版本库中二进制文件变更的支持/ 535 38.3 其他工具对 Git 扩展补丁文件的支持/ 536 第39章 云存储/ 538 39.1 现有云存储的问题/ 538 39.2 Git 式云存储畅想/ 539 第8篇 Git杂谈 第40章 跨平台操作 Git/ 542 40.1 字符集问题/ 542 40.2 文件名大小问题/ 543 40.3 换行符问题/ 545 第41章 Git 的其他特性/ 549 41.1 属性/ 549 41.1.1 属性定义/ 549 41.1.2 属性文件及优先级/ 550 41.1.3 常用属性介绍/ 552 41.2 钩子和模板/ 557 41.2.1 Git 钩子/ 557 41.2.2 Git 模板/ 562 41.3 稀疏检出和浅克隆/ 563 41.3.1 稀疏检出/ 563 41.3.2 浅克隆/ 566 41.4 嫁接和替换/ 568 41.4.1 提交嫁接/ 568 41.4.2 提交替换/ 568 41.5 Git 评注/ 570 41.5.1 评注的奥秘/ 570 41.5.2 评注相关命令/ 573 41.5.3 评注相关配置/ 574 第9篇 附录 附录A Git 命令索引/ 576 A.1 常用的Git命令/ 576 A.2 对象库操作相关命令/ 578 A.3 引用操作相关命令/ 578 A.4 版本库管理相关命令/ 579 A.5 数据传输相关命令/ 579 A.6 邮件相关命令/ 580 A.7 协议相关命令/ 580 A.8 版本库转换和交互相关命令/ 581 A.9 合并相关的辅助命令/ 581 A.10 杂项/ 582 附录B Git 与 CVS 面对面/ 583 B.1 面对面访谈录/ 583 B.2 Git 和CVS 命令对照/ 585 附录C Git 与 SVN 面对面/ 587 C.1 面对面访谈录/ 587 C.2 Git 和SVN 命令对照/ 589 附录D Git 与 Hg 面对面/ 592 D.1 面对面访谈录/ 592 D.2 Git和Hg 命令对照/ 593

1,277

社区成员

发帖
与我相关
我的任务
社区描述
软件工程 CVS/SVN
社区管理员
  • 版本控制社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧