学习路径
- GitHub Explore
- GitHub Topic
- GitHub Trending
- 搜索 awesome xxx, xxx tutorial
- 按关键词搜索,如电商、短视频,chatgpt
重要概念
- Repository(仓库)
- Commit(提交)
- Branch(分支)
- Merge(合并)
- Pull(拉取) & Push(推送)
- Tag(标签)
- Ignore(忽略文件)
- Revert(回滚)
配置(git bash)
ssh-keygen -t rsa -b 4096 -C 你的邮箱
cat ~/.ssh/id_rsa.pub # 得到公钥内容
ssh -T git@github.com # 测试是否配对
上传代码
// 这里是照搬GitHub的,
git remote add origin git@xxxxxxx # 在本地添加远程仓库的地址,origin是远程仓库的默认名字
git branch -M main
git push -u origin main # -u 是第一次上传这个分支,以后直接push
// 上传其他分支
// 方法一
git push origin x:x # x:x 是从本地的 x 上传到远程的 x
// 方法二
git checkout x
git push -u origin x
- 步骤:新建GitHub Repo(远程仓库),复制ssh地址,复制里面的代码\
- 注意:不要使用HTTPS的地址,因为每次都要输密码,如果提示要 git pull,就git pull一下。此操作是把远程分支合并到本地对应的分支。 -u origin master 是设置上游分支,设置一次之后就不用再设置了。
语义化提交
- 语义化提交是一种标准化的提交信息格式,使得代码版本历史更易于阅读和理解。他要求开发者在提交代码时,根据特定的格式和规则来描述此次提交的内容。
基本格式
<类型>(<作用域>): <简短描述>
<可选的长描述>
<可选的脚注>
组成部分解析
类型(Type)
描述此次提交的主要类型。常见类型包括:
feat:新功能 featurefix:修复bugdocs:文档修改style:格式化代码,不影响代码逻辑refactor:代码重构perf:性能优化 performancetest:添加或修改测试chore:其他修改,如构建,工具链等
作用域(Scope)
- 说明此次提交影响的范围,如:
auth、UI、database。此部分可选。
简短描述
- 简要的描述此次提交的改动,如:“新增OAuth2支持”。
长描述(可选)
- 提供更详细的描述,解释此次改动的原因、方法及其背景。
脚注(可选)
- 描述此次提交所关联的issue、其他相关信息或特别说明。
下载代码
git clone git@xxxxxx [目标路径]
如果是不同机器,要写上传新的 ssh key (一机一key)
cd 目标路径
git add / git commit / [git pull] / git push
// 如何下载摸个分支
先下载整个仓库,然后 git checkout 分支名
// git clone 的几种变形
// 在当前目录下创建xxx目录,xxx/.git是本地仓库,要记得cd!
git clone git@?/xxx.git
//会在本地新建 yyy 目录,记得 cd yyy
git clone git@?/xxx.git yyy
// 不会新建目录,使用当前目录容纳代码和 .git,当前目录最好是空目录
git clone git@?/xxx.git .
上传到两个远程仓库
// 常用命令
git clone
git pull
git push
高级操作
touch ~/.bashrc
vi ~/.bashrc
echo 'alias ga="git add"'>> ~/.bashrc
echo 'alias gc="git commit -v"'>> ~/.bashrc
echo 'alias gl="git pull"'>> ~/.bashrc
echo 'alias gp="git push"'>> ~/.bashrc
echo 'alias gco="git checkout"'>> ~/.bashrc
echo 'alias gst="git status -sb"'>> ~/.bashrc
//最后 code ~/.bashrc 在文件最后加上
alias glog="git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit -- | less"
部署前的build
// 部署前请安装旧版本的 parcel,命令如下:
yarn global add parcel@1.9.7
// 或者下面这个
yarn global add parcel@next
// 然后build,命令是
parcel build src/index.html --no-minify --public-url ./
yarn 一键部署
yarn init -y
// 进入 package.json
```
"scripts": {
"build": "rm -rf dist && parcel build src/index.html --no-minify --public-url ./"
},
// 最后在终端
yarn build
解决 Github port 443 : Timed out
Failed to connect to github.com port 443 : Timed out
- 报错原因:Git 所设端口与系统代理不一致,需重新设置
解决方法
- 查看代理端口
- 修改 Git 的网络设置
# 注意修改成自己的IP和端口号
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890
取消代理
# 取消代理
git config --global --unset http.proxy
git config --global --unset https.proxy
# 查看代理
git config --global --get http.proxy
git config --global --get https.proxy
解决 “ssh:connect to host github.com port 22: Connection timed out”
- 进入~/.ssh下
cd ~/.ssh
- 创建一个config文件(这里我用的vim编辑器)
vim config
- 编辑文件内容:
Host github.com
User git
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443
Host gitlab.com
Hostname altssh.gitlab.com
User git
Port 443
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
- 保存退出
- 检查是否成功
ssh -T git@github.com