1、GitHub介绍
GitHub是一个开源的代码托管平台,使用GitHub可以查看别人的项目、可以建立静态网页、可以管理插件、可以在线编译、可以托管代码等等。
1.1、GitHub使用方法
- 注册用户,网址:https://github.com/
- 配置sh-key
- 创建项目
- 克隆项目到本地
- 推送新代码到github
2、GitHub注册与登录
国内访问Github可能会有些慢,或者可以使用一些加速器,也可以使用国内的平台Gitee(码云)【https://gitee.com/】它的操作与Github一样,只是部分功能需要付费才能解锁。
2.1、登录官网,注册用户
2.1.1、点击“登录”
2.1.2、点击“创建一个帐户 ”
2.1.3、按照提示完成注册
2.1.4、输入启动代码
2.1.5、接下来按提示选择相应的需求,完成注册
3、远程仓库
假设1:假设你准备开发一个新功能,但是需要两周才能完成。第一周写了50%,但是在第二周你的电脑粉碎了,并且还没有将上周工作代码存储到其他物理介质上,这样存在丢失的巨大风险
假设2:假设你是一个非常努力的程序员,除了在公司写代码外你还经常把代码用U盘拷贝回家继续工作,如果在通勤过程中U盘不小心丢了,回家之后你就不能工作了
3.1、配置GitHub
3.1.1、创建SSH Key
[root@git_server ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:2VVZL4n7BLovmp5NEzWWmFT40on4O76d032XaMGBztE root@git_server
The key's randomart image is:
+---[RSA 2048]----+
| .o. .o.|
| ..o +...|
| .o+@.o .|
| .ooB+E . |
| S.*.+ o |
| .= = |
| +. .+..|
| =++.+..+|
| .=o++=. o|
+----[SHA256]-----+
[root@git_server ~]# cd .ssh/
[root@git_server .ssh]# ls
authorized_keys id_rsa id_rsa.pub # .ssh/id_rsa:私钥;.ssh/id_res.pub:公钥
[root@git_server .ssh]# cat id_rsa.pub
3.1.2、添加公有秘钥到GitHub,点击右上角“图像”,再点击“设置”
3.1.3、添加公有秘钥到github
3.1.4、测试秘钥是否有效
[root@git_server .ssh]# ssh git@github.com
PTY allocation request failed on channel 0
Hi jiangying99! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.
3.2、创建远程仓库
3.2.1、返回首页,点击“创建存储库”
3.2.2、关联本地仓库和远程仓库
-
在本地仓库中执行命令:
git remote add origin 远程仓库地址
[root@git_server project]# git remote add origin git@github.com:jiangying99/gittest.git
3.2.3、将本地仓库的内容推送到远程仓库
[root@git_server project]# git push -u origin master
To git@github.com:jiangying99/gittest.git
! [rejected] master -> master (fetch first)
error: 无法推送一些引用到 'git@github.com:jiangying99/gittest.git'
提示:更新被拒绝,因为远程版本库包含您本地尚不存在的提交。这通常是因为另外
提示:一个版本库已推送了相同的引用。再次推送前,您可能需要先合并远程变更
提示:(如 'git pull')。
提示:详见 'git push --help' 中的 'Note about fast-forwards' 小节。
3.2.4、获取远程更新
[root@git_server project]# git fetch origin
warning: no common commits
remote: Enumerating objects: 6, done.
remote: Counting objects: 100% (6/6), done.
remote: Compressing objects: 100% (2/2), done.
Unpacking objects: 100% (6/6), done.
remote: Total 6 (delta 0), reused 3 (delta 0), pack-reused 0
来自 github.com:jiangying99/gittest
* [新分支] main -> origin/main
* [新分支] master -> origin/master
3.2.5、将更新的内容合并到本地
[root@git_server project]# git merge origin/master
[root@git_server project]# touch c
[root@git_server project]# git add .
[root@git_server project]# git commit -m "touch c"
[master c622adf] touch c
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 c
[root@git_server project]# git push -u origin master
Counting objects: 4, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 257 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@github.com:jiangying99/gittest.git
2d498a3..c622adf master -> master
分支 master 设置为跟踪来自 origin 的远程分支 master。
3.2.5、在远程仓库查看数据
- 删除本地仓库与远程仓库的关联,在本地仓库中执行命令:git remote rm origin
- 推送本地仓库内容到远程仓库命令:git push origin 分支
- 注意:关联后第一次推到远程库前需要先拉取内容,否则报错
- 拉取远程仓库内容到本地仓库命令:git pull origin 分支
- 存在本地库与远程库不一致情况:git pull origin 分支 --allow-unrelated-histories
- 克隆远程仓库到本地电脑形成本地仓库格式:git clone 远程库地址
示例:git clone git@github.com:gongjunhe/gittest.git
3.3、.gitignore文件
作用:忽略特殊文件。当工程中有些文件已经确定基本不会改变,所以不用每次推送时都推送,git在推送时会忽略.gitignore文件中列举的内容,可以提升推送效率
注意:文件名必须叫做.gitignore,.gitignore和.git文件夹是同一目录;一定要push之前创建.gitignore文件,push之后创建.gitignore不用被git使用,因为git已经开始了版本控制。
文件内容说明:#开头的行为注释,不生效
支持正则表达(简化的):可以以(/)开头防止递归,最后有斜杠(/)的代表要忽略的是目录,加感叹号(!)表示取反
3.3.1、支持的正则表达规范
*:零个或多个字符
[]:匹配括号中的任意字符
?:匹配一字符
[n-m]:匹配一个范围内的字符,[abc] 匹配 任何一个列在方括号中的字符 (这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c)
[^n-m] 不要匹配一个范围内的字符
**:表示匹配任意中间目录,比如 a/**/z 可以 匹配 a/z 、 a/b/z 或 a/b/c/z 等。
例如:
a/:忽略任何目录下名为a的目录
/a.txt:只忽略当前目录下的a.txt,不忽略其它目录下的a.txt
*.exe:忽略所有以.exe结尾的文件
!/a/a.jpg:不忽略a目录下的a.jpg文件
a/*.txt:忽略a目录下的以.txt结尾的文件,但不忽略其子目录下包含的以.txt结尾的文件
文章来源:https://www.toymoban.com/news/detail-429763.html
*.[ao]: 忽略.a或.o结尾的文件
文章来源地址https://www.toymoban.com/news/detail-429763.html
到了这里,关于代码管理平台—GitHub的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!