什么是仓库呢?仓库又名版本库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
git init
Git 使用 **
git init
** 命令来初始化一个 Git 仓库,Git 的很多命令都需要在 Git 的仓库中运行,所以 **
git init
** 是使用 Git 的第一个命令。
在执行完成 **
git init
** 命令后,Git 仓库会生成一个
.git
目录,该目录包含了资源的所有元数据,其他的项目目录保持不变。
使用方法
使用当前目录作为 Git 仓库
git init
该命令执行完后会在当前目录生成一个
.git
目录。
使用指定目录作为Git仓库
git init <目录名>
初始化后,会在指定目录下会出现一个名为
.git
的目录,所有 Git 需要的数据和资源都存放在这个目录中。
例如:
git init mywarehouse
git add & git commit
git add & git commit 用于把文件添加到版本库。
先明确一下,Git只能跟踪文本文件的改动,比如TXT文件,网页等(所有的版本控制系统都是这样的)。而图片、视频、Microsoft的Word格式这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片大小的变化,无法知道具体改动。
言归正传,现在我们编写一个
README.txt
文件,内容如下:
这是我的第一个git仓库
一定要放到
mywarehouse
目录下(子目录也行),因为这是一个Git仓库。
再在该目录下添加一些其他文件。
第一步,用命令
git add
告诉Git,把文件添加到仓库:
$ gitadd *.py # 将目录下以 .py 结尾的全部文件提交到仓库中
$ gitadd README.txt # 将目录下 README 文件提交到仓库中
疑难解答:
如果得到错误:
fatal: not a git repository (or any of the parent directories)
,请检查命令是否在Git仓库目录内执行。因为Git命令必须在Git仓库目录内执行(
git init
除外),在仓库目录外执行是没有意义的。
如果得到错误
fatal: pathspec 'readme.txt' did not match any files
,请检查该文件是否存在于当前目录下,或者是否写错了文件名。
第二步,用命令
git commit
告诉Git,把文件提交到仓库:
$ git commit -m'初始化项目版本'# 生成版本,版本描述信息为:初始化项目版本
温馨提示:
在 Linux 系统中,commit 信息使用单引号 **
'
**,Windows 系统,commit 信息使用双引号 **
"
**。
所以在
git bash
中 **
git commit -m '提交说明'
** 这样是可以的,在 Windows 命令行中就要使用双引号 **
git commit -m "提交说明"
**。
为什么Git添加文件需要
add
,
commit
一共两步呢?因为
commit
可以一次提交很多文件,所以你可以多次
add
不同的文件,比如:
$ gitadd file1.py
$ gitadd file2.py file3.py
$ git commit -m"add 3 files."
添加文件到Git仓库,分两步:
- 使用命令
git add <file>
,注意,可反复多次使用,添加多个文件; - 使用命令
git commit -m <message>
,完成。message
是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。
git clone
我们使用 **
git clone
** 从现有 Git 仓库中拷贝项目。
克隆仓库的命令格式为:
git clone <warehouse>
如果我们需要克隆到指定的目录,可以使用以下命令格式:
git clone <warehouse><directory>
参数说明:
- warehouse:Git 仓库,如
github
仓库 - directory:本地目录
比如,要克隆 Alist 的 Git 代码仓库 alist,可以用下面的命令:
$ git clone git://github.com/alist-org/alist.git
执行该命令后,会在当前目录下创建一个名为 alist 的目录,其中包含一个 .git 的目录,用于保存下载下来的所有版本记录。
如果要自己定义要新建的项目目录名称,可以在上面的命令末尾指定新的名字:
$ git clone git://github.com/alist-org/alist.git myalist
版权归原作者 柯哆 所有, 如有侵权,请联系我们删除。