本系列教程所涉开发环境,详情如下:
本系列教程在撰写过程中所涉及参考资料,详情如下:
https://git-scm.com/book/zh/v2
http://git.oschina.net/progit/
https://www.liaoxuefeng.com/wiki/896043488029600
https://marklodato.github.io/visual-git-guide/index-zh-cn.html
GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。作为开源代码库以及版本控制系统,Github拥有超过900万开发者用户。随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法。

请自行注册GitHub账号。
由于网络原因,GitHub操作可能出现异常或失败;请耐心尝试。
在本地创建名为GitDemo的文件夹作为本地仓库;图示如下:

点击进入GitDemo文件夹利用Git init命令初始化本地仓库;图示如下:

初始化完成后会自动生成.git隐藏文件。
我们将GitHub作为远程仓库并进行相关操作。
点击+号创建远程仓库;图示如下:

填写远程仓库相关信息;建议远程仓库名与本地仓库保存一致;图示如下:

创建完毕,我们以后可通过HTTPS或者SSH的方式访问此远程仓库;图示如下:

本远程仓库的HTTPS为:https://github.com/rainbowzebra/GitDemo.git
本远程仓库的SSH为:git@github.com:rainbowzebra/GitDemo.git
为便于日后访问,我们可为远程仓库配置别名。
配置远程仓库别名,通常情况下别名与仓库名保持一致;语法如下:
git remote add 别名 远程地址
示例如下:

yy@lf MINGW64 /d/GitWorkSpace/GitDemo
$ git init
Initialized empty Git repository in D:/GitWorkSpace/GitDemo/.git/
yy@lf MINGW64 /d/GitWorkSpace/GitDemo (master)
$ git remote add GitDemo https://github.com/rainbowzebra/GitDemo.git
yy@lf MINGW64 /d/GitWorkSpace/GitDemo (master)
$
查看当前所有远程仓库别名,语法如下:
git remote -v
示例如下:

远程仓库虽然有了,但是里面是空的。现在,我们先在本地仓库进行文件操作再将其推送至远程仓库。
在GitDemo中新建test.txt并在其中编写内容;图示如下:


将工作区的新增文件添加至暂存区,语法如下:
git add 文件名
示例如下:

将暂存区的文件提交至本地库;语法如下:
git commit -m "日志信息" 文件名
示例如下:

在完成本地操作后,我们将分支推送至远程仓库;语法如下:
git push 远程仓库完整地址或别名 分支名
示例如下:

登录GitHub,图示如下:

点击同意授权,图示如下:

授权成功;图示如下:

之前的推送可能发生错误;所以,再次推送;图示如下:

推送成功后可在GitHub上查看相关代码;图示如下:


我们在GitHub中修改已有文件test.txt并保存,再将其拉取到本地分支。
修改test.txt文件,图示如下:

提交test.txt文件,图示如下:

提交test.txt成功,图示如下:

语法如下:
git pull 远程仓库完整地址或别名 分支名
示例如下:

拉取成功后,我们再查看本地仓库的test.txt文件;图示如下:

在实际工作中我们常需要克隆clone远程仓库至本地。克隆clone时无需使用GitHub账号与密码;而且该过程中可自动完成以下工作:
语法如下:
git clone 远程仓库完整地址
示例如下:
我们在任意一个新文件夹(例如:TestClone)中执行克隆clone命令;图示如下:

克隆完成后在TestClone中自动有了GitDemo文件夹,打开GitDemo文件夹;图示如下:

至此,克隆操作已经完成。
在开发过程中我们进场邀请其他人加入自己的团队;详细操作流程如下。
管理团队成员;图示如下:

再次登录;图示如下:

添加团队成员;图示如下:

输入被邀请者的GitHub账号;图示如下:


复制邀请链接;图示如下:

复制后得到如下邀请链接:
https://github.com/rainbowzebra/GitDemo/invitations
请利用任意通信手段将该邀请链接发送至团队成员;团队成员收到后登录GitHub并在浏览器中打开该链接并接受要求;图示如下:

至此,成功邀请其它人加入团队;图示如下:

在之前的操作中,我们发现除了HTTPS以外还可以用SSH的方式登录远程仓库;图示如下:

请进入到当前用户(例如yy)的家(根)目录,查看是否有.ssh文件夹,如果有则将其删除;图示如下:

请在该当前用户(例如yy)的家(根)目录下右键选择Git Bash Here;图示如下:

运行命令生成.ssh 秘钥目录,语法如下:
ssh-keygen -t rsa -C 登录GitHub时使用的用户名
请注意:此处-C中是大写的 C
代码如下:
ssh-keygen -t rsa -C lfdfhl@gmail.com
请注意:输入该命令行连续敲击三次回车
结果如下:

请打开.ssh文件夹中的id_rsa.pub文件并复制全部内容,图示如下:

请登录 GitHub依次点击用户头像→Settings→SSH and GPG keys;图示如下:

选择新增SSH key;图示如下:

填写Title与Key;其中Title无明确要求可自定义;Key为刚才新生成的秘钥;图示如下:

创建成功,图示如下:

设置完成后,点击SSH即可看到与之对应的链接;图示如下:

在GitDemo中添加hello.txt并push至远程仓库;图示如下:

流程如下:
代码如下:

yy@lf MINGW64 /d/GitWorkSpace/GitDemo (master)
$ git add hello.txt
yy@lf MINGW64 /d/GitWorkSpace/GitDemo (master)
$ git commit -m "hello first commit" hello.txt
[master fb58471] hello first commit
1 file changed, 1 insertion(+)
create mode 100644 hello.txt
yy@lf MINGW64 /d/GitWorkSpace/GitDemo (master)
$ git push GitDemo master
fatal: unable to access 'https://github.com/rainbowzebra/GitDemo.git/': OpenSSL SSL_read: Connection was reset, errno 10054
yy@lf MINGW64 /d/GitWorkSpace/GitDemo (master)
$ git push GitDemo master
fatal: unable to access 'https://github.com/rainbowzebra/GitDemo.git/': Failed to connect to github.com port 443: Timed out
yy@lf MINGW64 /d/GitWorkSpace/GitDemo (master)
$ git push GitDemo master
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 272 bytes | 90.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/rainbowzebra/GitDemo.git
7f8b64f..fb58471 master -> master
yy@lf MINGW64 /d/GitWorkSpace/GitDemo (master)
$