美文网首页
源代码管理工具GIT的日常使用

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

作者: 蓝心儿的蓝色之旅 | 来源:发表于2015-12-15 20:43 被阅读845次

        每天总结一点,我相信对以后会有很大的好处.现在总结一下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

    相关文章

      网友评论

          本文标题:源代码管理工具GIT的日常使用

          本文链接:https://www.haomeiwen.com/subject/liiuhttx.html