美文网首页
三、创建Git仓库

三、创建Git仓库

作者: 程序员汪汪 | 来源:发表于2020-10-03 00:34 被阅读0次

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

    在开始之前,先了解一些前置知识:

    所有的版本控制系统,只能跟踪文本文件的改动,比如TXT文件、网页、代码等,Git也不例外。对于图片、视频这些二进制文件,Git只能把二进制文件的每次改动串起来,也就是只知道图片从100kb改成了120kb,但是到底改了什么,Git不知道,也没法知道。但是二进制文件,同样是可以放入版本控制工具中进行管理的。

    文本是有编码的,这里建议使用UTF-8编码。

    如果使用过得是Windows系统,不建议使用记事本编辑文本文件,原因是记事本对UTF-8编码的文件支持度不是很好,容易出现奇葩问题。推荐使用Notepad++代替记事本,它不但功能强大,而且免费,使用时记得把Notepad++的默认编码设置为UTF-8 without BOM即可:

    image-20200923150813612.png

    Notepad++下载地址:https://notepad-plus-plus.org/

    创建git仓库的的方式有两种:

    1. 将尚未进行版本控制的本地目录转换为git仓库
    2. 从其它服务器克隆一个已存在的git仓库

    两种方式都会在你的本地机器上得到一个 git 仓库。

    在任意目录中初始化仓库

    如果你有一个尚未进行版本控制的项目目录,想要用 git 来管理它,那么首先需要进入该项目目录中。

    进入目录中,执行:

    git init
    # 或者 对指定的目录进行版本控制
    git init newrepo
    

    该命令将创建一个名为 .git 的子目录,这个子目录含有你初始化的 git 仓库中所有的必须文件。但是,在这个时候,我们仅仅是做了一个初始化的操作,你的项目里的文件还没有被跟踪。

    可以通过 git add 命令来指定所需的文件来进行追踪,然后执行 git commit 进行提交:

    # 对所有文件扩展名为.c的文件进行跟踪
    git add *.c
    # 未指定扩展名,则表示这是一个文件夹
    git add test
    # -m 对该次提交的说明
    git commit -m '初始化项目版本'
    

    稍后我们再逐一解释这些指令的行为。

    现在我们来实践一下:

    1. 新建一个文件夹:

      # 新建learngit文件夹
      $ mkdir learngit
      # 进入learnGit文件夹
      $ cd learngit/
      # 查看当前所在的目录(文件夹)
      $ pwd
      /e/workspace/learngit # 表示当前在E盘的workspace文件夹下的learngit文件夹中
      

      Tip:新建的目录最好不要使用中文,包括它的上级目录,最好也不要有中文,以免出现奇怪的问题。

    2. 通过git init命令把这个目录变成Git可以管理的仓库:

      $ git init
      Initialized empty Git repository in E:/workspace/learngit/.git/
      

      瞬间Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository)。

    3. git创建好仓库之后,会生成一个.git文件夹,它是个隐藏文件夹,主要是git用来跟踪管理版本库的,没事千万不要手动修改里面的文件,不然会多git仓库造成破坏。隐藏文件默认是不可见的,使用ls -a命令就可以看见它了:

      $ ls -a
      ./  ../  .git/ # ./ 表示当前目录  ../表示上一层目录
      

    不一定必须在空目录下创建Git仓库,也可以选择一个已经有东西的目录。不过,不建议在公司使用自己正在开发的项目来学习Git,造成的后果,我可不负责任哦。

    git仓库创建好了,现在使用Notepad++新建一个readme.txt文件,内容如下:

    Git is a version control system.
    Git is free software.
    

    将这个文件放在learngit目录下,子目录也是可以的,如果放在learngit目录外面,那Git是找不到的,进不能进行版本管理。

    把一个文件放到仓库只需要两步:

    1. git add命令,将文件放入暂存区:

      $ git add readme.txt
      

      执行完,没有任何消息,没有消息就是好消息,说明添加成功。

    2. git commit命令,把文件提交到本地仓库

      $ git commit -m 'write a readme file'
      [master (root-commit) d1bdde3] write a readme file
       1 file changed, 2 insertions(+)
       create mode 100644 readme.txt
      

      此时readme.txt就被提交到了git仓库。

    克隆现有的仓库

    如果你想获得一份已经存在了的 git 仓库的拷贝,就要用到git clone命令(类似SVN的checkout命令)。git 克隆的是该 git 仓库服务器上的几乎所有数据,而不是仅仅复制完成你的工作所需要文件。 当你执行 git clone 命令的时候,默认配置下远程 Git 仓库中的每一个文件的每一个版本都将被拉取下来。 事实上,如果你的服务器的磁盘坏掉了,你通常可以使用任何一个克隆下来的用户端来重建服务器上的仓库 (虽然可能会丢失某些服务器端的钩子(hook)设置,但是所有版本的数据仍在)。

    克隆仓库的命令是 git clone <url> 。 比如,要克隆 github 上的某个库,可以用下面的命令:

    git clone https://github.com/tiangoubot/learngit.git
    

    这个操作会在当前目录下创建一个名为 gitTest 的目录,并在这个目录下初始化一个.git文件夹(改文件加为隐藏文件),从远程仓库拉取下所有数据放入 .git 文件夹,然后从中读取最新版本的文件的拷贝。

    如果你想在克隆远程仓库的时候,自定义本地仓库的名字,你可以指定新的目录名:

    git clone https://github.com/tiangoubot/learngit.git myTest
    

    git 支持多种数据传输协议。 上面的例子使用的是 https:// 协议。

    相关文章

      网友评论

          本文标题:三、创建Git仓库

          本文链接:https://www.haomeiwen.com/subject/rmhiuktx.html