VisYang's Studio.

git 的安装与使用相关

2015/04/29

首先,介绍Git–分布式版本控制系统工具,他的作用:
1、方便团队开发过程中进行代码的合并
2、能够保留所有的历史记录,方便随时回滚
下面来看看 git 的安装与使用

Git安装

  • Window安装
    http://git-scm.com/download/win下载Git客户端软件,和普通软件安装方式一样。
  • Linux安装
    CentOS发行版:sudo yum install git
    Ubuntu发行版:sudo apt-get install git
  • Mac安装
    打开Terminal直接输入git命令,会自动提示,按提示引导安装即可。
    Git管理文件的4种状态分别为:未追踪(untracked)、已提交(committed)、已修改(modified)和已暂存(staged).
    Git 项目的3个工作区域的概念:Git 仓库、工作目录以及暂存区域
    Git仓库目录是Git用来保存项目的元数据和对象数据库的地方。 这是Git 中最重要的部分,从其它计算机克隆仓库时,拷贝的就是这里的数据。
    工作目录是对项目的某个版本独立提取出来的内容。这些从Git仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。
    暂存区域是一个文件,保存了下次将提交的文件列表信息,一般在Git仓库目录中。有时候也被称作“索引”(Index),不过一般说法还是叫暂存区域。
  • 基本的Git工作流程如下:
    1、在工作目录中修改文件。
    2、暂存文件,将文件的快照放入暂存区域。
    3、提交文件,找到暂存区域的文件,将快照永久性存储到Git仓库目录。

Git基础

命令行方式:任意目录(建议开发根目录)右键 > Git Bash Here

命令行常用命令:

  • pwd (Print Working Directory) 查看当前目录
  • cd (Change Directory) 切换目录,如 cd /etc
  • ls (List) 查看当前目录下内容,如 ls -al
  • mkdir (Make Directory) 创建目录,如 mkdir blog
  • touch 创建文件,如 touch index.html
  • cat 查看文件全部内容,如 cat index.html
  • less 查看文件,如more /etc/passwd、less /etc/passwd
  • rm (remove) 删除文件,如 rm index.html、rm -rf blog
  • rmdir (Remove Directory) 删除文件夹,只能删除空文件夹,不常用
  • mv (move) 移动文件或重命名,如 mv index.html ./demo/index.html
  • cp (copy) 复制文件,cp index.html ./demo/index.html
  • tab 自动补全,连按两次会将所有匹配内容显示出来
  • > 和 >>重定向,如echo hello world! > README.md,>覆盖 >>追加
  • | 管道符可以将多个命令连接使用,上一次(命令)的执行结果当成下一次(命令)的参数。
  • grep 匹配内容,一般结合管道符使用

vi编辑器

linux操作系统标配,相当于windows下的记事本。

vi编辑器的三种模式

vi编辑器提供了3种模式,分别是命令模式、插入模式、底行模式,每种模式下用户所能进行的操作是不一样的。

vi常用操作

  • 打开/创建文件, vi 文件路径
  • 底行模式 :w保存,:w filenme另存为
  • 底行模式 :q退出
  • 底行模式 :wq保存并退出
  • 底行模式 :e! 撤销更改,返回到上一次保存的状态
  • 底行模式 :q! 不保存强制退出
  • 底行模式 :set nu 设置行号
  • 命令模式 ZZ(大写)保存并退出
  • 命令模式 u辙销操作,可多次使用
  • 命令模式 dd删除当前行
  • 命令模式 yy复制当前行
  • 命令模式 p 粘贴内容
  • 命令模式 ctrl+f向前翻页
  • 命令模式 ctrl+b向后翻页
  • 命令模式 i进入编辑模式,当前光标处插入
  • 命令模式 a进入编辑模式,当前光标后插入
  • 命令模式 A进入编辑模式,光标移动到行尾
  • 命令模式 o进入编辑模式,当前行下面插入新行
  • 命令模式 O进入编辑模式,当前行上面插入新行

    新项目:

    • 1、配置用户
      git config –global user.name “自已的名字”
      git config –global user.email “自已的邮箱地址”
      –global 配置当前用户所有仓库
      注:配置用户只需要执行1次,可以重复使用。
    • 2、初始化仓库
      我们如果想要利用git进行版本控制,需要将现有项目初始化为一个仓库,或者将一个已有的使用git进行版本控制的仓库克隆到本地。
      git init
      git init会在当前项目目录中创建一个名为.git的隐藏目录,这个目录包含了暂存区和仓库两个区域,有了这个隐藏目录就可以使用git来管理项目了,通过ls -al 可以查看。
    • 3、查看文件状态
      通过git status可以检测当前仓库文件的状态(未追踪untracked)。
      注:git会忽略空的目录
    • 4、添加文件到暂存区
      假设经过一段时间的开发后,需要把已开发的部分暂存起来等待提交,使用git add 添加到暂存区。
      git add 文件名/ 文件路径 “*” 或 -A 代表所有
      通过git status再次查看文件状态,放到暂存区的文件被标记成了绿色,等待提交。
      注:颜色是工具给添加的,目的是增加可读性并不是git统一的。
      对于已经 add 过的文件 又修改了,想要提交时 git commit -a -m 可直接提交
    • 5、撤销更改
      继续我们的开发,再次git status可以再次查看仓库状态

