Git实操图文详解系列教程——GitHub核心操作
Posted 谷哥的小弟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git实操图文详解系列教程——GitHub核心操作相关的知识,希望对你有一定的参考价值。
版权声明
- 本文原创作者:谷哥的小弟
- 作者博客地址:http://blog.csdn.net/lfdfhl
开发环境
本系列教程所涉开发环境,详情如下:
- 1、Win10
- 2、JDK1.8
- 3、Git2.31.1
- 4、IDEA 2021.2.1
参考资料
本系列教程在撰写过程中所涉及参考资料,详情如下:
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概述
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
示例如下:
推送本地分支至远程仓库
远程仓库虽然有了,但是里面是空的。现在,我们先在本地仓库进行文件操作再将其推送至远程仓库。
编写test.txt
在GitDemo中新建test.txt并在其中编写内容;图示如下:
添加test.txt
将工作区的新增文件添加至暂存区,语法如下:
git add 文件名
示例如下:
提交test.txt
将暂存区的文件提交至本地库;语法如下:
git commit -m "日志信息" 文件名
示例如下:
推送至远程仓库
在完成本地操作后,我们将分支推送至远程仓库;语法如下:
git push 远程仓库完整地址或别名 分支名
示例如下:
登录GitHub,图示如下:
点击同意授权,图示如下:
授权成功;图示如下:
之前的推送可能发生错误;所以,再次推送;图示如下:
推送成功后可在GitHub上查看相关代码;图示如下:
过程梳理与小结
- 1、利用git add命令将新增文件添加至暂存区
- 2、利用git commit 命令提交代码至本地库
- 3、利用git push命令提交本地分支至远程仓库
拉取远程分支至本地仓库
我们在GitHub中修改已有文件test.txt并保存,再将其拉取到本地分支。
修改远程文件
修改test.txt文件,图示如下:
提交test.txt文件,图示如下:
提交test.txt成功,图示如下:
拉取远程分支
语法如下:
git pull 远程仓库完整地址或别名 分支名
示例如下:
拉取成功后,我们再查看本地仓库的test.txt文件;图示如下:
过程梳理与小结
- 1、远程仓库的代码发生变化
- 2、利用git pull命令拉取远程代码至本地
克隆远程仓库至本地
在实际工作中我们常需要克隆clone远程仓库至本地。克隆clone时无需使用GitHub账号与密码;而且该过程中可自动完成以下工作:
- 1、初始化本地仓库
- 2、自动为远程仓库创建别名(例如:origin)
- 3、拉取远程仓库的代码至本地
语法如下:
git clone 远程仓库完整地址
示例如下:
我们在任意一个新文件夹(例如:TestClone)中执行克隆clone命令;图示如下:
克隆完成后在TestClone中自动有了GitDemo文件夹,打开GitDemo文件夹;图示如下:
至此,克隆操作已经完成。
邀请他人加入团队
在开发过程中我们进场邀请其他人加入自己的团队;详细操作流程如下。
发起邀请
管理团队成员;图示如下:
再次登录;图示如下:
添加团队成员;图示如下:
输入被邀请者的GitHub账号;图示如下:
复制邀请链接;图示如下:
复制后得到如下邀请链接:
https://github.com/rainbowzebra/GitDemo/invitations
接受邀请
请利用任意通信手段将该邀请链接发送至团队成员;团队成员收到后登录GitHub并在浏览器中打开该链接并接受要求;图示如下:
至此,成功邀请其它人加入团队;图示如下:
SSH免密登录
在之前的操作中,我们发现除了HTTPS以外还可以用SSH的方式登录远程仓库;图示如下:
删除原本.ssh
请进入到当前用户(例如yy)的家(根)目录,查看是否有.ssh文件夹,如果有则将其删除;图示如下:
创建新的.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至远程仓库;图示如下:
流程如下:
- 1、利用git add命令将新增文件添加至暂存区
- 2、利用git commit 命令提交代码至本地库
- 3、利用git 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)
$
小结
- 1、利用SSH免密的方式push代码时就不需要再输入账号和密码了
- 2、在push过程中如果出现Timed out 超时错误;请再次重试即可
以上是关于Git实操图文详解系列教程——GitHub核心操作的主要内容,如果未能解决你的问题,请参考以下文章