这篇文章主要和大家分享一下在源代码管理过程中git的原理,详细的使用,主要分为三个部分
- 前言
- 使用
- 结尾
一. 前言
首先讲解之前先大概介绍一下什么是git?
git是款开源的分布式版本控制的工具,在现行的分布式版本工具中,git是最快,最简单并且最流行的,它是由Linux之父:Linus Benedict Torvalds起初创建,在国外已经广泛使用,在国内大家以前多使用的是svn
集中式版本控制工具,现在已经慢慢的在国内普及。如果有一定开发经验的人肯定还知道其他版本控制工具,如CVS
,在CVS
之上的SVN
,还有ClearCase
,VSS
,不过一般的除了SVN``git
外,大多数人还是没有用过的。
其次git的工作流程是怎么样的?
主要流程就是首先将远程代码仓库clone下来,会在本地形成一个.git的文件夹,这个文件夹相当于本地的一个代码仓库,然后Pull,将远程仓库的项目下载到本地,等你写好自己的代码后,先commit到本地的仓库,然后push到远程的代码仓库中。
再者git的工作原理是什么?
首先得知道以下几个核心的概念
- 工作区(Working Directory):仓库文件夹里除了.git目录以外的内容
-
版本库(Repository):.git目录,用于存储记录版本的信息
暂缓区(stage)
分支 (master):git自动创建的第一个分支
HEAD指针:用于指向当前的分支(就是当前开发的分支)
- git add 和git commit的的原理
git add:把文件修改添加到暂缓区
git commit :把暂缓区的所有内容提交到当前的分支
主要工作的原理如下图:##
主要是将工作区的项目首先添加到版本库的暂缓区(stage)中,然后添加到分支(master)的代码仓库中。
二. 使用
关于git的使用我主要介绍两种办法,命令行和Xcode中的使用。
- 一. 命令行
git 的命令行
一、命令行的操作
1.进入到工作目录下,初始化一个代码仓库
git init
2.给该git仓库配置一个用户名和邮箱
git config user.name “123”
git config user.email “123@163.com”
(在初始化一个代码仓库时,这里的用户名和邮箱可以随便填,是为了标明唯一性,否则会默认这台电脑的用户名和密码)
3.初始化代码
touch main.m
git add main.m
git commit -m “文件名”将文件提交到代码仓库
4.查看文件的状态(git status)
·Untracked files(红色文件):新添加的文件在工作区,没有被添加到暂缓区。
·Changes to be committed (绿色:)将工作区的代码已经添加到了暂缓区中,可以被提交到代码仓库中了。
5.修改文件
open main.m
6.将工作区所有的饿文件添加到暂缓区中
git add .
7.给git命令起别名
git config alias.st “status”
git config alias.ci “commit -m”
8.查看历史版本
git log
git reflog 查看操作过的所有版本
·git版本号 唯一性
·git版本号是由sha1 加密算法生成一个40位哈希值
9.版本回退
·git reset —hard HEAD 回退到当前的版本
·git reset —hard HEAD^
·git reset —hard 版本号前7位
10.—global的作用
如果在git后添加--global表示配置全局的所有的
如果是团队开发重要流程如下:
1.项目经理创建一个代码共享库(让一个文件夹成为共享库)
git init —bare
2.经理将共享代码仓库clone下来
git clone 地址
3.项目经理初始化项目
·忽略文件:在我们.git同级目录下创建一个.gitignore文件,(忽略文件是指,git提交的时候有很多不必要的文件,所以得在该文件中制定需要忽略的文件)
·可以去github 上查找oc需要忽略的内容,将内容填写到.gitignore中
github地址
https://github.com/github/gitignore/blob/master/Objective-C.gitignore
·git add./ git commit - m “注释” 将.gitignore添加到代码仓库
以上的命令基本可以满足所有功能,大家如果想要更详细的操作可以查看其他的资料加以补充。
- 二. Xcode中使用(这里主要讲解将项目托管到github的远程仓库git,这里主要利用图片演示方便大家很快明白,提前说明一下Xcode对git的支持可以说是完美支持)
在利用Xcode创建的项目的中使用的勾选Git,会默认创建一个.git的文件夹,这个文件夹是隐藏的,可以在mac下设置显示隐藏的文件。
添加远程代码仓库的地址
这里进行类似命令行的操作
三. 结尾
对于git的主要介绍就到这里了,具体的使用还需要不断的训练操作,在git的操作中肯定也会遇到版本冲突,解决起来也比较容易,当然最好每次在写项目之前先pull,然后再push,还有对像StroyBoard和xib的修改如果是团队开发,最好一个人去修改,如果多人同时修改,如果产生冲突,解决起来是很麻烦的。这篇文章的目的主要是给大家从原理上帮大家理清git,好进行后面的内容的深入学习。不明白的地方大家可以留言,我一定答复。