被标记了红色,说明index.html被再次修改了。
又经过一段时间后发现新开发的部分有Bug,想要回到之前状态,可以使用git checkout 文件名,将上次暂存的文件还原到工作区。

  • 6、提交文件
    经过一个相对较长阶段开发或者一个功能开发完成了,就可以提交到本地仓库了,永久保存了。
  • git commit -m ‘备注信息’
    将暂存区被标记成绿色的文件,全部提交到本地仓库存储。
  • git log
    查看所有提交快照

其他操作

  • git log
    查看所有的提交快照
  • 回滚操作:
  • git reset
    –hard 回滚本地仓库的快照,使用本地仓库的快照覆盖暂存区;使用本地仓库的快照覆盖工作目录
    –soft 只回滚本地仓库的快照
    –mixed(默认) 回滚本地仓库的快照并且覆盖暂存区,但是不覆盖工作目录
1
2
3
4
5
HEAD表示本地仓库的最新快照
^表示上一次快照
回滚最后一次提交(取消最后一次提交)
git reset --hard HEAD^ 等价于 git reset --hard 倒数第二个commitID
  • git add 的逆操作:
  • git reset –mixed HEAD
    本地仓库不变,将本地仓库覆盖暂存区,但不覆盖工作目录
  • git reset –hard HEAD
    本地仓库不变,将本地仓库覆盖暂存区,使用本地仓库的快照覆盖工作目录
  • git reset soft HEAD
    本地仓库不变,将本地仓库覆盖暂存区,但不覆盖工作目录
  • git rm –cached 文件列表
    移除暂存区指定文件
  • 回滚所有的修改操作(用暂存区覆盖工作目录)
  • git checkout 文件列表
  • git checkout .
  • 保存与恢复
  • 排除项目中某些文件,使其不被 git 管理
    根目录下创建 .gitignore 文件 在其内部写下排除文件名

  • 比较差异

  • git difftool 比较工作区和暂存区的差异(右工作区,左比较对象)
  • git difftool “commitid” 比较与特定提交的差异
  • git difftool “commitid” “commitid” 比较某两次提交的差异
  • git difftool 分支名称 比较与某个分支的差异

分支操作

  • 查看分支
    git branch

  • 创建分支
    git branch 分支名称

  • 切换分支
    git checkout 分支名称

  • 创建并切换分支
    git checkout -b 分支名称

  • 合并分支
    git merge 分支名称(来源分支)

  • 删除分支
    git branch -d 分支名称(分支必须被合并过之后才能删除,否则删不掉)
    git branch -D 分支名称(强制删除分支)

远程仓库操作

  • 第一次获取代码一般使用如下命令:(已有项目)
    git clone 远程仓库的地址 项目名称(可选的)
    克隆下载下来的代码默认就有该分支的别名,并自动跟踪该分支

  • 查看远程仓库地址别名
    git remote -v

  • 创建别名
    git remote add 别名名称 远程仓库地址

  • 跟踪分支 :当第一次 push 时 加上 -u 以后推送时就不用写 别名 或 远程地址了
    git push -u origin master

  • 重命名别名
    git remote rename 原来名称 新名称

  • 删除别名
    git remote remove 别名名称

  • 上传代码
    git push 远程仓库的地址 本地分支名称:远程分支的名称
    git push 远程仓库的地址 本地分支名称
    当远程仓库中没有此分支名称,则创建
    当多人同时在此分支拓展业务时,推送不成功(远程仓库比本地仓库新),则先pull代码,当发生数据合并失败的情况(冲突CONFLICT),则需要手动处理冲突代码,然后再push

  • 下载代码
    git pull 远程仓库的地址 远程分支的名称:本地分支的名称
    git pull 远程仓库的地址 远程分支的名称

  • 删除远程分支
    git push origin –delete 分支名称
    git push origin :分支名称

github git事例

  • 1、创建 github 账号 https://github.com/
  • 2、创建仓库
  • 3、上传 ssh 密匙
    • 创建本地密匙
      Git Bash Here 中键入 ssh-keygen
    • 根据提示找到密匙文件 id_rsa.pub 复制内部代码
    • 找到github –> settings –> SSH and GPG keys –> New SSH key 将代码复制到 key 中点击 Add SSH key
      之后就可以在本地进行代码推送、下载到 github 仓库的操作了
CATALOG
  1. 1. Git安装
  2. 2. Git基础
    1. 2.1. 命令行常用命令:
    2. 2.2. vi编辑器
      1. 2.2.1. vi编辑器的三种模式
      2. 2.2.2. vi常用操作
    3. 2.3. 新项目:
    4. 2.4. 其他操作
    5. 2.5. 分支操作
    6. 2.6. 远程仓库操作
  3. 3. github git事例