• 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            //跳转到当前版本(回到本次版本修改之前的状态,主要用于撤销代码)。
    
  • 相关阅读:
    LeetCode5654. 盒子中小球的最大数量
    LeetCode40. 组合总和 II
    LeetCode39. 组合总和
    LeetCode17. 电话号码的字母组合
    Leetcode216. 组合总和 III
    eclipse相关使用
    matlab符号的含义
    matlab矩阵相关的笔记
    vi编辑器
    Linux 环境变量
  • 原文地址:https://www.cnblogs.com/VitoYi/p/7672620.html
Copyright © 2020-2023  润新知