Git 与 Github 操作¶
HTTPS和SSH协议的简单解释¶
- 定义来说:HTTPS和SSH是建立“上传代码的机器”和“Github账户”之间联系的两个协议。
- 过程来说:都是 机器 → github账户 → github仓库
- 方法来说:配置HTTPS时会让你手动输入一次密码;使用SSH时会让你一次性生成密钥,放入你的github profile。
- 效果来说:HTTPS常常需要挂代理,SSH没有这个问题。
一台机器可以有多个SSH密钥以连接到不同域名。一个Github账号可以存储多个SSH公钥以连接到不同的机器。但是,一台机器连接到一个域名,只能通过切换ssh配置文件来改变使用的密钥。
关于SSH举例:
服务器默认连接到github的密钥是lzh的id_rsa.pub文件,那么:
每个人将服务器的文件备份到SR这个项目(在lzh的github下)中,均使用的是lzh的id_rsa.pub文件。
每个人将服务器的文件备份到VAE256这个private项目(在ly的github下)中,只有使用ylin_rsa.pub文件,才能有权限。
ly将自己电脑上的文件备份到VAE256这个项目(在ly的github下),使用的是自己电脑上的另一个公钥,比如也叫ylin_rsa.pub文件(公钥的内容一定是不一样的)。
默认传输(HTTPS)¶
1 本地上传缓存
2 与远程仓库关联
查看已经有的connect name:
3 建立本地的分支
git branch <branch_name> #创建一个本地分支
git checkout -b <branch_name> <connect_name>/<remote_branch_name> #创建一个与远程关联的本地分支
git checkout <branch_name> #切换到 branch_name
git branch #查看所有本地分支
git branch -r #查看当前远程分支
4 上传
git push <connect_name> <your_branch_name>:<remote_branch_name>
# 将`your_branch_name`分支上传到远程仓库`connect_name`的`<remote_branch_name>`分支
git push -u <remote_name> <your_branch_name>:<remote_branch_name>
# 同上,但建立关联
注:分支操作比较复杂,一般不会用到
SSH 传输¶
1 在本地生成一个SSH
这里的邮箱没有任何用,只是用来分辨ssh公钥是谁的。
2 查看公钥
3 复制到Github仓库中的相应位置
输出以下则连接成功:
5 将 connect_name
改为SSH连接
6 正常上传
修改上次的注释¶
附带vim操作介绍:
回溯至之前某一次上传的状态¶
查看之前push记录
可以得到一系列的ID
回溯到某一个ID
.gitignore文件出现问题¶
刷新git的缓存区