Git 简明教程

Git - Online Repositories

GitHub 是一个基于 Web 的软件开发项目托管服务,它使用 Git 版本控制系统。它还有自己的标准 GUI 应用程序,可直接从该服务的网站下载(Windows、Mac、GNU/Linux)。但在本会话中,我们只关注 CLI 部分。

Create GitHub Repository

访问 github.com 。如果您已经拥有 GitHub 帐户,请使用该帐户登录或创建一个新帐户。按照 github.com 网站上的步骤创建新仓库。

Push Operation

Tom 决定使用 GitHub 服务器。要启动一个新项目,他在其中创建了一个新目录和一个文件。

[tom@CentOS]$ mkdir github_repo

[tom@CentOS]$ cd github_repo/

[tom@CentOS]$ vi hello.c

[tom@CentOS]$ make hello
cc hello.c -o hello

[tom@CentOS]$ ./hello

上述命令将生成以下结果:

Hello, World !!!

在验证他的代码后,他使用 git init 命令初始化目录,并在本地提交其更改。

[tom@CentOS]$ git init
Initialized empty Git repository in /home/tom/github_repo/.git/

[tom@CentOS]$ git status -s
?? hello
?? hello.c

[tom@CentOS]$ git add hello.c

[tom@CentOS]$ git status -s
A hello.c
?? hello

[tom@CentOS]$ git commit -m 'Initial commit'

之后,他添加了 GitHub 仓库 URL 作为远程源,并将他的更改推送到远程仓库。

[tom@CentOS]$ git remote add origin https://github.com/kangralkar/testing_repo.git

[tom@CentOS]$ git push -u origin master

推送操作将要求 GitHub 用户名和密码。成功身份验证后,该操作将成功。

上述命令将生成以下结果:

Username for 'https://github.com': kangralkar
Password for 'https://kangralkar@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/kangralkar/test_repo.git
 * [new branch]      master −> master
 Branch master set up to track remote branch master from origin.

从现在开始,Tom 可以将任何更改推送到 GitHub 仓库。他可以使用本教程中讨论的所有命令,以及 GitHub 仓库。

Pull Operation

Tom 成功将所有更改推送到 GitHub 仓库。现在,其他开发人员可以通过执行克隆操作或更新其本地仓库来查看这些更改。

Jerry 在他的主目录中创建了一个新目录,并使用 git clone 命令克隆了 GitHub 仓库。

[jerry@CentOS]$ pwd
/home/jerry

[jerry@CentOS]$ mkdir jerry_repo

[jerry@CentOS]$ git clone https://github.com/kangralkar/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 命令验证了目录的内容。

[jerry@CentOS]$ ls
test_repo

[jerry@CentOS]$ ls test_repo/
hello.c