目录
[GitHub远程仓库推送 - HTTPS方式](#GitHub远程仓库推送 - HTTPS方式)
[拉取远程仓库 - HTTPS方式](#拉取远程仓库 - HTTPS方式)
[GitHub远程仓库推送 - SSH方式](#GitHub远程仓库推送 - SSH方式)
[拉取远程仓库 - SSH方式](#拉取远程仓库 - SSH方式)
由于GitHub是国外的,使用GitHub加载慢,可能需要加速器。
GitHub远程仓库推送 - HTTPS方式
登录GitHub后,创建仓库



创建本地仓库
-
在本地创建一个项目,并初始化
-
在该仓库创建一个文件
- 此处作为操作案例,通过 vi 命令创建文件。
-
设置本地仓库的用户名和邮箱
// 查看本地仓库文件
cat .git/config
// 设置本地仓库用户名和邮箱
git config --local user.name 'zhangsan'
git config --local user.email 'zhangsan@qq.com'

拉取远程仓库 - HTTPS方式
让本地仓库与远程仓库建立关系
目的:将本地仓库与远程仓库内容一致。
远程拉取url
- 点击克隆/下载,复制HTTPS下的连接

-
在控制台中建立本地仓库与远程仓库的连接
git remote add origin (远程仓库https下的连接)
- 添加后,远程库的名字就是origin,这是git默认的名字,也可改成别的。
- url是远程仓库的地址;
- fetch是一个映射。

创建Token
-
点击头像 -> Settings -> Developer settings
-
左侧 → Personal access tokens → Tokens (classic)
-
点击 Generate new token → Generate new token (classic)

-
设置
-
进入后,在Note中填写备注(如:My Computer)
-
分别勾选workflow、gist、user
-
设置30天更换Token

- 勾选完成后,点击最下面的Generate token,就会获得一个新的Token
- 注意:这里一定要把生成的token复制下来,因为一刷新就看不到了
推送远程仓库
push推送url
-
添加凭证
git pust -u origin master
- 注意:选择Token,粘贴复制的Token


-
设置代理端口
// 全局代理,影响全部git仓库
git config --global http.proxy socks5://127.0.0.1:端口号
git config --global https.proxy socks5://127.0.0.1:端口号
// 局部代理,只影响当前git仓库
git config --local http.proxy socks5://127.0.0.1:端口号
git config --local https.proxy socks5://127.0.0.1:端口号

- 拉取远程最新代码,使用下面强制拉去
-
强制执行:强制将远程仓库与本地仓库一致
git pull --rebase origin main
// git pull --rebase <远程主机名> <远程分支名>
ll -a

-
推送文件
// 推送一个分支
git push origin master:main
//git push <远程主机名> <本地分支名>:<远程分支名>
//而当我们的本地分支与远端分支一致时,则可以将命令简化为:
//git push <远程主机名> <分支名>
// 推送所有改变
git push


GitHub远程仓库推送 - SSH方式
- 根据上述步骤创建远程仓库和本地仓库testgit5。
- 在本地仓库创建test5.txt文件,并提交。
- 设置本地仓库的用户名和邮箱。
- 创建远程仓库test5。
使用SSH密钥
-
查看是否已有SSH密钥,并复制公钥内容
// 查看ssh密钥是否存在
ls -al ~/.ssh
// 查看ssh密钥内容
cat ~/.ssh/id_ed25519.pub

配置Github公钥
-
登录 GitHub → 点击右上角头像 → Settings
-
左侧菜单选择 SSH and GPG keys
-
点击 New SSH key 或 Add SSH key


-
验证连接是否成功
ssh -T git@gihub.com
拉取远程仓库 - SSH方式
让本地仓库与远程仓库建立关系
- 点击克隆/下载

-
拉取SSH连接
git remote add origin (远程仓库SSH下的连接)

推送远程仓库
-
强制将远程仓库与本地仓库一致
git pull --rebase origin main
ll -a

-
推送文件
git push origin master:main
//git push <远程主机名> <本地分支名>:<远程分支名>

