Git 存储库
Git 存储库或存储库是 Git 跟踪更改的文件夹。计算机上可以有任意数量的存储库,每个存储库都存储在自己的文件夹中。系统上的每个 Git 存储库都是独立的,因此保存在一个 Git 存储库中的更改不会影响另一个 Git 存储库的内容。
Git 存储库包含存储库中保存的每个文件的每个版本。这不同于仅存储文件差异的其他版本控制系统。 Git 将文件版本存储在项目目录下的隐藏的.git文件夹中,以及管理代码所需的其他信息。 Git 非常高效地保存这些文件,因此拥有大量版本并不意味着它使用大量磁盘空间。存储文件的每个版本有助于 Git 合并代码变得更好,并快速轻松地处理多个版本的代码。
开发人员通过计算机上的本地存储库中发出的命令与 Git 协作。即使共享代码或从团队获取更新,也会通过更新本地存储库的命令完成。这种以本地为中心的设计使 Git 成为分布式版本控制系统。每个存储库都是自包含的,存储库的所有者负责使其与其他人所做的更改保持最新。
大多数团队使用托管在服务器上的中心存储库,每个人都可以访问该存储库来协调其更改。中央存储库通常托管在源代码管理管理解决方案(如 GitHub 或 Azure DevOps)中。源代码管理管理解决方案添加了功能,使协同工作更加轻松。
有两个选项可用于创建 Git 存储库。第一种是在现有项目或目录下导入所有文件到 Git 中;第二种是从一个服务器克隆一个现有的 Git 仓库。如果使用仅在本地计算机上的代码,请使用该文件夹中的代码创建本地存储库。但是,大多数时候代码已在 Git 存储库中共享,因此将现有存储库克隆到本地计算机是建议使用的方法。
在现有目录中初始化仓库
如果你打算使用 Git 来对现有的项目进行管理,你只需要进入该项目目录,在shell(widnows 为gitbash)中输入:
git init
该命令将创建一个名为.git的子目录,这个子目录含有你初始化的 Git 仓库中所有的必须文件,这些文件是 Git 仓库的骨干。但是,在这个时候,我们仅仅是做了一个初始化的操作,你的项目里的文件还没有被跟踪。
如果你是在一个已经存在文件的文件夹(而不是空文件夹)中初始化 Git 仓库来进行版本控制的话,你应该开始跟踪这些文件并提交。
# 通过 git add 命令来实现对指定文件的跟踪git add *.cgit add LICENSE # 执行 git commit 提交git commit -m 'initial project version'
克隆现有的仓库
如果你想获得一份已经存在了的 Git 仓库的拷贝。比如,要克隆 Git 的可链接库 libgit2,在shell(widnows 为gitbash)中输入:
git clone https://github.com/libgit2/libgit2
这会在当前目录下创建一个名为“libgit2”的目录,并在这个目录下初始化一个.git文件夹,从远程仓库拉取下所有数据放入.git文件夹,然后从中读取最新版本的文件的拷贝。如果你进入到这个新建的 libgit2 文件夹,你会发现所有的项目文件已经在里面了,准备就绪等待后续的开发和使用。
如果你想在克隆远程仓库的时候,自定义本地仓库的名字,你可以使用如下命令:
git clone https://github.com/libgit2/libgit2 mylibgit
这将执行与上一个命令相同的操作,不过在本地创建的仓库名字变为mylibgit。
Git 支持多种数据传输协议。上面的例子使用的是https://
协议。
可以使用git://
协议或者使用SSH传输协议。
git clone git@github.com/libgit2/libgit2