关于GIT

最近公司使用了新的版本控制工具Git, 今天正好有时间进行一下总结。众所周知,Git是一款开源的分布式版本控制工具(区别于SVN的集中式,分散式版本控制系统和集中式版本控制系统,其最大差别在于前者的仓库可以有多份。事实上,每个开发者都可以在自己的一台或者多台电脑上建立档案库), 在所有分布式版本控制工具中,git可以说是最快,最简单,最流行的。但是正因如此,它的安全性有一些问题, 所以需要搭建自己公司的服务器来保证代码的保密性,我公司采用stash建立git服务器,来防止代码的泄漏。

一  git的工作流程

通过图片可以看出,git工作所要经过的三个部分可以分为: 共享版本库(即服务器端),开发人员本地代码,本地仓库。接下来说一下用到的基本命令和所起的作用:

1. Clone: 从远程共享版本库下载下全部的代码(和SVN的Check out类似)。

2. Commit: 将本地修改的代码提交到本地仓库 (这一步是SVN没有的,也是版本集中式和分布式的主要区别所在)

3. Pull: 将远程共享版本库的代码更新到本地 (相当于SVN的update)

4. Push: 将本地仓库修改的代码提交到远程共享版本库。(相当于SVN的commit)


二 git的基本命令

1. 初始化一个git仓库:git init

2. 如果使用GIT必须给GIT配置用户名和邮箱,给当前的git仓库配置用户名和邮箱:git config user.name "Alan",  git config user.email "1367240056@163.com"(也可以配置全局邮箱:git config --global user.name "Alan",  git config --global user.email "1367240056@163.com", git在搜索邮箱时会优先搜索当前的用户名和邮箱,找不到再搜索全局的)

3. 初始化项目:

touch main.m: 创建了main.m文件

git add main.m: 将main.m添加到暂缓区

git commit -m "初始化项目": 将所在暂缓区的所有内容提交到本地仓库,并清空暂缓区(这行命令最后一定要加注释"")

4.查看文件状态

git status

红色: 该文件被添加或修改,但是没有添加到git的暂缓区

绿色: 该文件在暂缓区,但是没有提交到本地版本库


三 GIT的工作原理

如果想要了解git的工作原理,需要先知道几个核心概念

工作区(Working Directory):仓库文件夹里除.git目录以外的内容

版本库(Repository):.git目录,用来存储记录版本信息(暂缓区(stage), 分支(master):git自动创建的第一个分支, HEAD指针:用于指向当前分支)

git add和git commit原理:

git add: 把修改的文件或新添加的文件添加到缓存区

git commit: 把暂缓区的所有内容提交到当前分支

给命令行起别名

git config alias.st "status"

git config alias.ci "commit -m"

删除文件

git rm person.m: 删除person.m

查看版本信息

git log: 可以查看当前版本及之前的版本信息(不包括回退的,版本号是由sha1哈希算法生成的40位哈希值)

git reflog: 可以查看所有版本回退的操作(可以查看较多的版本)

版本回退

git reset --hard HEAD: 回到当前版本

git reset --hard HEAD^: 回到上一个版本

git reset --hard HEAD^^:回到上上个版本

git reset --hard HEAD~100: 回到前100个版本

git reset --hard 版本号(前五位即可,一般不会重复)

git push -f: 强制回退(适用于多人开发冲突)


四 共享版本库

1. 搭建git服务器,非常繁琐(Linux)

2. 可以把代码托管到Github/OSChina

3. 一个文件夹

一个文件夹作为共享版本库: git init --bare

将共享版本库的所有内容下载到本地: git clone 共享版本库地址


五 版本备份

列举个详细的例子:

1. 1.0版本开发完毕,将1.0版本上传到AppStore,对1.0版本进行备份(打上标签)

git tag -a pgs1.0 -m "这是1.0版本":标记tag

git tag:查看tag

2. 需要将标签push到共享版本库

git push original pgs1.0

3.开始2.0版本的开发

4. 发现1.0版本有bug,新建一个文件夹用于修复bug,将共享版本库所有内容clone

git clone

5. 将当前的代码转为1.0标签,创建分支,并切换到该分支

git checkout pgs1.0:转为1.0标签

git checkout -b pgs1.1fixbug:创建分支,并切换到该分支

6. 在分支中修复bug,上传到AppStore,将修复好的版本,打上tag,并上传到共享版本库

git tag -a  pgs1.1 -m "这是修复了1.0bug的1.1版本"

git push origin pgs1.1:上传到共享版本库

7. 跟当前正在开发的2.0版本进行合并

Xcode:source control -> pull ->pgs1.1fixbug

8. 删除分支

git branch:看当前在哪个分支

git branch -r:查看本地版本库的分支

git branch -d pgs1.1fixbug:删除本地分支

git branch -r -d origin/pgs1.1fix 不够:删除本地版本库分支

git push origin --delete pgs1.1fixbug:提交到共享版本库


六 创建新人的共享版本库

Source Control -> pgs master -> configure pgs -> remotes -> 点击左下角的➕号,添加新的共享版本库


七 本地代码上传到github

第一步:建立git仓库 
cd到你的本地项目根目录下,执行git命令

git init

 第二步:将项目的所有文件添加到仓库中

git add .

如果想添加某个特定的文件,只需把.换成特定的文件名即可

第三步:将add的文件commit到仓库

git commit -m "注释语句"

第四步:去github上创建自己的Repository,创建页面如下图所示: 

点击下面的Create repository,就会进入到类似下面的一个页面,拿到创建的仓库的https地址,蓝色标示的地址栏里的就是 

第五步:重点来了,将本地的仓库关联到github上

git remote add origin https://github.com/AlanZhangQ/Alan_cocoaSocket

后面的https链接地址换成你自己的仓库url地址,也就是上面红框中标出来的地址

第六步:上传github之前,要先pull一下,执行如下命令:

git pull origin master

敲回车后,会执行输出类似如下 
这里写图片描述

第七步,也就是最后一步,上传代码到github远程仓库

git push -u origin master

执行完后,如果没有异常,等待执行完就上传成功了,中间可能会让你输入Username和Password,你只要输入github的账号和密码就行了

最后附上代码上传成功后的截图: 


八 一些需要注意的点

git add -A和 git add .  以及 git add -u在功能上看似很相近,但还是存在一点差别。

git add . :他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。

git add -u :他仅监控已经被add的文件(即tracked file),他会将被修改的文件提交到暂存区。add -u 不会提交新文件(untracked file)。(git add --update的缩写)

git add -A :是上面两个功能的合集(git add --all的缩写)

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值