Git使用入门(一)

说明:

本文献给对版本控制不太熟悉(甚至不太熟悉编程)而又急需使用Git的同学,希望能够对Git的基本操作建立起一个直观的感受。内容主要来源于Pro Git一书的第二章。

什么是版本控制

Git是一种版本控制工具。什么是版本控制呢?我们来看一张图:



这张图反应了一个很常见的问题。我们经常需要对一个文件进行修改,而又不敢轻易舍弃之前的版本。版本控制工具可以帮我们解决这一问题,通过Git可以随时切换回之前的版本。

关于Git是如何实现版本控制的,它的优势是什么以及还有那些其它的作用,就不在这个入门篇里介绍了。

创建一个Git项目

在这里我们先不涉及从服务器克隆仓库,而是在本地文件夹创建。

  • 为了方便起见,我们首先创建一个新文件夹gitlearn, 然后进入这个文件夹执行命令
git init

这时终端会返回

Initialized empty Git repository in /Users/xiaoying/gitlearn/.git/

这意味着我们在该项目中创建了一个git仓库。注意,这个仓库是在本地的。实际上,Git的大部分操作都在本地完成,由于使用Git时通常需要把文件上传到远程服务器上,所以初次接触时可能会误认为服务器上的才是仓库,因此对各种命令产生误解。
如果在当前文件下使用

ls -a

会看到一个.git文件。

  • 随便复制几个文件到之前的目录中,然后在终端输入
git add .
git commit -m 'initial project version

其中,git add .将所有的文件加入追踪中,而git commit -m 'initial project version则将它们存入仓库中。
至此,一个Git管理的项目就基本创建完成了。

Git的状态

在下一次介绍Git的命令之前,首先要对文件的各种状态有一个清楚的认识。

Git文件的三种状态

  • 已提交(committed):表示数据已经安全的保存在本地数据库中
  • 已修改(modified):表示文件进行了修改,但是还没有保存到数据库中
  • 已暂存(staged):表示对一个文件的当前版本做了标记,使之包含在下一次提交快照中

由于文件的这三种状态,导致了Git项目的三个工作区域。

Git项目的三个工作区域

  • Git仓库:Git仓库目录是Git用来保存项目的元数据和对象数据库的地方。这是Git中最重要的部分,从其它计算机克隆仓库时,拷贝的就是这里的数据。
  • 工作目录:工作目录是对项目的某个版本独立提取出来的内容。也就是你在文件夹中看到的内容。
  • 暂存目录:暂存区域是一个文件,保存了下次将提交的文件列表信息,一般在Git仓库目录中。

追踪与未追踪

在工作目录中,由于文件不一定被git追踪,所以并非所有文件都处在三种状态中。但所有文件都只有追踪与未追踪两种状态。

  • 以追踪的文件是是指在上一次快照中有记录的文件,它们被纳入版本控制中。工作一段时间后,它们的状态可能变为未修改,已修改或已暂存。
  • 工作目录中除了以追踪之外的文件都属于未追踪。它们不会自动加入版本控制中。

示例

以上面创建的Git项目为例讲解这些状态。首先在文件夹中加入三个文件address,address.cpp,mnist.py。

  • 在执行完git init之后,可以使用
git status

来查看工作目录中文件的状态。



此时所有的文件都处于未追踪状态。Git仓库和暂存目录都没有文件。

  • 执行git add .(注意.前面的空格)之后

    此时文件都被追踪,且处于已暂存状态。
    git add .是一个多功能命令,既可以使未被追踪的文件开始被追踪,也可以将修改了的问价添加到暂存目录中。
  • 执行git commit -m 'initial project version后

    所有文件都被提交,处于未修改状态。
  • 如果此时对mnist.py文件进行修改,同时创建一个新文件README

    修改过的文件变为未修改状态,而新创建的文件不会被自动追踪。

总结

总之,Git中文件的状态是非常重要的。只有在清楚Git状态的基础上,才能明白以下几个概念,从而正确的使用各种命令:

  • 配置并初始化一个仓库(repository)
  • 开始或停止追逐(track)文件
  • 暂存(stage)或提交(commit)修改
  • 向远程仓库推送(push)
  • 从远程仓库拉取(pull)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • (预警:因为详细,所以行文有些长,新手边看边操作效果出乎你的预料) 一:Git是什么? Git是目前世界上最先进的...
    axiaochao阅读 2,039评论 1赞 8
  • 还是老规矩,这篇看完后,还是学不会git版本控制的,你来砍我 是兄弟就来砍我吧!!! Git是分布式版本控制系统,...
    Zteen阅读 3,647评论 0赞 6
  • 安装Git Git的下载地址:Git官网下载地址 Git本地仓库和命令 配置用户 下载完Git后,右键会有一个Gi...
    TokyoZ阅读 4,686评论 1赞 7
  • 一、基本概念: 注:对于git的分布式概念及其优点,不重复说明,自己百度或谷歌。本文中涉及到指令前面有$的,在cm...
    大厂offer阅读 1,602评论 0赞 3
  • 简介 Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git 与常用的版本控制工具 ...
    闽越布衣阅读 2,927评论 0赞 18

友情链接更多精彩内容