Git 常用的几个功能

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ITxiaodong/article/details/89504925

Git是目前世界上最先进的分布式版本控制系统,这里有两个名词:分布式、版本控制。

墙裂推荐 廖雪峰的 Git 教程。这篇文章也算是看了 廖老师的教程后写的一点笔记。

集中式 VS 分布式

版本控制:顾名思义,就是通过各个版本的内容来对文件进行管理,可以通过查看各个版本可以知道修改人和修改时间。

之前也一直在使用 Git ,但是使用的基本都是备份的功能,使用的也是一些个人开发(非团队协作)常见的命令,如:

git init
git add .
git commit -m "xxx"
git push
git pull
git status
git checkout -b dev
git diff

当然如果只是个人使用,知道以上命令就可以使用好 Git 了。

在大型项目中肯定会有多人协作的情况,所以我们需要了解 Git 在多人协作时的一些操作。

在多人协作中经常遇到的问题就是多个人修改同一个文件的冲突,解决办法就是先处理冲突,看是要保留我们的修改还是保留其他人的修改,或者是合并二者的修改。

在开发中常见的场景还有:

  • 修复 Bug
  • 添加新功能
  • 打 Tag
  • 版本回退
  • 撤销修改
  • 删除文件

在开始介绍以上几个功能的命令之前先了解一下 Git 中 工作区和暂缓区 的概念。

暂缓区:git add <file> 这个命令是将文件添加到 暂缓区,git commit -m "xxx" 这是将暂缓区的内容提交到分支。

工作区:就是我们在实时编辑的文件,在 git commit -m "xxx"之后没做任何修改,那么工作区就是干净的。

修复 Bug

在开发中经常还在写代码,突然测试跟你说有 Bug 了需要紧急修改,那么这时候需要用上 Git 的 修复 Bug 的版本控制了。

  1. 保存当前的修改。 git stash
  2. 首先确定出现 Bug 的分支,从那个分支创建出一个修复 Bug 的分支。切换分子:git checkout 分支名,创建 Bug 分支:git checkout -b issue-101
  3. 在 Bug 分支上修复问题,合并分支,删除 Bug 分支。修复问题并提交:git add <file> , git commit -m "xxx", 切回到出 Bug 的分支:git checkout 分支名,合并分支:git merge --no-ff -m "merged bug fix 101" issue-101
  4. 回到保存代码的分支上继续撸码。git checkout 保存代码的分支,查看保存的列表:git stash list,取出保存的代码:git stash pop, 取出某个保存的代码:git stash apply stash@{id}

添加新功能

和修复 Bug 分支操作类似

  1. 保存当前的修改
  2. 找到要添加新功能的分支版本,创建出一个 feature 分支。
  3. 完成新功能,合并分支,删除分支。如果在合并之前想放弃新功能可以使用:git branch -D feature-vulcan 强行删除分支
  4. 回到保存代码的分支上继续撸码。

打 Tag

tag就是一个让人容易记住的有意义的名字,它跟某个commit绑在一起。例如版本发布时需要指定某个时刻提交的版本进行打包,需要根据 commit id去查找,一大串的英文数字中找到一串commit id看着不是很爽,所以我们在commit 的时候加上 tag 名字后,需要打包某一个时刻提交的版本,直接搜索tag名称即可找到 commit id,最后通过commit id打包。

  • 命令git tag <tagname>用于新建一个标签,默认为HEAD,也可以指定一个commit id
  • 命令git tag -a <tagname> -m "blablabla..."可以指定标签信息;
  • 命令git tag可以查看所有标签。
  • 命令git show <tagname>可以看到说明文字

版本回退

顾名思义就是撤销修改的意思,就像吃了后悔药的那种效果。前提是没有提交到远程仓库

  • 回退上一个版本。git reset --hard HEAD^
  • 回退上上一个版本。git reset --hard HEAD^^
  • 回退到某个版本。git reset --hard <填写 commitId 前几位即可>

回退到某个版本需要 commit id,可以通过 git log命令查看具体的commit id,如果嫌弃git log打印的内容太杂,可以使用 git log --pretty=oneline查看 commit id

如果已经回退后的版本又想恢复,但是找不到commit id,可以通过git reflog来查找commit id,它的作用是用来记录你的每一次命令。

撤销修改

如果还未添加到暂缓区,也就是所做的修改还没有做git add操作
可以使用命令git checkout -- file可以丢弃工作区的修改。

如果已经添加到暂缓区但是还没提交,也就是做了git add但是还没做git commit -m "xxx",可以使用命令git reset HEAD <file>将暂存区的修改撤销掉(unstage),重新放回工作区

删除文件

包含真的要删除文件以及误删文件。

真的要删除文件

git rm <file>
git commit -m "remove file"

误删文件,想要恢复(和撤销修改类似)

git checkout -- file

猜你喜欢

转载自blog.csdn.net/ITxiaodong/article/details/89504925