源代码管理工具GIT的日常使用

    每天总结一点,我相信对以后会有很大的好处.现在总结一下GIT在开发中常用的一些知识.

源代码管理器GIT使用简单,不会增加额外的工作量

git如果要用好,还是需要掌握一些命令行

1. 代码仓库(SVN需要安装一个服务器)

$ git init

.git文件夹是自动维护的,"一般"不用管

2. 使用前需要做一些简单的设置工作

告诉git你是谁(name),怎么找到你(email)

源代码管理工具,最重要的记录修改的痕迹,就要知道每一个修改都是谁做的

单元测试,集成测试,自动化测试,压力测试

有专门的服务器,可以来自动完成单元测试,以及其他测试!

# 设置用户名

$ git config user.name manager

# 设置电子邮件

$ git config user.email manager@163.com

以上两个设置,都是跟项目有关的,一旦将项目文件夹删除,设置就失效了.

以下两个设置可以一劳永逸

$ git config --global user.name "user name"

$ git config --global user.email username@163.com

------------------------------------------------------------

帮助信息

$ svn help 子命令

# 要退出帮助信息,按"q"

# 翻看下页,按"空格"

# 翻看上页,按"CTRL+B"

# 要搜索相关文字,按"/"然后输入"相关文字"

本地单人开发 "源代码管理 => 团队开发" 单人同样需要版本控制

=============================================

1. 创建文件

# 文件在工作目录中

2. 把文件添加到暂存区 (注意:有添加修改都需要使用add命令)

$ git add main.c

3. 查看状态

$ git statuts

4. 提交到代码仓库

$ git commit main.c -m "新建main.c"

提示: -m参数不要忘记加, 后面是来添加备注的,否则会进入vim

alias(别名)

$ git config alias.st status

$ git config alias.ci "commit -m"

# 查看修改日志

$ git log

在git中"版本号"是一个40位长的哈希(hash-散列)值, md5,sha1,sha256

在git使用中,如果要切换到不同的版本,只需要使用哈希值的"前7位"就可以

源代码管理器,功能就是"后悔" => 支持无限次后悔,做到任意版本之间的穿梭

# 返回到上一个版本状态

$ git reset --hard HEAD^

# 返回到任意指定版本号的文件

$ git reset --hard cb53229

# 查看所有的版本号

$ git reflog

# 回退到上次提交的状态

$ git reset --hard HEAD

# 可以将指定的文件恢复上一次提交的状态

$ git checkout Person.h

如果工作阶段性告一段落之后,一定记住提交,而且要写清楚"注释".

# 比较代码的变化

$ git diff

在团队开发中:

1. 公司需要有一个代码仓库

====================================

git不需要单独搭建服务器

git的服务器,可以是文件共享目录,云端dropbox,U盘,GitHub,OSChina...

# 专门用来做代码仓库,本身不用于开发,单纯的用来同步所有团队成员的代码(空的版本库)

$ git init --bare

2. 项目经理准备文件

1> 克隆 clone

从代码仓库复制所有的源代码到本地

$ git clone /Users/apple/Desktop/GIT演练/公司的代码库/weibo

2> 个人配置(上课时使用)

git config user.name manager

git config user.email manager.163.com

3> .gitignore

https://github.com/github/gitignore

放在项目的跟目录中!

===================================================

echo -e "# Xcode

#

build/

*.pbxuser

*.mode1v3

*.mode2v3

*.perspectivev3

xcuserdata

*.xccheckout

*.moved-aside

DerivedData

*.hmap

*.ipa

*.xcuserstate

# CocoaPods

#

# We recommend against adding the Pods directory to your .gitignore. However

# you should judge for yourself, the pros and cons are mentioned at:

# http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control

#

# Pods/" > .gitignore

===================================================

$ git add .

4> 使用Xcode创建项目

2. 新员工加入团队

1> 问经理git的地址,地址可以非常多种类

2> /Users/apple/Desktop/GIT演练/公司的代码库/weibo

# 进入终端,到自己的工作目录,从服务器下载完整的源代码

$ git clone /Users/apple/Desktop/GIT演练/公司的代码库/weibo

