• Git 学习(三)Git 创建版本库


    获取 Git 仓库

    什么是 Git 仓库呢,仓库又名版本库,我们可以把他理解为一个文件夹。这个文件夹里的所有东西都需要被 Git 给管理起来,对立面每个文件的修改、编辑、删除都将被 Git 记录,以便于任何时刻追踪历史或者在将来某个时刻可以“还原”。

    有两种方式来创建 Git 仓库

    1. 在现有项目或目录下导入所有文件到 Git 中
    2. 从一个服务器克隆一个现有的 Git 仓库

    我们日常开发中都是用第二种来创建。

    在现有目录中初始化仓库

    首先需要在一个地方新建一个空目录比如在 D 盘新建了一个 gitTest 目录
    在这里插入图片描述
    在此目录中打开 Git 控制台通过 git init 命令把这个目录变成Git可以管理的仓库

    $ git init
    Initialized empty Git repository in D:/gitTest/.git/
    

    运行完这个命令后将创建一个名为 .git 的子目录,这个子目录含有你初始化的 Git 仓库中所有的必须文件是 Git 来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把 Git 仓库给破坏了。如果没有看到需要设置隐藏文件夹为可见,这样就能看到了。
    但是,在这个时候,我们仅仅是做了一个初始化的操作,你的项目里的文件还没有被跟踪。

    克隆现有的仓库

    如果你想获得一份已经存在了的 Git 仓库的拷贝,比如说,你想拉取公司或其他地方的项目,这时就要用到 git clone 命令。

    $ git clone https://github.com/libgit2/libgit2
    

    这会在当前目录下创建一个名为 “libgit2” 的目录,并在这个目录下初始化一个 .git 文件夹,从远程仓库拉取下所有数据放入 .git 文件夹,然后从中读取最新版本的文件的拷贝。 如果你进入到这个新建的 libgit2 文件夹,你会发现所有的项目文件已经在里面了,准备就绪等待后续的开发和使用。

    提交文件到仓库

    现在我们需要在对应的仓库目录下新建一个文件,比如 readme.md 定要放到 gitTest(你新建的仓库) 目录下(子目录也行),因为这是一个 Git 仓库,放到其他地方 Git 再厉害也找不到这个文件。
    在这里插入图片描述
    提交文件到仓库需要两步
    1.用命令 git add 告诉 Git,把文件添加到仓库

    $ git add readme.md
    

    执行上面的命令,没有任何显示,这就对了,Unix的哲学是“没有消息就是好消息”,说明添加成功。

    2.用命令 git commit 告诉 Git,把文件提交到仓库

    $ git commit -m "提交 readme"
    [master (root-commit) 1f26829] 提交 readme
    
     1 file changed, 0 insertions(+), 0 deletions(-)
     create mode 100644 readme.md
    

    解释一下 git commit 命令,-m 后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。以后只要发现 git 命令后面带一个 - 说明是简写模式 -m m 就是 message 的意思,如果发现后面带两个 --xxxx 那就是一定要写完整一个单词。

    git commit 命令执行成功后会告诉你,1 file changed:1 个文件被改动(我们新添加的 readme.md 文件);

    为什么 Git 添加文件需要 add,commit 一共两步呢?因为 commit 可以一次提交很多文件,所以你可以多次 add 不同的文件比如

    $ git add file1.txt
    $ git add file2.txt file3.txt
    $ git commit -m "add 3 files."
    
  • 相关阅读:
    .NET西安社区 [拥抱开源,又见 .NET] 第二次活动简报
    HttpClient在.NET Core中的正确打开方式
    西安活动 | 2019年1月13号 "拥抱开源, 又见.NET" 线下交流活动报名进行中
    基于IdentityServer4 实现.NET Core的认证授权
    dnSpy 强大的.Net反编译软件
    .NET Core中实现AOP编程
    Why DDD and layered architecture
    领域驱动设计之-前言
    load average 定义(网易面试)
    sendfile“零拷贝”和mmap内存映射
  • 原文地址:https://www.cnblogs.com/liufeichn/p/11961624.html
Copyright © 2020-2023  润新知