Clone
clone 命令是 Git 使用最频繁的指令之一。在本地也可以使用,例如将名为 proj 的 git 项目克隆到 test 文件夹里。
mkdir proj
cd proj
git init
echo readme > readme.md
git add readme.md
git commit -m "first commit"
cd ..
mkdir test
cd test
git clone E:/work/Proj/gitTest/proj
执行后,test 文件夹中会出现 proj 文件夹,且包含 readme.md 文件。
远程仓库
若要将文件夹共享出去实现多人协作,需要创建一个不包含当前工作目录的裸仓库。方法如下,其中 --bare 表示克隆后的仓库为裸仓库;proj.git 为克隆后的名称。
git clone --bare proj proj.git
【proj.git】仓库将被设为远程仓库。接下来改动 proj 并推送到远程仓库:
cd proj
echo world >> readme.md
git commit -a -m "add world"
git remote add origin E:xxx\proj.git
git push -u origin master
- 【remote add】用于添加远程仓库,【origin】为该远程仓库的名称,后面的路径为绝对路径。
push -u origin master将当前项目的【master】分支推送到 origin 仓库。
远程克隆
要让局域网中的其他计算机也能克隆当前项目,需确保它们能访问该文件夹。Git 提供了便捷的服务指令 git daemon。
回到 proj.git 的父路径,执行以下内容:
git daemon --export-all --enable=receive-pack --base-path=. --port=9418
- 【git daemon】用于开启一个自带 Git 协议的守护进程,提供无需认证的克隆/拉取/推送服务。
- 【–export-all】表示所有找到的裸库都允许被克隆。
- 【–enable】用于指定客户端能够使用的指令,
receive-pack允许客户端使用 push。 - 【–base-path】用于设置虚拟根目录,
.即为当前目录。 - 【–port】用于设置端口,9418 为其默认端口,该参数可以省略。
接下来,在局域网中任何一台电脑,使用如下指令即可将 proj 克隆到自己的电脑中:
git clone git://xxx.xxx.x.x:9418/proj.git
远程主机在克隆时,若端口为 9418,同样可以省略。
克隆成功后,远程主机会出现 proj 文件夹,里面的内容即为 proj 向 proj.git 提交的最新内容。
协作
远程主机对其 git 文件进行修改并 push,只要 git daemon 服务未关闭即可成功。

