Search This Blog

Git 与 GitHub (一)

背景

Git是目前最优秀的分布式版本控制系统,而GitHub是一个通过Git进行版本控制的软件源代码托管服务。作为一个个人用户,需求如下
  • 将已有的本地项目上传至GitHub进行保管
本文正是介绍如何快速地实现需求。

安装与注册

首先,需要在本地安装Git客户端,以Windows为例,在Git下载Windows版本的Git客户端并默认安装即可。其次,为了使用GitHub提供的服务,需要注册一个GitHub账号。在Git客户端安装好以后以及GitHub注册以后,需要做的事情是建立本地与GitHub的安全连接(SSH),以便可以在本地通过命令行实现与GitHub的交互。具体的操作如下

设置本地Git

Git为分布式版本控制系统,所谓分布式就是你可以在任何机器上对同一份代码进行管理,那如何确定就是“你”呢?这就需要进行用户名和邮箱的设置了,在commit阶段用户名和邮箱就成为了提交者的标识。
  • 设置用户名
  • 设置邮箱
设置用户名如下
$ git config --global user.name "Mona Lisa"
设置邮箱如下
$ git config --global user.email "email@example.com"
以上命令中 --global 标识表示为全局(所有的Repository)设置用户名和邮箱。如果去除该标识,表示为当前的Repository设置用户名和邮箱。

本地生成密钥

在程序列表中找到Git Bash,打开后输入
$ ssh-keygen -t rsa -C "youremail@example.com"
其中 youremail@example.com 为GitHub的注册邮箱
然后一路回车,等待密钥生成。默认生成的密钥将会保存在 ~/.ssh 路径下,其中包括三个文件,分别是:id_rsaid_rsa.pub 其中,id_rsa为私钥,而id_rsa.pub是公钥,接下来我们需要的是id_rsa.pub

在GitHub中添加公钥

本地生成了公钥以后,在GitHub中添加相应的公钥即可实现本地与GitHub的安全连接。如下图所示:选择Setting -> SSH and GPG keys -> New SSH Key -> 添加Title描述(可任意填写) -> 复制公钥中的内容到Key选框 -> Add SSH Key

按照以上步骤生成了SSH 密钥以后就可以实现本地与GitHub的安全连接了。

快速上手

建立安全连接为将本地的项目上传至GitHub,步骤如下
  • 在GitHub上创建一个空的Repository
  • 本地项目关联至GitHub所创建的Repository
第一步,如图所示,创建Repository。New Repository -> 添加 Repository 名称 -> 添加Repository描述(可选) -> Create Repository。
主要注意的是,在创建该Repository的时候最好不要添加 .gitignore 或者 LICENSE文件,避免在导入本地项目时发生冲突。(即创建一个“干净”的空库)
创建好以后,会跳转到如下界面,GitHub为新创建的Repository提供了四种完善的方法:分别是 ① 通过GitHub桌面程序;② 通过在本地创建新的Repository,然后将其推送至该Repository; ③ 将本地以后的Repository推送至该Repository; ④ 从其他的非Git库中导入。这里,假设本地的项目此前并未创建过Repository,那么我们遵循第二个方法进行操作。
第二步,将本地项目关联至刚刚创建的Repository,方法如下:在cmd窗口中输入以下命令:
git init
git add *
git commit -m "first commit"
git remote add origin https://github.com/zouyu4524/firstRepo.git
git push -u origin master
注意到,前三句是在本地当前项目目录中创建一个本地Repository,并且将所有的文件添加到暂存区然后提交至HEAD,简而言之就是前三句话实现了将本地当前目录下的所有文件转移至了本地的Repository。
第四句的作用在于将本地Repository与GitHub上远程的Repository关联起来。其中 origin 是远程Repository的别名,而这句话的含义就是为远程Repository (https://github.com/zouyu4524/firstRepo.git)添加到 origin 中,这样一来在本地git中使用 origin 时就可以等效为远程的Repository。
第五句实现了将本地Repository推送至GitHub远程Repository。其中正是用 origin 指代了远程的Repository,后面 master 表示将本地内容推送至远程Repository的 master 分支。至此,我们的目标就实现了。

参考

No comments:

Post a Comment