git基础-获取git仓库

通过本章的学习,应该能够配置和初始化一个仓库,开始和停止跟踪文件,暂存和提交更改。我们还将展示如何设置 Git 来忽略特定的文件和文件模式,如何快速轻松地撤销错误,如何浏览项目的历史记录并查看提交之间的更改,以及如何与远程仓库进行推送和拉取。

获取一个git仓库

获取一个 Git 仓库

通常有两种方式可以获取一个 Git 仓库:

  • 将一个当前没有进行版本控制的本地目录转换为一个 Git 仓库
  • 从其他地方克隆一个现有的 Git 仓库。

无论哪种方式,最终都会在本地机器上获得一个 Git 仓库,准备开始工作。

从现有目录初始化仓库

如果有一个当前尚未进行版本控制的项目目录,而想要用 Git 开始对其进行控制,首先需要进入该项目的目录。一下操作以ubuntu22.04为例:

$ cd git-tech

$ git init

这会创建一个名为 .git 的新子目录,其中包含所有必要的仓库文件 —— 一个 Git 仓库的骨架。此时,项目中尚未跟踪任何内容。有关刚刚创建的 .git 目录中包含哪些文件的详细信息,请参阅 Git 内部原理。

创建新的文件, 并对这些文件进行版本控制。

$ git status

$ git add git-tech.c

$ git commit -m "init a .c file"

clone一个已存在的仓库

如果想获取一个已存在的 Git 仓库的副本 —— 例如,一个我们想要贡献的项目 —— 需要使用的命令是 git clone。

如果熟悉其他版本控制系统,比如 Subversion,就会注意到命令是 "clone" 而不是 "checkout"。这是一个重要的区别 —— Git 不仅仅获取一个工作副本,而是接收了服务器上几乎所有数据的完整副本。当运行 git clone 时,默认情况下会拉取项目历史上每个文件的每个版本。事实上,如果当前服务器磁盘损坏,通常可以使用任何一个客户端上的几乎任何克隆来将服务器恢复到克隆时的状态(可能会丢失一些服务器端的钩子等内容,但所有版本化的数据都会在那里)。

可以通过 git clone <url> 来克隆一个仓库。例如,如果想克隆名为 libgit2 的 Git 可链接库,可以这样做:

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

这会创建一个名为 libgit2 的目录,在其中初始化一个 .git 目录,拉取该仓库的所有数据,并检出最新版本的工作副本。如果进入刚刚创建的 libgit2 目录,会看到其中的待使用项目文件

如果想要将仓库克隆到一个名为 libgit2 之外的目录中,可以将新目录名指定为一个额外的参数:

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

Git有多种不同的传输协议可供选择。前面的示例使用了 https:// 协议,但也可能会见到 git:// 或 user@server:path/to/repo.git,它使用 SSH 传输协议。

相关推荐

  1. Git仓库

    2024-03-21 03:44:06       48 阅读
  2. Git 仓库基本概念和使用方式

    2024-03-21 03:44:06       31 阅读
  3. Git】012-Git 仓库初始化

    2024-03-21 03:44:06       34 阅读
  4. Gitgit基础

    2024-03-21 03:44:06       53 阅读
  5. git基础-git别名

    2024-03-21 03:44:06       45 阅读
  6. 修改git仓库地址

    2024-03-21 03:44:06       54 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-21 03:44:06       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-21 03:44:06       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-21 03:44:06       87 阅读
  4. Python语言-面向对象

    2024-03-21 03:44:06       96 阅读

热门阅读

  1. QT 异常处理

    2024-03-21 03:44:06       39 阅读
  2. 【SpringBoot】优雅实现超大文件上传

    2024-03-21 03:44:06       36 阅读
  3. 【代码问题】mmcv+mmseg版本升级报错

    2024-03-21 03:44:06       44 阅读
  4. 【LAMMPS学习】三、构建LAMMPS(2)Make构建

    2024-03-21 03:44:06       45 阅读
  5. 2.4 ROC曲线是什么?

    2024-03-21 03:44:06       47 阅读
  6. 主动学习:外语学习的质变之路

    2024-03-21 03:44:06       43 阅读
  7. 24计算机考研调剂 | 天津大学

    2024-03-21 03:44:06       38 阅读
  8. QT5.14.2 Qt窗体应用开发的精髓

    2024-03-21 03:44:06       52 阅读