Git使用

Git

标签(空格分隔): 版本控制


Git介绍

Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

Git与SVN的区别

GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。
如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应GIT提供的一些概念和特征。

Git 与 SVN 区别点:

  1. GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。
  2. GIT把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。
  3. GIT分支和SVN的分支不同:分支在SVN中一点不特别,就是版本库中的另外的一个目录。
  4. GIT没有一个全局的版本号,而SVN有:目前为止这是跟SVN相比GIT缺少的最大的一个特征。
  5. GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

安装Git并配置

安装

Linux

  • Debian or Ubuntu

    $ sudo add-apt-repository ppa:git-core/ppa
    $ sudo apt-get update
    $ sudo apt-get install git
    
  • CentOS

    $ sudo yum install git
    

macOS

在Git官网使用gui安装。

配置

初次使用Git时,需要Git进行配置

  • 指定用户名和邮箱
$ git config --global user.name "Your Name"
$ git config --global user.email "youremail@domain.com"

查看配置信息:$ git config --list

  • 生成并部署SSH key公钥

ssh-keygen -t rsa -C "xxxxx@xxxxx.com"

输入之后,连续按回车键,不需要做任何更改,会生成SSH key,也就是一个id_rsa.pub文件,存放在系统默认路径下:

操作系统 路径
Win C/User/用户名/.ssh/id_rsa.pub
maxOS $ open ~/.ssh打开.ssh文件夹

注意
.ssh 文件夹下同时有 id_rsa 和 id_rsa.pub 文件(注意在开启后缀名的情况下),id_rsa 是置于本地机器的密钥,用于匹配置于服务器端的密钥文件 id_rsa.pub,这样才能建立 SSH 连接。

使用文本编辑打开id_rsa.pub文件,得到SSH key公钥,然后将公钥添加到github/码云当中。

进入Github或码云个人主页,然后

github:Settings -> SSH and GPG keys -> New SSH key
码云:设置 -> SSH公钥

将之前得到的SSH key公钥复制过来,Title可以随便取。

配置时的问题

有一次我在Windows的电脑上生成公钥,输入ssh-keygen后居然提示"Could not create directory ‘//.ssh’" 错误,这奇了怪了,折腾了半天,原来是本机没有了home的环境变量。

添加环境变量:HOME=C:\Users\你的用户名

本地代码提交到github/码云、更新本地代码

前置条件

  1. 完成安装Git并配置
  2. 在Github/码云上添加仓库,并复制项目地址。

开始提交、更新

$ mkdir test      //创建一个test文件夹
$ cd test         //进入这个test文件夹
$ git init        //初始化git仓库
$ git remote add origin https://github.com/VitoYi/xxx     //关联远程仓库
$ touch README    //创建README文件
$ git add README  //将README文件存到暂存区
$ git add .       //将项目中的所有文件存到暂存区
$ git commit -m 'first commit'    //将暂存区的文件提交到master分支,-m后面是注释
$ git push origin master          //将本地的master分支代码推送到远程master分支

$ git push origin master -f       //如上面出问题,可以试试这个,表示舍弃线上的文件,强制推送

$ git status    //查看当前工作区的状态
$ git pull      //将远程服务器的代码更新到本地

Git代码提交的过程分为四个工作区

image_1bsfhk7ea1i18t1a178s143aupim.png-76.4kB

通过git检出github/码云上的项目

image_1bsfe9lb71ddr11pk10im1s4j1uri9.png-44.4kB

然后进入想要检出的目录,使用命令:
$ git clone https://github.com/VitoYi/xxx.git

版本跳跃与撤销代码

$ git log       //命令查看版本日志;
$ git reflog    //命令查看所有操作日志;
$ git reset --hard xxx(版本号)      //实现版本跳转;
$ git reset --hard HAED            //跳转到当前版本(回到本次版本修改之前的状态,主要用于撤销代码)。

posted on 2017-10-15 16:36  Yoooshiki  阅读(162)  评论(0编辑  收藏  举报

导航