取得 Git 仓库 —— Git 学习笔记 04

我认为, Git 的学习分为两大块:一是工作区、索引、本地版本库之间的交互;二是本地版本库和远程版本库之间的交互。第一块是基础,第二块是难点。

下面,我们就围绕着第一部分内容来学习,先不考虑远程仓库,只考虑本地仓库。

怎样取得项目的 Git 仓库?

有两种取得 Git 项目仓库的方法。第一种是在本地创建一个新的仓库,第二种是把其他地方的某个仓库克隆(clone)到本地。

方法一:在工作目录中初始化新仓库

假设我们有一个目录,目录下只有一个文件——“hello.c”

那么我们可以进入到这个目录下,执行命令

 git init

运行命令后,Git 会有一行提示,类似于:

Initialized empty Git repository in ...

初始化后,在当前目录下会出现一个名为.git 的目录(隐藏文件),所有 Git 需要的数据和资源都存放在这个目录中。没事不要修改或者删除这个目录,不然就把仓库破坏了。

为了把当前目录下的文件纳入版本控制,需要用 git add 命令告诉 Git

git add hello.c

我们还可以继续添加文件,例如

touch world.c
git add world.c

有人要问了,如果目录下有很多.c文件,难道要一个一个手动添加吗?

当然不用,可以用通配符。

git add *.c

这样就会把当前目录下的所有以.c结尾的文件纳入版本控制。

另外,git add 后面也可以是一个目录名,这时候 git 会把此目录下的所有文件和子目录递归式地添加到索引中。

添加好文件后,把已添加的文件提交到本地仓库。

 git commit -m 'initial project version'

现在,我们就得到了一个实实在在的仓库了。关于git addgit commit命令,后面的博文会细说。

方法二:从现有仓库克隆

如果想加入到某个项目中,可以先把该项目的 Git 仓库复制到你的电脑上,这就需要用到 git clone 命令。

其命令格式为 git clone [url]。比如,要克隆 Ruby 语言的代码仓库 Grit,可以用下面的命令:

git clone git://github.com/schacon/grit.git

这会在当前目录下创建一个名为 grit 的目录,其中包含一个 .git 的目录,用于保存下载下来的所有版本记录,然后从中取出最新版本的文件拷贝。如果进入这个新建的 grit 目录,你会看到项目的所有文件已经在里边了,供你后续开发使用。

如果希望在克隆的时候,自己指定目录,则需要在命令末尾加上目录名,比如指定目录为 mygrit

git clone git://github.com/schacon/grit.git mygrit

唯一的差别就是,现在新建的目录成了 mygrit,其他的都和上边说的一样。

注意:Git 支持许多数据传输协议。前面的例子使用的是 git:// 协议,其实也可以用 http(s):// 或者 user@server:xxxxxxxx 表示的 SSH 传输协议。这些等学到远程版本库再说,现在不用深究。


参考资料

《精通Git(第2版)》,Scott Chacon & Ben Straub,人民邮电出版社

取得 Git 仓库 —— Git 学习笔记 04相关推荐

  1. git基础: 《获取Git仓库》学习笔记

    有两种取得 Git 项目仓库的方法. 第一种是在现有项目或目录下导入所有文件到 Git 中: 第二种是从一个服务器克隆一个现有的 Git 仓库. 在现有目录中初始化仓库 如果你打算使用 Git 来对现 ...

  2. Git超详细学习笔记 手把手带你一步一步操作 -- 详细分析git 对象-域-分支以及github使用

    Git 使用笔记 详细的说明文档: 请参考安装目录下的doc文档 D:\Program Files\Git\mingw64\share\doc\git-doc\git-stash.html git 版 ...

  3. Git命令配置学习笔记

    Git 笔记 Git是分布式版本控制系统 集中式VS分布式: 集中式版本控制系统,版本库集中存放在中央服务器,必须要联网才能工作,没有历史版本库. 分布式版本控制系统,版本控制系统没有"中央 ...

  4. openCVPracticalExercise学习笔记04

    原创:openCVPracticalExercise学习笔记04 30使用OpenCV实现图像孔洞填充 31使用OpenCV将一个三角形仿射变换到另一个三角形 1 2 3 4 5 6 7 8 9 10 ...

  5. git hook 自动部署 linux git本地服务器搭建 git root 目录 git 仓库 git root/ .git

    服务器自动部署项目之GitHooks神器 - CSDN博客 -- 每次都是将本地将代码push到远程仓库,然后再ssh到服务器上git pull,甚是麻烦.在项目开发中使用git的时候,push之后, ...

  6. JavaWeb黑马旅游网-学习笔记04【BaseServlet抽取】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...

  7. JavaWeb-综合案例(用户信息)-学习笔记04【删除选中功能】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb-综合案例(用户信息)-学习笔记01[列表查询] JavaWeb-综合案例(用户信息)-学习笔记02[登录功能] JavaWeb-综合案 ...

  8. JavaScript学习笔记04【高级——DOM和事件的简单学习、BOM对象】

    w3school 在线教程:https://www.w3school.com.cn JavaScript学习笔记01[基础--简介.基础语法.运算符.特殊语法.流程控制语句][day01] JavaS ...

  9. MySQL学习笔记04【数据库的查询操作、今日内容、表的约束】

    MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...

最新文章

  1. 安装 Windows8 后值得做的十多项简单优化,让Win8速度快上加快!
  2. 九度OnlineJudge之1004:Median
  3. httpstat:一个检查网站性能的 curl 统计分析工具
  4. 添加右键菜单_如何在Windows文件夹的右键菜单中添加“打开PowerShell”
  5. 前端学习(2879):实现v-if和v-show设计分析 视图搭建
  6. 细数改善WPF应用程序性能的10大方法
  7. 厦门高桔科技有限公司
  8. Java ADF Template程序不能连接ArcGIS Server问题
  9. Codeforces Round 212 Div 2 报告(以前没写完,现在也没心情补了,先就这样吧)
  10. linux内核源码下载地址
  11. dw1820网卡支持linux吗,黑苹果驱动DW1820A无线网卡教程
  12. 基于spss的偏相关分析(partial correlation analysis)
  13. CSDN专访EnableQ在线调查引擎创作团队—软件是为用户而设计的,不是为程序员使用的
  14. html项目符号正方形,css如何添加列表项目符号
  15. 部分 SCI 英文期刊缩写对照表
  16. 电脑现在找不到驱动器,设备管理器显示DVD/CD-ROM驱动器是黄色感叹号
  17. 跟着我学习 AI丨语音识别:将语音转为数字信号
  18. 「小白学Python」Windows安装Python
  19. 使用pytorch可视化中间层的结果
  20. Python 和 Java 处理废弃API的方法

热门文章

  1. 元学习论文OPTIMIZATION AS A MODEL FOR FEW-SHOT LEARNING的简单理解
  2. Faster-RCNN的一些记录。
  3. 基于 HTTP 协议的几种实时数据获取技术
  4. Learn python the seventh day
  5. PYTHON3 函数定义
  6. Leetcode-937-Reorder Log Files-(Easy)
  7. 栈的应用--进制转换
  8. WEB安全_csrf攻击
  9. [导入]MsAjax Lib- Array.remove 函数
  10. 统计自然语言处理笔记