什么是clone?如何将他人的GitHub仓库复制到自己的电脑
在之前的文章中,您已经掌握了如何将自己电脑(本地)上创建的项目上传(推送)到GitHub仓库的方法。至此,您已经掌握了使用GitHub管理自己代码的基本技能。
本次的主题是与之前相反的操作,即如何将GitHub上他人的仓库(项目)完整地复制到自己的电脑上。这个操作被称为“clone(克隆)”。这是利用全世界优秀的开源项目,或参与团队开发时,至关重要且必经的第一步。让我们马上开始学习吧!
`git clone`是什么?与单纯下载的区别
在GitHub的仓库页面上,绿色的“Code”按钮下也有一个“Download ZIP”的选项。您可能会想:“如果只是想复制文件,这个不就够了吗?”然而,`git clone`和下载ZIP文件,看似相似,实则完全不同。
- 下载ZIP: 仅仅是下载那一瞬间的项目文件集合,就像普通的文件夹一样。其中不包含记录了过去修改历史(提交日志)等的`.git`目录。也就是说,您无法享受到版本控制带来的好处。
- git clone: 除了项目的所有文件外,还会将至今为止的所有修改历史(所有提交)也一并完整地复制过来。这样一来,您的电脑上就会创建一个功能齐全的全新本地仓库。您可以立刻回溯修改历史,或者提交新的更改。
打个比方,下载ZIP就像是“只拿到书本最后一页的复印件”,而`git clone`则是“得到一本一模一样的全新书籍”,这样想就更容易理解了。
`git clone`的实践步骤
那么,让我们实际使用`git clone`命令,将GitHub上的仓库复制到您的电脑上吧。
第一步:复制想要克隆的仓库URL
首先,访问您想要复制的项目的GitHub页面。这次我们以著名的CSS框架“Bootstrap”的仓库为例进行克隆。
打开页面后,点击绿色的“Code”按钮。这时会显示几个用于复制URL的选项。虽然有HTTPS和SSH两种,但由于我们上次已经设置了SSH密钥,使用SSH的URL会更方便。使用SSH可以在push或pull时省略输入密码的步骤。
[图片:在Bootstrap的GitHub仓库页面点击“Code”按钮,并复制SSH URL的示意图]
点击URL右侧的复制图标,将URL复制到剪贴板。
第二步:在终端执行`git clone`命令
接下来,打开终端(Windows用户请使用Git Bash),然后进入您想要保存项目的目录。桌面,或者像`projects`这样的开发专用文件夹都是不错的选择。
进入目录后,就轮到`git clone`命令出场了。如下所示,在命令后粘贴刚才复制的URL并执行。
git clone [在此处粘贴复制的SSH URL]
克隆Bootstrap仓库的具体命令如下:
git clone git@github.com:twbs/bootstrap.git
执行后,下载就会开始。根据仓库的大小,可能需要一些时间。
第三步:确认克隆是否成功
命令执行完毕后,当前目录下应该会生成一个与仓库同名的文件夹(本例中是`bootstrap`)。让我们来确认一下。
ls
如果找到了名为`bootstrap`的文件夹,就进入该文件夹。
cd bootstrap
至此,您的电脑上就有了一个完整的Bootstrap仓库了。这个文件夹已经处于Git的管理之下,无需再执行`git init`等操作。
克隆后的第一步
克隆仓库后,您可以立刻开始在该项目上工作。下面介绍几个在开始工作前常用的命令。
检查分支
要查看有哪些工作分支,可以使用`git branch`命令。加上`-a`选项,还可以看到远程仓库的分支。
git branch -a
获取最新更改
您克隆的仓库在您工作期间可能会被其他人更新。在开始工作前,请务必执行`git pull`命令,将远程仓库的最新状态同步到您的本地仓库。
git pull
注意事项:如果想做贡献,请从“Fork”开始
这里要介绍一个重要的概念。对于您没有写入权限的他人仓库,您是无法直接推送(push)更改的。如果您想为该项目添加新功能或修复bug等方式做出“贡献”,首先需要进行一个叫做“Fork(分叉)”的操作。
Fork是将在他人的仓库完整地复制到您自己的GitHub账户上,创建一个专属于您的远程仓库的功能。
为开源项目做贡献的基本流程如下:
- 在GitHub上Fork您想贡献的项目。
- 将Fork后在您自己账户下创建的仓库clone到您的电脑上。
- 在您的电脑上修改代码,然后push到您自己的远程仓库。
- 在GitHub上,从您的仓库向原项目发送一个“Pull Request(拉取请求)”,请求对方合并您的更改。
首先请熟悉`clone`操作,下一步不妨挑战一下从Fork发起Pull Request吧。