版本控制软件GIT的使用

git下载

git配置

  • 配置电子邮件

    1
    git config --global user.email "l119520@ooutlook.com"
  • 配置用户名

    1
    git config --global user.name "gaolengjun"
  • 配置编辑器

    1
    git config --global core.editor vim
  • 配置合并工具

    1
    git config --global merge.tool vimdiff
  • 查看配置

    1
    git config --list

查询帮助

  • 语法:git help 命令

    1
    git help add

    该命令自动打开该参数浏览器详情页面

创建仓库

  • 初始化

    1
    git init

    在当前操作文件夹里生成**.git**文件夹

  • 查看仓库状态

    1
    git status
  • 添加文件到索引区

    在仓库目录里直接创建文件,git无法感知,需要执行下面命令让git追踪添加的文件,可以使用git status查看状态

    第二个使用.的命令,可以将该目录下所有文件添加到索引区

    1
    2
    git add test.txt
    git add .
  • 提交

    1
    git commit -m "add test.txt"

    引号中建议写上提交理由,知道你干了什么。提交文件后再使用git status查看状态就什么都没有了

    查看提交日志

    • 完整日志

      该命令查看已提交的文件,包括作者姓名、邮箱和提交日期

      1
      git log
    • 查看近期几条记录

      1
      git log -2
    • 一行显示

      1
      git log --oneline
    • 详细显示

      该参数可以查看更新了那些内容

      1
      git log -p

    删除和更名

  • 本地删除文件仍然要执行该命令让git感知该文件已被删除

    1
    git rm read.md
  • 从索引区删除文件

    1
    git rm --cached style.css
  • 修改文件名

    1
    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命令恢复

    1
    2
    git restore index.html
    git checkout -- index.html
  • 从索引区恢复

    执行以下命令从索引区退出后,再执行上面命令恢复

    1
    2
    git restore --staged index.html
    git reset HEAD index.html

比较内容

  • 未添加索引区前比较内容

    不同的内容将以绿色标识出来

    1
    git diff
  • 添加到索引区比较内容

    1
    git diff --cached

git忽略管理

设置git忽略的文件,这些文件不参与git库的管理和提交

  1. 在git管理目录下新建一个.gitignore文件,注意,这不是后缀,就是这个文件名
  2. 打开.gitignore文件,输入*.tem保存,意思是凡是后缀为.tem的文件会被git忽略管理,然后git status就看不到该文件了

不管被忽略的文件在任何层级目录下,git都会忽略管理

更新最后的提交

提交后发现有问题,不想修改后重复提交,在已提交的基础上更新内容

  1. 修改文件后,git status查看状态
  2. git add .添加索引区
  3. 使用git commit –amend命令提交,不会重新生成记录,可以git log -2查看日志

返回过去

  • 更新了文件尚未添加索引区,但需要返回未修改前版本

    1
    git reset --hard HEAD
  • 返回上次提交版本

    1
    git reset --hard HEAD~
  • 返回指定版本

    这里的数字是指定返回上两次前的版本

    1
    git reset --hard HEAD~2
  • 根据版本ID返回指定版本

    使用git log命令查看日志,可以看到版本id,特别颜色高亮显示;使用git log –oneline -4命令简单显示日志,id是简写的。使用该版本id可以硬性回滚版本

    1
    git reset --hard b6fb43b
  • 查询版本ID

    如上操作可以根据版本id回滚版本,如果一不小心清屏了或者忘记版本id,就可以使用如下命令查询版本id再恢复该版本

    1
    git reflog -3

使用分支

在之前的操作都是在主分支(master)上,在实际开发中都是使用开发分支,开发分支相当于主分支的副本,每个人负责自己的模块,不同分支之间互不影响,确认无误后最终合并到主分支

  • 新建分支

    1
    git branch dev
  • 查看所有分支

    带星号的是当前所操作的分支

    1
    2
    git branch
    * master
  • 切换分支

    第二条命令是创建分支同时切换到该分支

    1
    2
    git checkout dev
    git checkout -b dev

合并分支

修改并提交开发分支后,确认无误后,需要合并到主分支

  • 确保切换到主分支(master),使用以下命令合并分支

    1
    git merge dev
  • 合并分支后,删除无用的开发分支

    1
    git branch -d dev

解决分支合并冲突

当团队中多人编辑同一文件的时候,难免出现源代码的编辑合并冲突问题

使用VS code会自带分支冲突菜单命令,设置以哪个分支为准进行合并以及比较内容。其次,解决分支合并冲突的问题就是手动修改代码

使用TAG标签

使用tag标签给应用程序贴上版本号

  • 新建tag标签

    1
    git tag V1.0.0
  • 查看所有tag标签

    1
    git tag
  • 查看版本详情

    通过该命令可以查看这个版本的变动

    1
    git show V1.0.1

使用别名

在git中可以给经常使用的命令取别名,以别名缩写的方式简化使用

git status取别名,语法:git config –global alias.st status

其它git命令同样设置

1
2
3
4
5
6
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全局设置,包括自定义的别名

克隆远程仓库和推送

  1. 克隆远程仓库

    命令格式:git clone url

    1
    git clone https://gitee.com/komavideo/LearnOSC.git
  2. 查看所有分支,包括远程分支

    1
    2
    3
    4
    git branch -a
    remotes/origin/HEAD -> origin/master
    remotes/origin/dev
    remotes/origin/master
  3. 远程分支迁移到本地

    使用如上命令会红色显示远程分支,加入下方命令中迁移到本地

    1
    git branch dev remotes/orgin/dev
  4. 切换到开发分支,修改内容

    1
    git checkout dev
  5. 提交前,先使用如下命令查看远程服务器设置

    origin是远程服务器url的缩写,两者是一样的。fetch表示使用该命令获取仓库,使用push推送到远程仓库

    1
    2
    3
    git remote -v
    origin https://gitee.com/komavideo/LearnOSC.git (fetch)
    origin https://gitee.com/komavideo/LearnOSC.git (push)
  6. 推送到远程仓库

    1
    git push origin dev