zoukankan      html  css  js  c++  java
  • GIT命令行的使用

    新手了解 有不对的地方指点下

    首先, 了解下什么是GIT,GIT是一款开元的分布式版本控制工具, 在世界上的所有分布式版本控制工具中,GIT是最简单,最流行,同时也是最常用的

    相比于其他版本的控制工具而言,GIT也有着自己的特点

    举个例子,GIT与集中式版本控制中的SVN相比来说,区别主要在于以下几点:

    1 很多情况下, git的速度远远比SVN快

    2 SVN是集中式管理, git是分布式管理

    3 SVN使用分支比较笨拙, git可以轻松拥有无限个分支

    4 SVN必须联网才能工作, git支持本地版本的控制工作

    5 旧版本的SVN会在每一个目录置放.svn, git只会在根目录下拥有一个.git

     

    集中式版本控制

    分布式版本控制

     

    话不多说 回到主题上,命令行实现个人开发,和团队开发的GIT使用

    因为涉及到隐藏文件的显示,所以实现打开隐藏文件的显示

    全部显示
    defaults write com.apple.finder AppleShowAllFiles -bool true
    全部隐藏
    defaults write com.apple.finder AppleShowAllFiles -bool false

    个人开发演练的代码

    1.进入到所需工作的目录, 并且初始化一个代码仓库 

    lanoudeMac-mini-5:~ lanou$ cd /Users/lanou/Desktop/GIT演练/个人开发 
    lanoudeMac-mini-5:个人开发 lanou$ git init
    Initialized empty Git repository in /Users/lanou/Desktop/GIT演练/个人开发/.git/
    

     2.需要给GIT仓库配置一个用户名和邮箱,如果不配置的话,会自动设置你的用户名为电脑用户名,邮箱为电脑用户名@apple.com,因为后面涉及到针对用户的管理,所以需要

    设置用户名

    lanoudeMac-mini-5:个人开发 lanou$ git config user.name "weiboqy"
    lanoudeMac-mini-5:个人开发 lanou$ git config user.email "weiboqy@163.com"
    lanoudeMac-mini-5:个人开发 lanou$ 
    

    设置好后并没用任何的显示,可以在工作目录下的/.git/config文件中查看自己输入的用户名和邮箱是否存在

    3.初始化代码

    lanoudeMac-mini-5:个人开发 lanou$ touch main.m
    lanoudeMac-mini-5:个人开发 lanou$ git add main.m
    

    touch main.m的作用是在工作目录之下,.git目录之外创建一个main.m文件 ,这个文件我们用来实验

    git add main.m 作用是 将工作区的代码 添加到暂缓区中

    lanoudeMac-mini-5:个人开发 lanou$ touch main.m
    lanoudeMac-mini-5:个人开发 lanou$ git add main.m
    lanoudeMac-mini-5:个人开发 lanou$ git status
    On branch master
    
    Initial commit
    
    Changes to be committed:
      (use "git rm --cached <file>..." to unstage)
    
    	new file:   main.m(绿色)
    
    lanoudeMac-mini-5:个人开发 lanou$ touch main.h
    lanoudeMac-mini-5:个人开发 lanou$ git status
    On branch master
    
    Initial commit
    
    Changes to be committed:
      (use "git rm --cached <file>..." to unstage)
    
    	new file:   main.m(绿色)
    
    Untracked files:
      (use "git add <file>..." to include in what will be committed)
    
    	main.h(红色)
    
    lanoudeMac-mini-5:个人开发 lanou$ 
    

     4.git status 查看文件的状态

    Untracked files(红⾊色⽂文件):新添加的⽂文件或者新修改的⽂文件在⼯工作区中,没有被添加到暂 缓区.
    Changes to be committed(绿⾊色):将⼯工作区的代码已经添加到暂缓区中,可以被提交到 代码仓库中了 

    这时候需要了解下GIT的几个核心概念了

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

    版本库:.git目录,用于存储记录版本信息

    暂缓区(stage)

    分支(master):git自动创建的第一个分支

    git add:把文件修改添加到暂缓区

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

    5.修改文件

    lanoudeMac-mini-5:个人开发 lanou$ open main.m
    lanoudeMac-mini-5:个人开发 lanou$ 
    

    open main.m  直接打开,修改好之后保存 git add main.m 添加到暂缓区

    如果一个一个文件 添加到暂缓区会比较麻烦, git add . 可以讲工作区的所有文件到添加到暂缓区

    6.给git命令起别名

    lanoudeMac-mini-5:个人开发 lanou$ git config alias.st "status"
    lanoudeMac-mini-5:个人开发 lanou$ git config alias.ci "commit -m"
    lanoudeMac-mini-5:个人开发 lanou$ 
    

    如果每次都是输入很长的命令,会比较麻烦,所以这就有了别名的存在

    git config alias.别名 "本来的命令代码"

    相比于这样而已,会有很大的便利之处

    7.查看历史版本

    lanoudeMac-mini-5:个人开发 lanou$ git log
    commit 503c029c159acb0caa86a178715b1193733b2e34
    Author: weiboqy <weiboqy@163.com>
    Date:   Sun Mar 27 20:10:34 2016 +0800
    
        main.m
    lanoudeMac-mini-5:个人开发 lanou$ git reflog
    503c029 HEAD@{0}: commit (initial): main.m
    lanoudeMac-mini-5:个人开发 lanou$ 
    

    如果想查看历史版本的话,必须要将文件提交到分支中,也就是git commit命令

    查看历史版本有两种方式,如上行所示,当历史版本较多时,建议使用git reflog

    GITde 版本号是有sha1加密算法生成的40位哈希值,所以非常复杂。。

    那为什么有历史版本的作用呢,比如说,现在使用的文件被我用炸了,没有太好的办法进行恢复,那么我只需要回退到某一个时期的历史版本就迎刃而解.

    8.历史版本回退

    lanoudeMac-mini-5:个人开发 lanou$ git reset —hard HEAD //回退到当前,但还没有上传到分支的版本
    //不做解释了,因为版本数目不够
    git reset —hard HEAD^   //回退到前一个版本
    git reset —hard HEAD^^  //回退到前一个的前一个版本
    git reset —hard HEAD~100 git reset —hard 版本号前7位   //会退到前100个版本
    

    团队开发演练的代码

    团队开发可以使用文件夹/GitHub/oschina来进行代码共享

    1.文件夹共享

    如果所示的关系,weibo作为代码共享库

    所以先创建好weibo的仓库, 成为代码共享库

    lanoudeMac-mini-5:weibo lanou$ cd /Users/lanou/Desktop/GIT演练/团队开发/代码共享库/weibo 

    lanoudeMac-mini-5:weibo lanou$ git init --bare

    git init --bare, 成为代码共享库, 因为是成为代码的共享库,所以不能是简单的gie init

    2.项目经理将代码共享库的内容克隆下来(clone)

    lanoudeMac-mini-5:项目经理 lanou$ git clone /Users/lanou/Desktop/GIT演练/团队开发/代码共享库/weibo/
    

    3.项目经理初始化项目

    创建一个忽略⽂文件: 在和.git等级⺫⽬目录下创建⼀一个.gitignore⽂文件,在该⽂文件中指定需要忽略的⽂文件 

    在GitHub搜索.gitignore排名第一的就是 或者可以去https://github.com/github/gitignore/blob/master/Objective-C.gitignore查看OC需要忽略 的内容,将内容填写到. gitignore中

    4.将.gitignore添加到暂缓区并提交到分支

    git add .

    git commit -m "注释"

    5.创建项目

     不能在项目经理目录下的微博下创建项目,因为已经包含了 Git repository,所以要返回到上一个目录下创建

     在使用完毕之后 都要遵循以下一个顺序

    修改代码—>git commit(提交到本地) —>git push (上传到服务器)

    在使用前都需要pull下,以便别人修改了你没有看到

    如果有其他人需要加入开发,需要git clone 共享代码库的地址

    需要注意的是 代码冲突,以及storyboard的冲突问题

    建议在团队合作的时候 不要使用storyboard, 尤其是共用一个storyboard,特别容易发生冲突, 哪怕是移动storyboard的位置。

    附上一张总结性的图

     

  • 相关阅读:
    HDU
    HDU-1166 敌兵布阵 (基础线段树)
    Matrices with XOR property (暴力)
    CF-825E Minimal Labels (反向拓扑)
    CodeForces-1144E Median String (模拟)
    操作文件和目录
    文件读写
    装饰器
    数据结构和算法
    Scrapy shell调试返回403错误
  • 原文地址:https://www.cnblogs.com/xueyao/p/5326889.html
Copyright © 2011-2022 走看看