美文网首页
GIt的使用 --初级

GIt的使用 --初级

作者: Daimer | 来源:发表于2017-08-11 14:33 被阅读0次

    什么是 Git?
    ----Git 是目前世界上最先进的分布式版本控制系统
    Git 的诞生
    作者是 Linux 之父:Linus Benedict Torvalds
    当初开发 Git 仅仅是为了辅助 Linux 内核的开发(管理源代码)
    git 开发时间表
    git 的产生是 Linux Torvals 在无奈被逼的情况下创造的,我看了一下时间历程:

    2005 年 4 月3 日开始开发 git

    2005 年 4 月 6 日项目发布

    2005 年 4 月 7 日 Git 开始作为自身的版本控制工具

    2005 年 4 月 18 日发生第一个多分支合并

    2005 年 4 月 29 日 Git 的性能达到 Linux 预期

    2005年 7 月 26 日 Linux 功成身退,将 Git 维护权交给 Git 另一个主要贡献者 Junio C Hamano,直到现在

    牛是怎么定义的呢?大家可以体会一下
    Git 迅速成为最流行的分布式版本控制系统,尤其是 2008 年,GitHub 网站上线了,它为开源项目免费提供 Git 存储,无数开源项目开始迁移至 GitHub,包括 jQuery,PHP,Ruby 等等
    版本仓库
    概念
    版本库,又名版本仓库,英文名repository
    这个目录里面的所有文件都可以被 Git 管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”
    版本库的注意事项
    没事千万不要手动修改这个目录里面的文件,不然改乱了,就把 Git 仓库给破坏了
    不要已经有版本库管理的目录中,再建立版本库,否则 git 就不知道如何管理了
    创建版本库
    建立需要用 git 管理的目录
    进入终端

    $cd项目目录
    
    $ git init
    

    通过git init命令把这个目录变成 Git 可以管理的目录
    注意:不要再在这个目录的子目录中建立.git的目录
    GIT 的常用终端命令

    1502074948997430.jpg
    步骤
    新建目录
    新建001-第一个git目录
    打开终端,输入以下命令
    $cd[空格] [在 Finder 选中目录拖拽到此处,然后回车]
    

    现在在终端中操作的目录就是刚刚创建的目录了
    建立版本仓库(git init)
    在终端输入以下命令

    $ git init
    

    可以在终端中看到建立了一个.git的目录
    这个目录就是 git 的版本库目录
    001-第一个git和该目录的所有子目录中的文件都归这个版本库管理
    将该目录拖拽到 sourceTree 中观察文件变化
    新建文件(git status查看状态)
    在终端输入以下命令,创建一个文件

    $ touch hello.m
    

    在 SourceTree 中观察文件变化
    在终端中输入以下命令

    $ git status
    

    提示以下内容

    On branch master
    
    >在 master 分支上Initial commitUntracked files:
    
    > 没有跟踪的文件 
    
    (use
    "git add ..."
    to includeinwhat will be committed)   
    
    hello.m
    
    nothing added to commit but untracked files present (use
    "git add"
    to track)
    

    使用 git add 跟踪文件

    添加到暂存区(git add .)
    输入以下命令,将 hello.m 添加到暂存区

    
    $ git add .
    

    将当前目录下所有修改过的文件(新增的/修改的)添加到暂存区


    1502075070942549.jpg

    git add并没有直接将修改放到版本库,给程序员一个后悔的机会
    在终端中输入以下命令

    $ git status
    

    提示以下内容

    
    On branch master
    
    Initial commit
    
    Changes to be committed: 
    
    (use
    "git rm --cached ..."
    to unstage) 
    
      
    new
     file:  hello.m
    

    注意观察 srouceTree 中的变化
    提交到版本库(git commit .)
    输入以下命令,将 所有修改 提交到版本库,并且说明修改原因

    $ git commit -m 
    "添加了 hello.m"
    

    在终端中输入以下命令

    $ git status
    

    提示以下内容

    ch master
    
    nothing to commit, working directory clean
    

    一旦提交后,如果没有再对工作区做任何修改,那么工作区就是“干净”的

    1502075165363933.jpg
    修改文件
    输入以下命令,用 Xcode 打开 hello.m
    $ open hello.m
    

    在 Xcode 中输入以下内容

    
    #include int main() {
    
        
    printf(
    "hello git\n"
    );
    
    }
    

    在终端中输入以下命令

    $ git status
    

    提示以下内容

    On branch master
    
    Changes not staged 
    for
     commit:
    
      
    (use
    "git add ..."
    to update what will be committed)
    
      
    (use
    "git checkout -- ..."
    to discard changes 
    in
     working directory)
    
        
    modified: hello.m
    
    no changes added to commit (use
    "git add"
    and/or
    "git commit -a"
    )
    

    在终端中输入以下命令,将修改添加到暂存区

    $ git add .
    

    在终端中输入以下命令

    
    $ git status
    

    提示以下内容

    $ git status
    
    On branch master
    
    Changes to be committed:
    
      
    (use
    "git reset HEAD ..."
    to unstage) 
    
      
    modified:  hello.m
    

    在终端中输入以下命令,将修改提交到版本库

    $ git commit -m
    "修改了hello.m"
    

    在终端中输入以下命令

    $ git status
    

    提示以下内容

    
    On branch master
    
    nothing to commit, working directory clean
    
    **gitignore**
    

    操作步骤
    在终端输入以下命令,编译hello.m

    $ gcc hello.m
    

    在终端编译生成一个a.out的可执行文件,这个文件是不需要提交到版本库的
    在终端输入以下命令,创建.gitignore
    用 Xcode 打开.gitignore输入

    *.out
    

    表示忽略追踪所有以.out结尾的文件
    在终端输入以下命令

    $ git add .$ git commit -m  
    "添加 .gitignore 文件"
    

    在日常开发中,以下文件都不需要提交到服务器上保存:
    根个人相关的文件,例如:最后打开的文件、断点
    第三方框架
    提示:
    Xcode 默认继承了极少的几个常用 Git 命令,但是不包含对.gitignore文件的生成和管理
    是否知道 .gitignore 文件,直接可以判定这个程序员是否有团队开发经验
    独立的代码仓库
    操作步骤
    建立仓库
    新建一个目录CZHelloProject.git
    进入终端,进入该目录
    输入以下命令

    
    $ git init --bare
    

    --bare参数可以建立仅用于交换的独立的代码仓库
    建立多人目录
    新建张三/经理两个目录,分别演示两个独立的程序员角色
    准备经理的目录
    在终端中输入以下命令

    $cd[经理的目录]$ gitclone[代码仓库目录]$cdCZHelloProject
    

    设置个人信息

    
    # 设置用户名
    
    $ git config user.name经理
    
    # 设置邮箱
    
    $ git config user.emailmanager@qq.com
    
    # 查看设置信息
    
    $ git config -l
    

    按照以上步骤重复张三的目录设置
    多人协作
    操作步骤
    经理创建项目
    从gitignore-master复制Objective-C.gitignore到项目目录
    在终端中输入以下命令重命名

    
    $ mv Objective-C.gitignore .gitignore
    
    $ git add .
    
    $ git commit -m
    "添加 gitignore"
    
    $ git status
    

    设置追踪流,只有在本地的版本库才需要设置

    $ git branch --unset-upstream
    

    新建HelloGit项目,保存在刚刚创建的目录中
    将项目目录拖拽到 SrouceTree 中,并且改名
    注意:一定要先添加.gitignore再添加项目文件,否则有些文件默认不会被忽略
    张三开始工作
    询问经理版本库地址
    在终端克隆版本库
    $ gitclone[版本库地址]
    设置个人信息(仅在一台计算机模拟多人需要)

    $ git config user.name 张三
    
    $ git config user.email 张三@qq.com
    
    $ git config-l
    

    冲突以及冲突解决
    所谓冲突就是当两个人同时修改了同一个文件的同一行代码,才会产生冲突!
    通过fetch可以提前看到是否存在冲突,比直接用 pull 要方便很多
    storyboard的冲突很麻烦,所以很多企业不愿意用storyboard
    即使使用,也是各司其职
    为了避免纯代码创建 UI 的繁琐工作,还有很多公司使用 XIB
    在早期版本的 Xcode 中,只要在 Storyboard 中挪动一下位置,storyboard 就会被标记为修改状态,Xcode 7.3 得以改善

    相关文章

      网友评论

          本文标题:GIt的使用 --初级

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