版本控制-Git

源代码版本管理的基本概念

举例

  • 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支持

14595834623948.jpg

2.这样在项目菜单中的source control 中就有相关的选项了

14595836201769.jpg
14595836371149.jpg

3.做一个修改后 相关的文件就回显示一个M的标记

14595838178567.jpg

4.commit,会显示修改的内容

14595839853685.jpg
14595839925907.jpg

5.这样在历史中就可以看到版本的情况了

14595840222987.jpg

6.如果要通过服务器保存代码的话,需要设置服务器信息

14595841430602.jpg
14595841486465.jpg

7.然后通过check out 功能选择项目

14595842565696.jpg
14595842617667.jpg

8.push to remote

14595851854397.jpg

几个视图

  • 比较
14595853919594.jpg
14595854025445.jpg
  • Blame视图
14595854406216.jpg
14595854552921.jpg
  • log
14595854772913.jpg
14595854831557.jpg

推荐阅读更多精彩内容