前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >将代码传到github公库

将代码传到github公库

作者头像
星哥玩云
发布2022-09-15 19:33:26
3990
发布2022-09-15 19:33:26
举报
文章被收录于专栏:开源部署开源部署

github使用

Github顾名思义是一个Git版本库的托管服务,是目前全球最大的软件仓库,拥有上百万的开发者用户,也是软件开发和寻找资源的最佳途径 ,Github不仅可以托管各种Git版本仓库,还拥有了更美观的Web界面,您的代码文件可以被任何人克隆 ,使得开发者为开源项贡献代码变得更加容易,当然也可以付费购买私有库,这样高性价比的私有库真的是帮助到了很多团队和企业

1、注册用户

2、配置ssh‐key

3、创建项目

4、克隆项目到本地

5、推送新代码到github

注册地址:https://github.com/

远程仓库

假设1:假设你准备开发一个新功能,但是需要两周才能完成。第一周写了50%,但是在第二周你的电脑粉碎了,并且还没有将上周工作代码存储到其他物理介质上,这样存在丢失的巨大风险

假设2:假设你是一个非常努力的程序员,除了在公司写代码外你还经常把代码用U盘拷贝回家继续工作,如果在通勤过程中U盘不小心丢了,回家之后你就不能工作了

配置Github

创建SSH Key

代码语言:javascript
复制
[root@zutuanxue ~]# 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:UiiQi1grvAo9YFXFkuSHObA8XI2Jkpk07bUf1hSLXSw songs-wmx@163.com
The key's randomart image is:
+---[RSA 2048]----+
|.o*o++B. .o.     |
| =*==*o+oEo.     |
|oo+Bo=+o+o.      |
|=oo..oo+ .       |
|.+.   + S        |
|..o    o         |
|o  .             |
|.                |
|                 |
+----[SHA256]-----+
[root@zutuanxue ~]# cd .ssh/
[root@zutuanxue .ssh]# ls
id_rsa  id_rsa.pub  known_hosts

.ssh/id_rsa:私钥

.ssh/id_res.pub:公钥

代码语言:javascript
复制
[root@zutuanxue .ssh]# cat id_rsa.pub 

添加公有秘钥到github

image20200407105944844.png
image20200407105944844.png
image20200407110032231.png
image20200407110032231.png
image20200407110138300.png
image20200407110138300.png
代码语言:javascript
复制
    [root@zutuanxue .ssh]# ssh git@github.com #测试秘钥是否有效
    Warning: Permanently added the RSA host key for IP address '52.74.223.119' to the list of known hosts.
    PTY allocation request failed on channel 0
    Hi gongjunhe! You've successfully authenticated, but GitHub does not provide shell access.
    Connection to github.com closed.

创建远程仓库

返回github首页

image20200407110632002.png
image20200407110632002.png
image20200407110822461.png
image20200407110822461.png

关联本地仓库和远程仓库

在本地仓库中执行命令:git remote add origin 远程仓库地址

代码语言:javascript
复制
[root@zutuanxue git_data]# git remote add origin git@github.com:gongjunhe/gittest.git
image20200407111123617.png
image20200407111123617.png
代码语言:javascript
复制
[root@zutuanxue git_data]# git push -u origin master	#将本地仓库的内容推送到远程仓库
To github.com:gongjunhe/gittest.git
 ! [rejected]        master -> master (non-fast-forward)
error: 无法推送一些引用到 'git@github.com:gongjunhe/gittest.git'
提示:更新被拒绝,因为您当前分支的最新提交落后于其对应的远程分支。
提示:再次推送前,先与远程变更合并(如 'git pull ...')。详见
提示:'git push --help' 中的 'Note about fast-forwards' 小节。
[root@zutuanxue git_data]# git fetch origin	#获取远程更新
[root@zutuanxue git_data]# git merge origin/master	#将更新的内容合并到本地
fatal: 拒绝合并无关的历史
[root@zutuanxue git_data]# git merge origin/master --allow-unrelated-histories 
Merge made by the 'recursive' strategy.
 README.md | 2 ++
 1 file changed, 2 insertions(+)
 create mode 100644 README.md
 
