zoukankan      html  css  js  c++  java
  • Git的介绍和使用

    Git是目前世界上最先进的分布式版本控制系统

    Git的安装

    1.在linux上安装

    • 你可以先输入git,看看系统是不是已经自带了git
    • 或者 sudo apt-get install git  就可以成功安装
    • 如果是老版的Debian或Ubuntu,我们使用 sudo apt-get install git-core
    • 如果是其他版本的linux,我们可以在官网下载源码,解压,然后依次输入 ./config,    make,   sudo make install 进行一个安装

    2.在Mac OS X上安装Git

    • 安装homebrew,然后通过homebrew安装git
    • 安装Xcode,Xcode中集成了git

    3.windows安装

    • 安装包,直接安装即可

    安装完成后,我们输入两条命令,进行最后一步的设置

    $ git config --global user.name "Your Name"
    $ git config --global user.email "email@example.com"

    注意git config的--global参数,用了这个参数,表示这台机器所有的Git仓库都会使用这个配置,当然可以以针对摸一个仓库进行一个指定。

     Git创建版本库

     什么是版本仓库呢?版本仓库又名仓库,英文名repository,你可以简单的理解成是一个目录,这个目录里面的所有文件都可以被git管理起来。每一个文件的修改、删除git都能跟踪,以便任何时刻都可以追踪历史,或者是将来的还原

    创建一个版本库是很简单的,首先选择一个合适的位置,创建一个空目录:

    $ mkdir firstgit
    $ cd firstgit
    $ pwd

    pwd 命令用于显示当前的目录。

    $ git init 

    初始化,将这个空目录变成我的git可以管理的仓库

    初始化后,会创建一个隐藏的.git的目录,这个目录是get来跟踪管理版本库的。

    将文件添加到版本库

    在版本库的目录下编写一个readme.txt 文件

    第一步:用命令 git add 告诉git,将文件添加到仓库

    $ git add readme.txt

     提示:如果你的readme中存在换行,可能会报一个

    warning: LF will be replaced by CRLF

    的错误,这是由于windows中的换行符为 CRLF, 而在linux下的换行符为LF而造成的

    解决方案:

    $ git rm -rf .git
    $ git config --global core.autocrlf false

    删除.git,在全局禁用自动转换,然后重新初始化即可

    第二步:用命令 git commit  告诉git把文件提交到仓库

    git commit -m "描述"

    • 1 file changed:一个文件被改动
    • 2 insertions:插入了两行内容

    补充:

    可以多次git add  filename,然后一次性的commit,当然也可以使用 git add . 表示是当前目录中的所有文件

     Git版本管理

    状态监控

    此时我们修改readme.txt 文件

    然后我们运行 git status 命令来查看结果

     

    git status 命令可以让我们时刻掌握仓库的当前状态,上述输出告诉我们,readme.txt 文件被修改了,但是还没有被提交。

    使用git status 只能监视那个文件修改了,但是并不能看见被修改的内容

    git diff可以使我们看见是那个文件进行了那些修改

    知道了readme.txt作了什么修改后,在把它提交到仓库就可以放心许多

    $ git add .

    在执行git commit之前,我们先在此运行一下git status来查看一下当前的仓库状态

    $ git status

     

    发现了吗?变成绿色了,这就表示将要被提交的修改包括readme.txt

    知道这些我们就可以放心提交了

    $ git commit -m "描述"

     

    此时,我们在此输入命令 git status

    版本回退

    现在我们已经知道怎么监控这些状态了。

    其实,每一次的commit都相当于一次游戏中的存档,我们知道,游戏中的存档是可以进行读档的,那么我们的git如何回档呢?

    1.我们可以使用 git log 来查看我们的提交的历史记录

    $ git log

     

    git log 命令显示的是从最近到最远的提交日志,我们可以看到总共有2次提交,每条提交信息的commit唯一id,作者,日期,描述都有显示

    如果不想显示那么多,我们可以在git log后加上参数 --pretty=oneline参数

     

    在以上的输出信息中,黄色的便是commit id(版本号,唯一id)

    知道这些如何退回版本呢?

    在Git中,用 HEAD 表示当前的版本,也就是最新的提交,上一个版本就是HEAD^,上上一个版本就是HEAD^^,向上的100个版本就是HEAD~100

    我们回到上一个版本可以使用

    $ git reset --hard HEAD^
    $ git reset --hard 版本号

    然后我们查看readme.txt文件,发现内容果然变了。 

    注意:

     此时我们再输入 git log 看看现在的版本状态

    然后我们就发现了,原本最新的那一条记录没有了。我们是不是没有办法回到原本最新的那条记录了?

    不是的,其实只要我们找到之前最新记录的 commit id 就可以回退了 

    要是我们找不到了,怎么办??!!!

    没关系,我们的 git 提供了  git reflog 命令可以查看你的每一次命令

     

    nice,这就可以找到之前最新的那条记录的commit id啦,完美!

    工作区和暂存区

    工作区:就是你在电脑上能够看到的目录,这个目录就是一个工作区

    版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库

      Git的版本库里存了许多的东西,其中最重要的就是成为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针HEAD

    注意:其实当我们commit的时候,实际上就是把暂存区的所有内容提交到当前分支

    而我们只用的add就是将修改提交到了暂存区(Stage)

    一旦提交过后,我们的工作区就是最新的内容了,就不存在修改了,所以工作区是干净的(git status)

    撤销修改

    $ git checkout --file

     可以丢弃工作区的修改,eg:

    $ git checkout --readme.txt

     意思就是把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

    • 一种是readme.txt修改后,还没有被提交到暂存区,现在,撤销修改就回到和版本库一模一样的状态
    • 一种是readme.txt修改后,已经添加到了暂存区,又做了一个修改们,现在,撤销修改就回到添加到暂存区后的状态

    删除文件

    如果我们想要删除一个文件,在本地删除后

    输入命令 git rm,再git commit 就可以真的删除啦

    如果是自己删错了,就可以使用 git checkout --file 来恢复

    git checkout其实就是用版本库里的版本替换工作区的版本,所以无论是修改还是删除,都可以 一键还原

    Git代码远程仓库 

    • 使用命令: git remote add origin git@...(你的远程仓库的地址)     这算是关联上了远程代码仓库了
    • git push -u origin master 第一次推送master分支的所有内容
    • 此后,每次本地提交后,只要有必要,就可以使用命令 git push origin master推送最新的内容到代码仓库

    将代码仓库中的内容克隆到本地代码仓库

    $ git clone git@...(要克隆的git仓库地址)

    Git分支管理

    未完待续....

  • 相关阅读:
    普通平衡树(AVL树)
    正态分布与二项分布
    grahql操作
    skywalking定时删除在大并发下引起的性能问题
    Apache SkyWalking SQL注入漏洞复现分析 (CVE-2020-9483)
    skywalking远程调试Apache SkyWalking SQL注入
    sourceTree详细使用教程
    git 分支的相关操作、创建分支、查看分支、切换分支、删除分支
    [Git高级教程 (一)] 通过Tag标签回退版本修复bug
    idea 版本2018.3.6版本的安装
  • 原文地址:https://www.cnblogs.com/smiling-crying/p/9371728.html
Copyright © 2011-2022 走看看