fetch first : 请先更新,服务器上有更新的版本.

在开发过程中,先更新(pull),再提交(commit[本地]+push[远程代码库])

3. 经理添加新的测试服务器给新员工熟悉

"svn trunk"

在git中,默认开发的远程服务器叫做"origin/master"

URL:

协议头://主机名/资源路径

如果出现中文或者特殊字符需要做百分号转义

1> 选择"Source Control" - "weibo" - "Config Weibo"

2> 选择remote

3> 点+,添加一个新的服务器

file:///Users/apple/Desktop/newdemo

4> 在新的服务器路径中新建空白的代码仓库

$ git init --bare

新人入职

1. clone

2. 删除.git目录,跟公司的服务器断开

3. git add .

4. git commit -m "新的开始"

5. 进Xcode进行各种演练,并且适当的时候,要提交并且添加注释!

不管公司使用的是svn还是git,都要记住在本地搞一个git非常有帮助!

Git tag

$ git tag -a v1.0 -m "1.0发布版本"

给本地代码库打一个标签

$  git push origin v1.0

将标签推送到了远程服务器

经理又在Xcode中辛勤的劳动,并且提交了"多次"版本

需求:要查看1.0当时的版本情况! 那个时候的架构设计,1.0版本有错误,需要修改!

解决步骤:

1> clone 完整的代码库到"新"的位置

$ git clone /Users/apple/Desktop/GIT演练/公司的代码库/weibo

2> 切换到打标签的位置

$ git checkout v1.0

3> 建立一个新的分支

$ git checkout -b new_branch_name

tag,当我们需要在某一个时间点,对版本做一个标记的时候,就可以打上一个标签

可以在需要的时候,迅速切换到当时的时间点的代码状态!

cocoapod 是用来管理第三方框架的工具!

pod search AFN

面试的时候,会问:你是如何学习第三方框架的!

1> 去第三方框架的github主页上浏览,文档

2> 下载到本地,按照官网上的代码,编写测试程序,体会该框架的好处和便利

AFN :

- 对 NSURLConnection,NSURLSession 做了一个包装

- 等于 网络连接 + 出错处理 + 序列化和反序列化

3> 如果对框架感兴趣,或者口碑非常好,就可以Fork下来,自己进行深度研究!

4> 如果发现了其中bug,将修改提交个原作者,原作者确认后,可以合并到第三方框架中!

本人在AFN框架中第几个版本的第几个分之中的修改过一个bug,封装了一个工具类....

Fork 如果对某一个第三发框架感兴趣,可以Fork,会建立一个分支,到自己的github主页上

1> Fork

2> git clone 到本地

3> 连写,带改,带测试!

Fork 能够让全世界优秀的程序员共同来优化一个优秀的框架!

*** SSH Key 一旦设置,就可以和Xcode无缝连接

1. 用户-Settings - Generating SSH Keys

2.

# 回到用户的主目录

$ cd

# 创建.ssh目录

$ mkdir .ssh

# 进入~/.ssh

$ cd .ssh

# 使用ssh-keygen生成rsa的公钥和私钥

$ ssh-keygen -t rsa -C "XXX@gmail.com"

# 查看公钥的内容

$ cat id_rsa.pub

拷贝完整的的公钥内容

进入github网页,Add SSH Key(添加SSH Key)

在回到命令行

# 验证密钥

$ ssh -T git@github.com

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,594评论 18 139
  • 源代码管理工具-GIT 一. 掌握 - git 概述 1. git 简介? 什么是git?git是一款开源的分布式...
    DwightChan阅读 575评论 0 1
  • ## 一. git 概述 ### 1. git 简介? 1. 什么是git? > git是一款开源的分布式版本控制...
    Mr吴标阅读 1,504评论 0 2
  • 一. git 概述 1. git 简介? 什么是git? > git是一款开源的分布式版本控制工具 > 在世界上所...
    王风云阅读 381评论 0 3
  • 源代码管理工具-GIT 一. 掌握 - git 概述 1. git 简介? 什么是git? git是一款开源的分布...
    牧马人_hlc阅读 3,254评论 0 7