[root@zutuanxue git_data]# touch c
[root@zutuanxue git_data]# git add .
[root@zutuanxue git_data]# git commit -m "touch c"
[master 2ec770e] touch c
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 c
[root@zutuanxue git_data]# git push -u origin master
枚举对象: 3, 完成.
对象计数中: 100% (3/3), 完成.
Delta compression using up to 4 threads.
压缩对象中: 100% (2/2), 完成.
写入对象中: 100% (2/2), 274 bytes | 274.00 KiB/s, 完成.
Total 2 (delta 0), reused 0 (delta 0)
To github.com:gongjunhe/gittest.git
   e5d1eba..2ec770e  master -> master
分支 'master' 设置为跟踪来自 'origin' 的远程分支 'master'。
image20200407113836692.png
image20200407113836692.png
代码语言:javascript
复制
[root@zutuanxue git_data]# git log --oneline 
2ec770e (HEAD -> master, origin/master) touch c
e5d1eba Merge remote-tracking branch 'origin/master'
3964bca touch d
c2a2158 Initial commit
f3d6391 (tag: V1.0) add haha
2add75e add hello
[root@zutuanxue git_data]# git reset --hard f3d6
HEAD 现在位于 f3d6391 add haha
[root@zutuanxue git_data]# ls
a
[root@zutuanxue git_data]# git log --oneline 
f3d6391 (HEAD -> master, tag: V1.0) add haha
2add75e add hello
ff77333 aaa
dd7925f test head
e2e2131 head test
644d678 test head
326e57a v2 a
8f01c62 version2 a
a714e37 a
47a267c a.txt
6ac34be a
[root@zutuanxue git_data]# git pull origin
更新 f3d6391..2ec770e
Fast-forward
 README.md | 2 ++
 c         | 0
 d         | 0
 3 files changed, 2 insertions(+)
 create mode 100644 README.md
 create mode 100644 c
 create mode 100644 d
[root@zutuanxue git_data]# ls
a  c  d  README.md
代码语言:javascript
复制
删除本地仓库与远程仓库的关联
在本地仓库中执行命令:git remote rm origin

推送本地仓库内容到远程仓库
命令:git push origin 分支
注意:关联后第一次推到远程库前需要先拉取内容,否则报错

拉取远程仓库内容到本地仓库
命令:git pull origin 分支
存在本地库与远程库不一致情况:git pull origin 分支 --allow-unrelated-histories

克隆远程仓库到本地电脑形成本地仓库
格式:git clone 远程库地址
示例:[root@zutuanxue git_data]# git clone git@github.com:gongjunhe/gittest.git

.gitignore文件

作用:忽略特殊文件。当工程中有些文件已经确定基本不会改变,所以不用每次推送时都推送,git在推送时会忽略.gitignore文件中列举的内容,可以提升推送效率 注意:文件名必须叫做.gitignore,.gitignore和.git文件夹是同一目录; 一定要push之前创建.gitignore文件,push之后创建.gitignore不用被git使用,因为git已经开始了版本控制。

代码语言:javascript
复制
文件内容说明

# 开头的行为注释,不生效

支持正则表达(简化的)

可以以(/)开头防止递归

最后有斜杠(/)的代表要忽略的是目录

加感叹号(!)表示取反

支持的正则表达规范

代码语言:javascript
复制
*	零个或多个字符
[]	匹配括号中的任意字符
?	匹配一字符
 [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结尾的文件

 *.[ao]:	忽略.a或.o结尾的文件
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • github使用
  • 远程仓库
    • 创建远程仓库
    • .gitignore文件
    相关产品与服务
    对象存储
    对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档