獲取 Git 倉庫
通常有兩種獲取 Git 項(xiàng)目倉庫的方式:
將尚未進(jìn)行版本控制的本地目錄轉(zhuǎn)換為 Git 倉庫;
從其它服務(wù)器 克隆 一個已存在的 Git 倉庫。
兩種方式都會在你的本地機(jī)器上得到一個工作就緒的 Git 倉庫。
在已存在目錄中初始化倉庫
如果你有一個尚未進(jìn)行版本控制的項(xiàng)目目錄逆巍,想要用 Git 來控制它,那么首先需要進(jìn)入該項(xiàng)目目錄中。 如果你還沒這樣做過匀油,那么不同系統(tǒng)上的做法有些不同:
在 Linux 上:
$ cd /home/user/my_project
在 macOS 上:
$ cd /Users/user/my_project
在 Windows 上:
$ cd /c/user/my_project
之后執(zhí)行:
$ git init
該命令將創(chuàng)建一個名為 .git
的子目錄,這個子目錄含有你初始化的 Git 倉庫中所有的必須文件勾笆,這些文件是 Git 倉庫的骨干敌蚜。 但是,在這個時候窝爪,我們僅僅是做了一個初始化的操作弛车,你的項(xiàng)目里的文件還沒有被跟蹤。
如果在一個已存在文件的文件夾(而非空文件夾)中進(jìn)行版本控制蒲每,你應(yīng)該開始追蹤這些文件并進(jìn)行初始提交纷跛。 可以通過 git add
命令來指定所需的文件來進(jìn)行追蹤,然后執(zhí)行 git commit
:
$ git add readme
$ git commit -m 'readme'
稍后我們再逐一解釋這些指令的行為邀杏。 現(xiàn)在忽舟,你已經(jīng)得到了一個存在被追蹤文件與初始提交的 Git 倉庫。
克隆現(xiàn)有的倉庫
如果你想獲得一份已經(jīng)存在了的 Git 倉庫的拷貝淮阐,比如說叮阅,你想為某個開源項(xiàng)目貢獻(xiàn)自己的一份力,這時就要用到 git clone
命令泣特。 如果你對其它的 VCS 系統(tǒng)(比如說 Subversion)很熟悉浩姥,請留心一下你所使用的命令是"clone"而不是"checkout"。 這是 Git 區(qū)別于其它版本控制系統(tǒng)的一個重要特性状您,Git 克隆的是該 Git 倉庫服務(wù)器上的幾乎所有數(shù)據(jù)勒叠,而不是僅僅復(fù)制完成你的工作所需要文件。 當(dāng)你執(zhí)行 git clone
命令的時候膏孟,默認(rèn)配置下遠(yuǎn)程 Git 倉庫中的每一個文件的每一個版本都將被拉取下來眯分。 事實(shí)上,如果你的服務(wù)器的磁盤壞掉了柒桑,你通潮拙觯可以使用任何一個克隆下來的用戶端來重建服務(wù)器上的倉庫 。
克隆倉庫的命令是 git clone
。 比如飘诗,要克隆 Git 的鏈接庫 bern85
与倡,可以用下面的命令:
$ git clone https://github.com/bern85/git-learn
這會在當(dāng)前目錄下創(chuàng)建一個名為 “git-learn” 的目錄,并在這個目錄下初始化一個 .git
文件夾昆稿, 從遠(yuǎn)程倉庫拉取下所有數(shù)據(jù)放入 .git
文件夾纺座,然后從中讀取最新版本的文件的拷貝。 如果你進(jìn)入到這個新建的 git-learn
文件夾溉潭,你會發(fā)現(xiàn)所有的項(xiàng)目文件已經(jīng)在里面了净响,準(zhǔn)備就緒等待后續(xù)的開發(fā)和使用。
如果你想在克隆遠(yuǎn)程倉庫的時候喳瓣,自定義本地倉庫的名字馋贤,你可以通過額外的參數(shù)指定新的目錄名:
$ git clone https://github.com/bern85/git-learn mylearn
這會執(zhí)行與上一條命令相同的操作,但目標(biāo)目錄名變?yōu)榱?mylearn
夫椭。
Git 支持多種數(shù)據(jù)傳輸協(xié)議掸掸。 上面的例子使用的是 https://
協(xié)議,不過你也可以使用 git://
協(xié)議或者使用 SSH 傳輸協(xié)議蹭秋,比如 user@server:path/to/repo.git
扰付。