Git、GitHub、Gitee
Git、GitHub、Gitee
一:Git 介绍与 Mac 下如何生成 ssh key
git 是分布式的代码管理工具,远程的代码管理是基于 ssh 的,所以要使用远程的 git 则需要 ssh 的配置。简单的说,Git - 版本控制工具;Github 是一个网站,提供给用户空间创建 git 仓储,保存用户的一些数据文档或者代码等;GitLab 是基于 Git 的项目管理软件
首先,使用代码管理工具把本地的代码上传到服务器时需要加密处理,加密传输的算法有很多种,git 可使用 rsa,rsa 要解决的一个核心问题是,如何使用一对特定的数字,使其中一个数字可以用来加密,而另外一个数字可以用来解密。这两个数字就是你在使用 git 和 github,gitlab 的时候所遇到的 public key 也就是公钥以及 private key 私钥。
其中,公钥就是那个用来加密的数字,这也就是为什么你在本机生成了公钥之后,要上传到 github 的原因。从 github 发回来的,用那公钥加密过的数据,可以用你本地的私钥来还原。如果你的 key 丢失了,不管是公钥还是私钥,丢失一个都不能用了,解决方法也很简单,删除原有的 key,重新再生成一次,然后在 github.com 里再设置一次就行
在个人电脑生成 ssh 密钥后,会同时生成一个公开密钥和一个私有密钥,默认情况下在用户主目录下的.ssh 目录中,密钥为 id_rsa,公开密钥为 id_rsa.pub。
密钥和公开密钥是共同使用的,协同开发中,一般会将公钥配置在服务器中,这样方便经常登录,也不需要输入密码,这是现在集群和各种云平台常用的登录方式,密钥在本地不被泄漏就非常安全。
- 步骤 1.检查是否已经存在 SSH Key
打开电脑终端,输入以下命令:
ls -al ~/.ssh
会出现两种情况 ,如步骤 2 所示
- 步骤 2. 生成/设置 SSH Key
继续上一步可能出现的情况
(1)情况一:终端出现文件 id_rsa.pub 或 id_dsa.pub,则表示该电脑已经存在 SSH Key,此时可继续输入命令:
pbcopy < ~/.ssh/id_rsa.pub
这样你需要的 SSH Key 就已经复制到粘贴板上了,然后进行步骤 3
(2)情况二:终端未出现 id_rsa.pub 或 id_dsa.pub 文件,表示该电脑还没有配置 SSH Key,此时需要输入命令:
ssh-keygen -t rsa -C "your_email@example.com"
默认会在相应路径下(/your_home_path)生成 id_rsa 和 id_rsa.pub 两个文件,此时终端会显示:
连续回车即可,也可能会让你输入密码,密码就是你的开机密码
此时再输入命令:ls -al ~/.ssh 就会出现 id_rsa.pub 和 id_dsa.pub 两个文件,然后重复情况一的步骤即输入以下命令再进行步骤 3 即可:
pbcopy < ~/.ssh/id_rsa.pub
- 步骤 3.将 SSH Key 添加到 Github 和 Gitee 中
*图:Github*
*图:Gitee*[
](https://blog.csdn.net/wsdxsyb/article/details/81904472)
二:常用命令
拉取代码 git clone xxx.git
创建分支 git branch dev 或者 git checkout -b dev 或者 git switch -c dev
切换本地分支 git checkout dev 或者 git switch dev
切换分支并关联远程分支 git checkout -b dev origin/dev 或者 git checkout --track origin/dev
查看本地所有分支 git branch、查看远程所有分支 git branch -r
删除本地分支 git branch -d dev、删除远程分支 git push origin -d dev
将代码从工作区添加暂存区 git add .
查看尚未暂存的更新 git diff
添加提交信息 git commit -m 'xxxx'(commit 注释写错,执行 git commit --amend
此时会进入默认 vim 编辑器,修改注释完毕后保存)
推送代码到远程分支 git push origin dev、强制推送 git push -f origin dev(常在 git rebase 后使用)
拉取远程分支代码 git pull origin dev
合并分支 git merge dev
查看 git 状态 git status
查看提交历史 git log
查看命令历史 git reflog
把本地未 push 的分叉提交历史整理成直线 git rebase origin/dev、回到 rebase 执行之前的状态 git rebase --abort
回退版本 git reset --hard commit_id、回退上一个版本 git reset --soft HEAD^ 等于 git reset --soft HEAD~1
修改分支名 git branch -m oldBranchName newBranchName、git push origin :oldBranchName、git push --set-upstream origin newBranchName
查看 git 配置 git config --global --list、git config --global user.name
git config --global --add user.name newName(增)
git config --global --unset user.name(删)
git config --global user.name newName(改)
配置 Git 用户名和邮箱
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
三:提交规范
feat 增加新功能
fix 修复问题/BUG
style 代码风格相关无影响运行结果的
perf 优化/性能提升
refactor 重构
revert 撤销修改
test 测试相关
docs 文档/注释
chore 依赖更新/脚手架配置修改等
workflow 工作流改进
ci 持续集成
types 类型定义文件更改
wip 开发中
四:CodeReview 常用缩写
PR: Pull Request. 拉取请求,给其他项目提交代码
LGTM: Looks Good To Me. 朕知道了 代码已经过 review,可以合并
SGTM: Sounds Good To Me. 和上面那句意思差不多,也是已经通过了 review 的意思
WIP: Work In Progress. 传说中提 PR 的最佳实践是,如果你有个改动很大的 PR,可以在写了一部分的情况下先提交,但是在标题里写上 WIP,以告诉项目维护者这个功能还未完成,方便维护者提前 review 部分提交的代码。
PTAL: Please Take A Look. 你来瞅瞅?用来提示别人来看一下
TBR: To Be Reviewed. 提示维护者进行 review
TL;DR: Too Long; Didn't Read. 太长懒得看。也有很多文档在做简略描述之前会写这么一句
TBD: To Be Done(or Defined/Discussed/Decided/Determined). 根据语境不同意义有所区别,但一般都是还没搞定的意思
注意:dev 代表分支名(可随便命名)