当前位置:   article > 正文

Git的新手教程_enumerating objects: 433, done.

enumerating objects: 433, done.

Git简介

Git是目前为止,世界上最好用的分布式版本控制系统。
那么,什么是版本控制系统?
可以这么说,假设你要写一篇论文,在写的过程中你肯定避免不了修修改改,那这个时候你又不想把之前写的全部删掉,那你就只能新建一个文档,把之前写的保存下来,如此反复几次就会成这样了。

当你想要看看之前写的东西的时候,你已经不知道他在那个文件里面了。十分的尴尬。
而版本管理系统就是为了帮助我们解决这个问题而出现的。他会自动的帮助我们管理之前的版本,记录下来每个版本的改动。这样你回头在看的时候就方便很多了。

分布式VS集中式

现有的版本控制系统分为分布式和集中式两种,Git就是分布式,CVS和SVN是集中式。
而分布式和集中式的区别就是,集中式的版本库是集中存放在中央服务器,工作的时候用的都是自己的电脑,需要先从服务器中获取最新的版本,然后开始工作,完成之后再把自己的工作推送给中央服务器。集中式的最大问题就是必须联网才能工作,如果在局域网内还好,速度还是有保障的。但是在互联网下,有时候速度会慢的一批,影响工作效率。
分布式版本控制系统根本就没有中央服务器,每个人的电脑都是一个完整的版本库,这样,工作的时候哦就不需要联网,速度上就有了保障。那么,如何实现多人协作呢?比如说,你在自己的电脑上改了文件A,你的同事也在他的电脑上改了文件A,这是,你们俩之间只需要把各自的修改推送给对方,就可以互相看到对方的修改了。

Git的下载

百度搜索Git,进入官网
下载

选择下载
系统

选择系统,等待下载完成!!!

windows上安装:
傻瓜式安装,不需要配置什么东西。全部下一步就可以了。
安装完成之后,在开始菜单中找到Git Bash,打开。输入:
git config --global user.name “用户名”
git config --global user.email “邮箱”

OK,Git安装完成

Git的基础操作

Git下载完成之后就是创建自己的第一个版本库了。创建版本库的意义可以理解为建立了一个仓库,把所有需要Git管理的文件都放在这个仓库里。

$ mkdir learngit
$ cd learngit
$ pwd
/c/Users/Administrator/learngit
  • 1
  • 2
  • 3

mkdir是用来创建一个文件夹,cd是切换盘符,pwd用来查看当前目录,比如我的当前目录就是*/c/Users/Administrator/learngit*
当然,你也可以通过cd命令切换到其他盘符,在别的地方建立版本库。比如:

$ cd D:\
$ mkdir learngit
$ cd learngit
$ pwd
/d/learngit
  • 1
  • 2
  • 3
  • 4

此时就是在D盘下新建了一个learngit文件,以此作为版本库。
注意:在Windows系统,尽量不要用中文去命名文件名,以免出现不必要的麻烦。
第二步,通过git init命令把这个目录改成Git可以管理的仓库。

$ git init
Initialized empty Git repository in D:/learngit/.git/
  • 1

OK,此时第一个版本库已经建立好了。接下来就是向版本库中添加第一个文件了。在这里大家只要注意一下,尽量不要用Windows自带的记事本,因为它的编码方式有一点问题,又是后可能不好使。推荐大家使用Notepad++代替,好用而且还是免费的,只需要在使用的时候把编码方式改成UTF-8 BOM就可以了。Notepad++中文版
首先我们编写一个readme.txt文件,内容如下:

