GitHub是使用Git的版本控制系统是一个基于网络的托管服务的软件开发项目。它也有其标准的GUI应用程序可供下载(在Windows,Mac,GNU/Linux)的直接从服务的网站。但在这个环节中,我们将只能看到CLI部分。
## 创建GitHub的资料库
去到 [github.com](https://github.com/). 如果您已经GitHub的帐户,然后使用该帐户登录,或创建新的。从 [github.com](https://github.com/) 网站按照以下步骤来创建新的存储库。
推送操作
Sampson 决定使用GitHub上服务器。要开始新的项目,他将创建一个新的目录和一个文件里面。
[sampson@CentOS]$ mkdir github_repo
[sampson@CentOS]$ cd github_repo/
[sampson@CentOS]$ vi hello.c
[sampson@CentOS]$ make hello
cc hello.c -o hello
[sampson@CentOS]$ ./hello
上面的命令会产生以下结果。
Hello, World !!!
在验证自己的代码后,他在初始化目录用git init命令在本地提交他的变化。
[sampson@CentOS]$ git init
Initialized empty Git repository in /home/sampson/github_repo/.git/
[sampson@CentOS]$ git status -s
?? hello
?? hello.c
[sampson@CentOS]$ git add hello.c
[sampson@CentOS]$ git status -s
A hello.c
?? hello
[sampson@CentOS]$ git commit -m 'Initial commit'
之后,他增加了GitHub的版本库URL作为一个远程的起源,并推他到远程仓库。
> 注:我们已经讨论了所有这些步骤在第4章下创建裸库部分。
[sampson@CentOS]$ git remote add origin https://github.com/kangralkar/testing_repo.git
[sampson@CentOS]$ git push -u origin master
推送操作会询问 GitHub 的用户名和密码。验证成功后,操作会成功。
上面的命令会产生以下结果。
Username for 'https://github.com': 12xuedemo
Password for 'https://12xuedemo@github.com':
Counting objects: 3, done.
Writing objects: 100% (3/3), 214 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/12xuedemo/test_repo.git
* [new branch] master −> master
Branch master set up to track remote branch master from origin.
从现在开始,Sampson 可以在 GitHub 库做任何更改。他可以使用本章讨论的所有命令在 GitHub 的仓库中。
## Pull 操作
Sampson 成功地把他所有的变化GitHub的库。现在其他开发人员可以查看这些更改进行克隆操作或更新他们的本地资源库。
Byron 在他的home目录和克隆的GitHub库使用git clone命令创建新的目录。
[byron@CentOS]$ pwd
/home/byron
[byron@CentOS]$ mkdir byron_repo
[byron@CentOS]$ git clone https://github.com/12xuedemo/test_repo.git
上面的命令会产生以下结果。
Cloning into 'test_repo'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 3 (delta 0)
Unpacking objects: 100% (3/3), done.
他验证通过执行ls命令的目录内容。
[byron@CentOS]$ ls
test_repo
[byron@CentOS]$ ls test_repo/
hello.c