版本控制软件 GIT 的使用
git 下载
- 苹果和 linux 系统自带 git windows 用户下载地址
git 配置
- 配置电子邮件
git config --global user.email "l119520@ooutlook.com"
配置用户名
git config --global user.name "gaolengjun"
配置编辑器
git config --global core.editor vim
配置合并工具
git config --global merge.tool vimdiff
查看配置
git config --list
查询帮助
- 语法:git help 命令
git help add
该命令自动打开该参数浏览器详情页面
创建仓库
- 初始化
git init
- 在当前操作文件夹里生成 **.git** 文件夹
- 查看仓库状态
git status
- 添加文件到索引区
在仓库目录里直接创建文件,git 无法感知,需要执行下面命令让 git 追踪添加的文件,可以使用 git status 查看状态
第二个使用。的命令,可以将该目录下所有文件添加到索引区
git add test.txt git add .
- 提交
git commit -m "add test.txt"
- 引号中建议写上提交理由,知道你干了什么。提交文件后再使用 git status 查看状态就什么都没有了查看提交日志
- 完整日志
该命令查看已提交的文件,包括作者姓名、邮箱和提交日期
git log
- 查看近期几条记录
git log -2
- 一行显示
git log --oneline
- 详细显示
该参数可以查看更新了那些内容
git log -p
git rm read.md
- 从索引区删除文件
git rm --cached style.css
- 修改文件名
git mv test.txt test.md
- 更新后提交
已经 commit 文件,再次增删代码后使用 git status 会红色提示 modified: index.html,表示该文件已发生更新,此刻需要重新 git add index.html 添加到索引区,使用 git status 会绿色提示 modified: index.html,再次 git commit -m “add code” 提交
撤销操作
- 撤销更改
当更改文件后,尚未添加索引区,可以使用 git 命令恢复
git restore index.html git checkout -- index.html
git restore --staged index.html git reset HEAD index.html
- 未添加索引区前比较内容
不同的内容将以绿色标识出来
git diff
git diff --cached
设置 git 忽略的文件,这些文件不参与 git 库的管理和提交
- 在 git 管理目录下新建一个.gitignore 文件,注意,这不是后缀,就是这个文件名
- 打开.gitignore 文件,输入 *.tem 保存,意思是凡是后缀为.tem 的文件会被 git 忽略管理,然后 git status 就看不到该文件了
不管被忽略的文件在任何层级目录下,git 都会忽略管理
更新最后的提交
提交后发现有问题,不想修改后重复提交,在已提交的基础上更新内容
- 修改文件后,git status 查看状态
- git add . 添加索引区
- 使用 git commit –amend 命令提交,不会重新生成记录,可以 git log -2 查看日志
返回过去
- 更新了文件尚未添加索引区,但需要返回未修改前版本
git reset --hard HEAD
- 返回上次提交版本
git reset --hard HEAD~
- 返回指定版本
这里的数字是指定返回上两次前的版本
git reset --hard HEAD~2
- 根据版本 ID 返回指定版本
使用 git log 命令查看日志,可以看到版本 id,特别颜色高亮显示;使用 git log –oneline -4 命令简单显示日志,id 是简写的。使用该版本 id 可以硬性回滚版本
git reset --hard b6fb43b
git reflog -3
在之前的操作都是在主分支(master) 上,在实际开发中都是使用开发分支,开发分支相当于主分支的副本,每个人负责自己的模块,不同分支之间互不影响,确认无误后最终合并到主分支
- 新建分支
git branch dev
- 查看所有分支
带星号的是当前所操作的分支
git branch * master
git checkout dev git checkout -b dev
修改并提交开发分支后,确认无误后,需要合并到主分支
- 确保切换到主分支(master),使用以下命令合并分支
git merge dev
git branch -d dev
当团队中多人编辑同一文件的时候,难免出现源代码的编辑合并冲突问题
使用 VS code 会自带分支冲突菜单命令,设置以哪个分支为准进行合并以及比较内容。其次,解决分支合并冲突的问题就是手动修改代码
使用 TAG 标签
使用 tag 标签给应用程序贴上版本号
- 新建 tag 标签
git tag V1.0.0
- 查看所有 tag 标签
git tag
git show V1.0.1
在 git 中可以给经常使用的命令取别名,以别名缩写的方式简化使用
给 git status 取别名,语法:git config –global alias.st status
其它 git 命令同样设置
git config --global alias.co checkout git co git config --global alias.br branch git br git config --global alias.cm commit git cm
使用 git config -l 查看 git 全局设置,包括自定义的别名
克隆远程仓库和推送
- 克隆远程仓库
命令格式:git clone url
git clone https://gitee.com/komavideo/LearnOSC.git
- 查看所有分支,包括远程分支
git branch -a remotes/origin/HEAD -> origin/master remotes/origin/dev remotes/origin/master
- 远程分支迁移到本地
使用如上命令会红色显示远程分支,加入下方命令中迁移到本地
git branch dev remotes/orgin/dev
- 切换到开发分支,修改内容
git checkout dev
- 提交前,先使用如下命令查看远程服务器设置
origin 是远程服务器 url 的缩写,两者是一样的。fetch 表示使用该命令获取仓库,使用 push 推送到远程仓库
git remote -v origin https://gitee.com/komavideo/LearnOSC.git (fetch) origin https://gitee.com/komavideo/LearnOSC.git (push)
- 推送到远程仓库
git push origin dev