目的
借助GitHub托管项目代码
基本概念
仓库(Repository)
仓库用来存放项目代码,想在GitHub上开源一个项目,就要新建一个仓库,如果开源项目多了,就会拥有多个仓库
收藏(Star)
仓库主页star按钮,意思是收藏项目的人数
复制克隆项目(Fork)
就是复制一份别人的项目,仓库独立存在,自己可以在复制过来的仓库中随便增加删除文件,原仓库所有者不会进行更新
发起请求(Pull Request)
Fork了别人的仓库,自己进行了增删操作,需要同步到原仓库,就需要发起请求,如果原仓库所有人认同改进,就会将两部分进行合并
关注(Watch)
如果关注了某个项目,在这个项目进行变化的时候,可以及时的进行查看
事务卡片(Issue)
发现代码BUG,但是没有成型代码,需要讨论时用
Github主页
左侧显示用户动态以及关注用户或仓库的动态;右侧显示所有的git库
仓库主页
主要显示项目的信息,如:项目代码,版本,收藏/关注/fork情况
个人主页
个人信息,我关注的人,我关注的项目,我的仓库等
创建仓库/创建新项目
说明
-
一个git库对应一个开源项目,通过git可以管理git库
-
Repository name:直接输入想要的名字
-
Description:描述,可选择项,可以对仓库进行描述
-
Public/Private:公有或者私有,就是别人能不能看到自己的仓库
-
Initialize this repository with:
-
可以选择创建一个README文件,进行项目描述
-
Add .gitinore
-
Choose a license
-
仓库主页
code
go to file:定位到目标文件
Add file
- create new file:创建新文件
- upload files:上传文件
Code downloads:
- https方式
直接使用url进行clone,谁拿到url都可以clone,但是在进行push的时候需要验证身份
- ssh
clone的项目的拥有者或管理员必须是自己,在clone前必须添加ssh key(就是配置公钥和私钥),在push的时候不需要输入用户名,配置ssh时如果设置了密码在push时候才需要密码
-
Github CLI
这种方式是使用GitHub客户端进行下载,相当于使用命令行管理GitHub
-
download zip
这种方式就是直接下载一个zip文件
Issue
发现代码bug,但是目前没有成型代码,进行相关讨论,方便管理
Pull Request
用户修改代码后向对方仓库发送采纳请求的功能,就是你进行了优化,希望对方进行采纳,就可以发起一个request
Wiki
简单实用的进行文档编辑,其实就相当于编写markdown文档,所有有权限的人都可以对文章进行修改
Pulse
体现仓库软件开发活跃度的功能,其实就是看你的仓库活跃不活跃,最近有创建了多少Pull Request 和Issue,有多少人参与了仓库的开发等。
Graphs
可以通过多种图表查看该仓库的相关统计信息,利用图表直观的汇总信息,可以让用户把握当前仓库的各种趋势。
Settings
这里可以对仓库进行任何设置,用户必须拥有更改设置的权限,才能看到这个页面。
Git安装
目的
通过git管理GitHub托管代码
下载安装
使用apt-get 安装Git
sudo apt-get install git
检查ssh可否连接到GitHub
ssh -T git@github.com
如果看到下面的提示,则证明可以连接
Warning: Permanently added ‘github.com,204.232.175.90’ (RSA) to the list of known hosts.
Permission denied (publickey).
安装SSH keys(这些步骤全部在~/.ssh目录下执行)
第一步,检查使用已有ssh keys,如果有就进行第二步,没有就进行第三步
cd ~/.ssh
ls
查看是否有id_rsa(私钥)和id_rsa.pub(公钥)文件,如果有就进行第二步,将ssh keys备份并移除,没有就进行第三步
第二步,备份并移除已存在的ssh keys(将已经存在的ssh keys备份到key_backup文件夹)
mkdir key_backup
cp id_rsa* key_backup
rm id_rsa*
第三步,创建ssh keys
ssh-keygen -t rsa -C "你自己的github对应的邮箱地址"
这一步在运行时会要求输入文件名:输入id_rsa
会要求输入两次密码:这个密码是你push文件的时候要用的密码,不是github管理者的密码,可以设置也可以不设置直接回车,不设置的话push时就直接上传了
第四步,将新创建的ssh keys添加到GitHub中
使用gedit命令查看id_rsa.pub的内容
gedit id_rsa,pub
在GitHub中,依次点击Settings -> SSH Keys -> Add SSH Key,将id_rsa.pub文件中的字符串复制进去,注意字符串中没有换行和空格。
第五步,再次检查SSH连接情况
ssh -T git@github.com
看到下面提示,说明添加成功
Hi 你的用户名! You’ve successfully authenticated, but GitHub does not provide shell access.
如果在服务器添加公钥后报错,则执行以下语句
eval "$(ssh-agent -s)"
ssh-add
开始使用github
配置Git(在~/.ssh目录下执行)
git config --global user.name "你的github用户名"
git config --global user.email "你的github邮箱地址"
如何将本地内容推送到github上的仓库
1. GitHub上建立一个新仓库,假设新建的仓库是dockerfiles
2. 本地建立一个目录,名字与仓库名相同,假设本地目录为~/Documents/dockerfiles
3. 本地仓库初始化
cd ~/Documents/dockerfiles
git init
4. 对本地仓库进行修改(在~/Documents/dockerfiles 目录下执行)
比如说添加一个Readme文件
touch Readme
5. 对刚刚的更改进行提交
git add Readme
git commit -m 'add readme file'
6. push
在执行push时需要将本地仓库与github仓库关联
git remote add origin https://github.com/你的github用户名/你的github仓库.git
然后进行push,需要输入GitHub用户名和密码,在第一次push之前最好先生成令牌,并且将token添加到远程仓库中,详见下一部分,做完之后再回来继续。
先将分支切换到main,因为直接上传的话会上传到master分支,而GitHub目前默认分支是main,最好能直接上传到main,执行以下语句
git checkout -b main
进行push
git push origin main
如果发生报错则执行
git pull origin main
生成令牌
在进行push时需要输入GitHub的用户名和密码,在2021年8月13日开始,不能再使用正常密码进行访问了,要使用token(令牌)进行push操作
寻找设置页面
在GitHub上以此选择【Settings】 -> 【Developer settings】->【Personal access tokens】->【Generate new token】,然后进行身份验证,就可以创建token了
进行相关内容设置
- Note:验证token的标题,随便起一个就行
- Expiration:有效期,默认是30天,可以自己进行选择
- Select scopes:设置权限。如果使用token访问仓库,选择repo;使用token删除仓库,选择delete_repo。其他的根据需要进行勾选
生成
勾选完毕后点击【Generate token】按钮,就可生成。生成的令牌可以保存下来,以便后续可以直接使用
如何使用
第一种方式:
在push操作需要输入密码时,输入token
如果 push 等操作没有出现输入密码选项,请先输入如下命令,之后就可以看到输入密码选项了。
git config --system --unset credential.helper
第二种方式(推荐):
可以将token直接添加到远程仓库链接中,这能避免同一个仓库每次提交代码都要输入token的问题
git remote set-url origin https://<your_token>@github.com/<USERNAME>/<REPO>.git
<your_token>
:换成你自己得到的token<USERNAME>
:是你自己github的用户名<REPO>
:是你的仓库名称
如何将本地内容推送到GitHub上已有的仓库
1. 从github上将该仓库clone下来
git clone https://github.com/你的github用户名/github仓库名.git
2. 对clone下来的仓库进行更改
比如添加一个新的文件
touch Readme_new
3. 对刚刚的更改进行提交
git add Readme_new
git commit -m 'add new readme file'
4. push
在执行push时需要将本地仓库与github仓库关联
git remote add origin https://github.com/你的github用户名/你的github仓库.git
有时会出现
fatal: remote origin already exists
此时需要执行以下代码
git remote rm origin
然后进行push,需要输入GitHub用户名和密码,这一步也可以设置token,与上面一样
也可以将分支切换到main
git checkout -b main
此时就可以进行上传了
git push origin main
如果发生报错则执行
git pull origin main
生成令牌
同上
参考资料
[1] Github:10—Github功能之(仓库页功能介绍:Issue、Pull Request、Wiki、Pulse、Graph、Settings)
[4] ubuntu下安装及配置git的方法(最全超详细教程github)