版本管理工具
集中式版本管理
分布式版本管理
命令
用户信息
设置全局用户信息
# 设置全局用户名
git config --global user.name "yezi"
# 设置全局用户邮箱
git config --global user.email "yezi@qq.com"
用户名 和 邮箱 只是用于标识提交代码时用户信息,并不需要和 Githab 、Gitee 等代码托管的用户信息平台相关联
查看全局用户信息
git config --global --list
初始化仓库
git init
需要进入文件夹目录,会自动添加 .git隐藏文件夹`
工作区
查看文件状态
git status
添加文件至暂存区
# 添加 a.txt文件 到暂存区
git add a.txt
# 添加 ./目录 下所以文件到暂存区
git add ./
恢复暂存区文件至工作区
# 从暂存区中恢复 a.txt文件 ,不影响工作目录
git restore --staged a.txt
# 从暂存区中恢复 ./目录 ,不影响工作目录
git restore --worktree --staged ./
暂存区
提交暂存区文件至本地仓库
git commit -m "第一次提交"
查看 commit 日志
简单日志
git reflog
在使用版本的命令中,使用 简短版本号 就能满足
详细日志
git log
查看 commit 版本的具体内容
# git cat-file -p 版本号
git cat-file -p 74da90d
移至某个 commit 版本
# 移动至指定版本号,这个版本内容会回退到工作区
git reset 版本号
# 移动至指定版本号,注意:这会删除这个版本之后的所以的 commit
git reset --hard 版本号
- 每次
commit都会产生一个新的版本号 - git 是通过指针指定版本号和分支确定 当前位置
分支
查看分支信息
git branch -v
强制更改当前分支名称
git branch -M main
如果 本地仓库 中已经存在一个名为 main的分支 ,会直接覆盖当前 main分支
如果 远端仓库 中已经存在一个名为 main的分支 ,会导致冲突
创建分支
# 以当前为基础,创建 bug分支
git branch bug
切换分支
# 切换至 bug分支
git checkout bug
合并分支
# 将 bug分支 与当前分支进行合并
git merge bug
合并冲突
在 master分支 上合并 bug分支 ,如果 master分支 和 bug分支 在同一行有修改,就会发生冲突,也就是 git 并不知道如何去取舍代码
// bug分支 A文件 的内容
这是A文件的内容
12
23
// master分支 A文件 的内容
这是A文件的内容
3
3
<<<<<<< HEAD
// master分支 A文件 的内容
这是A文件的内容
3
3
=======
// bug分支 A文件 的内容
这是A文件的内容
12
23
>>>>>>> bug
合并分支的前提是,两个分支都要 commit
<<<<<<< HEAD 与 ======= 之间的内容是当前 master分支 的代码,======= 至 >>>>>>> 之间是 bug分支 的代码
// master分支 A文件 的内容
这是A文件的内容
3
3
多个分支只能进行一次合并
团队协作
团队内协作
跨团队协作
远程仓库操作
克隆远程仓库
# git clone 远程仓库地址
git clone https://gitee.com/hccwh_admin/template-js.git
- 创建一个远程仓库同等名称的文件夹目录
- 创建
.git本地仓库初始化目录 - 创建远程仓库别名,默认创建
origin远程仓库别名 - 克隆远程仓库内容至本地
创建远程仓库别名
# git remote add 别名 远程仓库地址
git remote add template-js https://gitee.com/hccwh_admin/template-js.git
查看远程仓库别名
git remote -v
两个 别名 的原因是一个拉取和一个推送
推送本地仓库到远程仓库
# git push 远程仓库别名 分支
git push template-js master
# 强制推送 git push 远程仓库别名 分支 --force
git push template-js master --force
这是因为 远程仓库 内容和 本地仓库 内容发生了冲突,也就是 远程仓库 有 本地仓库 没有的文件,可以采用 --force 强制推送
拉取远程仓库
# git pull 远程仓库别名 分支
git pull template-js master
- 必须存在
.git目录 - 在当前目录拉取远程仓库文件,自动合并远程仓库的内容
登录验证
Windows凭据验证
拉取代码
需要使用 https 的地址
push更改
在 push 代码时,会跳出凭据添加页面
git push https://gitee.com/hccwh_admin/template-js.git master
输入凭据
输入对应 代码托管平台(Gitee、Githab等) 的用户和密码
SHH 免密验证
生成秘钥
# ssh-keygen -t key类型 -C 注释
ssh-keygen -t ed25519 -C "Gitee SSH Key"
连续按回城确定
查看秘钥
在 代码托管 平台使用秘钥
复制 id_ed25519.pub 公钥的内容
克隆代码至本地仓库
git clone git@gitee.com:hccwh_admin/template-js.git