hello world

    注意,一定要把它放在learngit下,否则Git是找不到的。
    然后git add告诉Git,把文件添加进去。

    $ git add readme

      执行上面的命令。咦!! 怎么一点提示都没有的呢?这就对了,没有消息就是好消息,这就说明添加成功了。
      然后git commit告诉Git把文件提交到仓库。

      $ git commit -m "new file"
      [master b59af06] new file
       2 files changed, 2 insertions(+), 6 deletions(-)
       create mode 100644 readme
      • 1
      • 2
      • 3

      -m后面跟的是这个文件的备注,可以输入任意说明。注意,一定不能少了*-m “”,少了就会出现问题。具体的解决方案看我的下一篇播客吧。
      文件添加完成后就可以查看一下了,输入
      cat <文件名>*查看

      $ cat readme
      hello world
      • 1

      连接远程版本库

      基本操作介绍了一点,接下来就是连接远程仓库了,连接了远程仓库就可以不用担心文件丢失的问题了。接下来,我们只需要在GitHub这个神奇的网站上注册一个账号,就可以建立我们的远程仓库了。
      在创建好GitHub帐号之后,看一下用户主目录下有没有.ssh文件夹,如果没有就执行:

      $ ssh-keygen -t rsa -C "邮箱"

        打开.ssh文件夹,在这下面由id_rsa和id_rsa.pub两个文件。id_rsa是私钥,是不能泄露的,id_rsa.pub是公钥,可以放心的告诉任何人。
        登录GitHub,打开“setting”(就在右上角),点击“SSH and GPG keys”,然后"new SSH key",Title按自己的习惯填写,在Key文本框粘贴id_rsa.pub的内容。注意:id_rsa.pub用记事本打开就可以。
        新建仓库
        在GitHub上新建一个仓库。
        登录GitHub,点击“New”,

        新建仓库
        输入新建仓库名“learngit”,选择“public”(公共的)“private”是要收费的。然后“Create repository”,创建成功。
        目前,在GitHub上的这个learngit仓库还是空的,我们可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
        在这里插入图片描述
        现在,在本地的learngit下运行:

        $ git remote add origin git@github.com:用户名/learngit.git

          添加后,远程库的名字就是origin,这是git默认的叫法,也可以改成别的。
          下一步就是把本地库的内容上传到远程库。

          $ git push -u origin master
          Enumerating objects: 43, done.
          Counting objects: 100% (43/43), done.
          Delta compression using up to 4 threads
          Compressing objects: 100% (32/32), done.
          Writing objects: 100% (43/43), 3.52 KiB | 124.00 KiB/s, done.
          Total 43 (delta 13), reused 0 (delta 0)
          remote: Resolving deltas: 100% (13/13), done.
          To github.com:Han-ya-dong/learngit.git
           * [new branch]      master -> master
          Branch 'master' set up to track remote branch 'master' from 'origin'
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10

          上传完成。
          git push <库名> <当前分支名>是将当前分支推送到远程库,第一次推送时需要加上“-u”。此时进入learngit中可以看到,远程库中的内容已经与本地库一样了。
          当你第一次使用git的clone和push命令时会出现一个警告:

          The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.
          RSA key fingerprint is xx.xx.xx.xx.xx.
          Are you sure you want to continue connecting (yes/no)?
          • 1
          • 2

          这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可。此时GitHub的key会被添加到信任列表里,以后就不会出现警告了。
          既然我们可以把本地文件推送到GitHub,那么肯定也可以从GitHub上把文件克隆下来了。在GitHub上新建库gitskills,选中Initialize this repository with a README,这样GitHub会自动为我们创建一个README.md文件,创建之后:

          $ git clone git@github.com:库名/gitskills.git
          Cloning into 'gitskills'...
          remote: Counting objects: 3, done.
          remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 3
          Receiving objects: 100% (3/3), done.
          • 1
          • 2
          • 3
          • 4

          git clone会从GitHub上克隆我们选中的库到本地库。

          git基本命令行

          mkdir <文件名>
          创建文件
          cd
          切换盘符
          git init
          把当前目录设置为git可以管理的仓库
          git add <文件名>
          添加文件到仓库(实际上时添加到暂存区)
          git commit <文件名>
          提交文件(提交到版本区)

          查看:

          pwd
          查看当前目录
          git status
          可以查看仓库当前的状态
          git diff <文件名>
          查看文件的变化
          git log
          查看历史记录
          git log --pretty=oneline
          查看精简的历史记录
          git reflog
          查看之前的每一次命令
          cat <文件名>
          查看文件内容
          git diff HEAD – <文件名>
          查看该文件在工作区和版本区的区别

          返回:

          git reset --hard HEAD^
          返回到上一个版本
          git reset --hard HEAD^^
          返回到上上一个版本
          git reset --hard HEAD~100
          返回到上一百个版本
          git reset --hard 版本号
          返回到某个版本(版本号没必要写全)

          撤销:

          git checkout – <文件名>
          撤销文件在工作区的修改//旧版本
          git reset HEAD <文件名>
          撤销暂存区的修改//旧版本
          旧版本在新版本中也可以使用
          git restore <文件名>
          也可以撤销文件在工作区的修改//新版本
          git restore --staged <文件名>
          也可以撤销暂存区的修改//新版本

          删除:

          rm <文件名>
          删除文件,但是如果该文件已经保存在版本库中,那删除之后在版本库中还会存在此文件
          git checkout – <文件名>
          从版本库中恢复被删除的文件
          git rm <文件名>
          git commit -m “”;
          从版本库中删除文件,不可被恢复,如果只执行了git rm <文件名>,还是可以恢复的,
          前提是文件已经保存到版本库

          声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/571650
          推荐阅读
          相关标签
            

          闽ICP备14008679号