Git:git clone命令詳解

最近更新時間 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."[email protected]:".insteadOf "https://github.com/"
git config --list
user.name=username
[email protected]
[email protected]:.insteadof=https://github.com/
取消設置替換
git config --global --unset url."[email protected]:".insteadOf

Git 支持多種數據傳輸協議。 包括 https:// 協議、git:// 協議或者使用 SSH 傳輸協議,比如 [email protected]:libgit2/libgit2.git。

 

rss_feed