【想要使用 Git且还没哟该软件的话 可以尝试点击 这里】
一、Git 的安装以及检测
1.安装:安装默认选择 并下一步 即可安装成功
2.检测:window电脑 使用快捷键 win+r 调出运行窗口(cmd)
git --version //输入并回车,如果显示Git版本,说明Git已经安装成功
【如果你知道Linux的基础命令,建议直接使用 Git Bash Here (指定位置右键即可出现该选项),因为以这种方式打开,可以使用相关的linux相关命令】
二、GitHub 状态
- 已修改(modified)
- 已暂存(staged)
- 已提交(committed)
- 未追踪(Untracked)
Git的三个工作区
三、Git基础配置(localhost)
1.通过 --global 选项可以设置全局匹配信息
git config --global user.name "github 姓名"
git config --global user.email "github 绑定邮箱"
2.检查相关配置
git config --list //列出所有的config配置项
git config user.name //列出github 姓名
git config user.email //列出github 绑定邮箱
3.git仓库的初始化
git init //可以将指定文件夹 变成git可以管理的仓库
git init 文件名 //可以新建一个文件 将其变成git可以管理的仓库
4.添加到暂存区
git add <file_name> //添加指定文件到暂存区
git add <file_name1> <file_name2>... //添加多个文件到暂存区
git add <directory> //添加指定目录到暂存区
git add <directory1> <directory2> //添加多个目录到暂存区
git add . //添加所有文件到暂存区
5.提交到本地仓库
git commit -m "提交说明" //提交到本地仓库 【提交说明尽可能写详细,尽量用英文,因为中文会被转义】
6.版本回退
git log //查看提交的日志 也可以看到分支合并情况
git log --graph //查看到分支合并图
git reset --hard "HEAD^" //回退到上一个版本 回退一次
git reset --hard "HEAD^^" //回退到上上一个版本 回退两次
git reset --hard HEAD~ //默认回退到上一个版本 回退一次
git reset --hard HEAD~2 // ~ 后面的数字表示回退几次提交
【只是做了add操作,还没有进行commit操作,只需要回退到当前版本即可】
git reset --hard HEAD //回退到当前版本
7.指定恢复到某个版本
git reflog //记录每次的操作命令
比如我想要 回退(前进)到版本 id 为 5449fac 的这个版本上
git reset --hard 5449fac
四、GitHub远程仓库(origin)
1.传输方式
- http/https 传输
- 在push到远程仓库的时候,一般需要账号密码的输入
- ssh 传输
- 事先已经在本地电脑上配置好了ssh密钥,push时不需要输入账号密码,且速度快
想要了解更多的有关内容可以点击 这里
2.SSH传输相关配置
检查本地电脑是否存在 ssh key
ls -al ~/.ssh //检查ssh keys 是否存在
如果没有本地没有密钥 需要自动生成密钥
ssh-keygen -t rsa -C "XXX" //添加一个ssh
ssh-add ~/.ssh/id_res //生成新的key
// -t = The type of the key to generate 密钥的类型
// -C = comment to identify the key 用于识别这个密钥的注释
// So the Comment is for you only and you can put anything inside.
// 所以这个注释你可以输入任何内容
// Many sites and software are using this comment as the key name.
// 很多网站和软件用这个注释作为密钥的名字
【window 生成目录在 用户目录里】
将 公钥 id_rsa.pub 用记事本打开 复制其内容 然后配置到 GitHub账号上
【添加SSH密钥 并 配置后,使用以下命令 进行检测是否成功建立连接】
ssh -T git@github.com //检测是否成功建立连接
为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。
最后友情提示,在GitHub上免费托管的Git仓库,任何人都可以看到喔(但只有你自己才能改)。所以,不要把敏感信息放进去。
3.推送(push)到远程仓库(origin)
由于原先的GitHub默认主分支为 master ,后又因为 美国大规模的 “Black Lives Matter”运动影响 将主分支改成了 main
git branch -M main //将主分支修改为main
git remote add origin XXXXXXXXXXXXXXXXXX //配置默认远程提交地址
git push -u origin main //推送到主分支 -u首次推送需要加上
4.克隆远程仓库到本地
git clone XXXXXXXXXXXXXX //克隆远程仓库到本地
【当从远程仓库clone下来后,默认 克隆者 只能看到一个 main 主分支,需要在本地创建 其他分支(dev开发分支),并将本地新建的分支 和 远程的分支关联起来】(这里以dev开发分支为例)
git checkout -b dev origin/dev //本地创建dev分支 并切换至dev分支 并和远程dev分支建立关联
- main 分支
- 主分支 用来做版本发布的分支
- dev 分支
- 开发分支 团队所有成员都需要在上面工作,所以也需要与远程同步
- bug 分支
- 用于本地修复bug 没有必要推送到远程,除非老板想要看看你每周到底修复了几个bug
- feature 分支
- 分支是否推送到远程,取决于你是否和你的小伙伴合作在上面开发
5.从远程仓库中拉取代码
git pull origin main //从主分支上拉取代码
【其实 clone 只需要一次,后续只需要 pull 拉取代码 即可】
6.对于分支的操作
git branch //查看所有分支
git branch <branch_name> //创建指定分支
git checkout <branch_name> || git switch 分支名字 //切换分支
git checkout -b <branch_name> || git switch -c 分支名字 //创建+切换分支
git merge <branch_name> //合并某分支到当前分支
git branch -d <branch_name> //删除指定分支
git branch <branch_name> <hash_value> //回复指定分支
可以参考我的博客地址:点击这里