Git:git clone命令详解
Lasted 2020-01-02 12:16:41
git clone命令用于克隆现有的仓库。
如果想获取一份已经存在的Git仓库拷贝,需要用到git clone
命令。与其他VCS系统(比如说 Subversion),Git 克隆的是该 Git 仓库服务器上的几乎所有数据,而不是仅仅复制完成你的工作所需要文件。当你执行 git clone
命令的时候,默认配置下远程 Git 仓库中的每一个文件的每一个版本都将被拉取下来。
语法
git clone [url]
常用命令
1. 克隆 Git 的可链接库 libgit2。
git clone https://github.com/libgit2/libgit2
Cloning into 'libgit2'... remote: Enumerating objects: 97755, done. remote: Counting objects: 100% (97755/97755), done. remote: Compressing objects: 100% (26444/26444), done. remote: Total 97755 (delta 69581), reused 97727 (delta 69553), pack-reused 0 Receiving objects: 100% (97755/97755), 48.33 MiB | 857.00 KiB/s, done. Resolving deltas: 100% (69581/69581), done.
完成后会在当前目录下创建一个名为 “libgit2” 的目录,并在这个目录下初始化一个 .git 文件夹,从远程仓库拉取下所有数据放入 .git 文件夹,然后从中读取最新版本的文件的拷贝。如下所示:
ls -al
drwxr-xr-x. 8 root root 163 Jan 2 11:16 .git drwxr-xr-x. 2 root root 28 Jan 2 11:16 .github -rw-r--r--. 1 root root 372 Jan 2 11:16 .gitignore drwxr-xr-x. 3 root root 32 Jan 2 11:16 include -rw-r--r--. 1 root root 15275 Jan 2 11:16 README.md
2. 自定义本地仓库的名字。
git clone https://github.com/libgit2/libgit2 mylibgit
Cloning into 'mylibgit'...
remote: Enumerating objects: 97755, done.
remote: Counting objects: 100% (97755/97755), done.
remote: Compressing objects: 100% (26444/26444), done.
remote: Total 97755 (delta 69581), reused 97727 (delta 69553), pack-reused 0
Receiving objects: 100% (97755/97755), 48.33 MiB | 857.00 KiB/s, done.
Resolving deltas: 100% (69581/69581), done.
跟上一命令相似,不过在本地创建的仓库名字变为 mylibgit。
3. 指定用户名和密码。
HTTP协议的用户名/密码授权
git clone https://username:password@uri
Note:如果用户名或密码中包含“@”,需要先进行转义。
4. 设置替换URL。
git config --global --add url."git@github.com:".insteadOf "https://github.com/"
git config --list
user.name=username user.email=mail@example.com url.git@github.com:.insteadof=https://github.com/
取消设置替换
git config --global --unset url."git@github.com:".insteadOf
Git 支持多种数据传输协议。 包括 https:// 协议、git:// 协议或者使用 SSH 传输协议,比如 git@github.com:libgit2/libgit2.git。