源代码版本管理的基本概念
举例
- VCS
- SCM
- CVS,SVN,ClearCase
- Git,Mercurials
分类:
- 基于文件的:RCS,SCCS
- 基于中心服务器的:CVS,SVN,SS,TFS
- 分布式的:Git,Mercurial,Bazaar
用途
- 备份:改回原来版本
- 协作:合并、解决冲突
Git
特点
- 基于commit进行管理,而不失文件
- 独特的staging area(暂存工作区)
基本用法
上传下载
- git init//在本地建立一个新仓库
- git clone url// 从服务器上克隆一个仓库到本地
- git remote add name url //管理远程仓库
- git pull [name branch]//下载
- git push name branch //上传
- git add//
- git commit
撤销修改
撤销仅在工作副本中的修改
git checkout --file撤销已经登记到 stage 中的修改
git reset HEAD file //(退回到工作副本)
git reset --hard HEAD file//(退回到最后一次提交状态)撤销已提交到本地仓库的修改
git revert<commit rev>//(抵消)
git reset -hard <commit rev>//(撤销)撤销已经推送到服务器中的修改
git revert
Branch 和 Tag
- 用途:长期 重大修改
- 创建:git branch name(自动提供主提交流名为 :master)
- 使用:也是commit 指针
- 合并:
- 结束: git branch -d name
版本发行等,适合用 Tag 做记录
annotated:git tag -a name[rev]
lightweight:git tag name [rev]
注意:tag 不会自动推送给 remote
Git特色: rebase
操作演示 in Xcode
1.在创建project时选择Git支持
2.这样在项目菜单中的source control 中就有相关的选项了
3.做一个修改后 相关的文件就回显示一个M
的标记
4.commit,会显示修改的内容
5.这样在历史中就可以看到版本的情况了
6.如果要通过服务器保存代码的话,需要设置服务器信息
7.然后通过check out 功能选择项目
8.push to remote
几个视图
- 比较
- Blame视图
- log