Git

Git基础

记录工作中Git的实用操作

Posted by RainbomSea on December 14, 2020

Git基础

Git介绍

此处已省略

Git的三种状态

Git的文件有三种状态: 已提交(committed)已修改(modified)已暂存(staged)

  • 已修改表示修改了文件,但还没保存到数据库中。

  • 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。

  • 已提交表示数据已经安全的保存在本地数据库中。

这会让我们的Git项目拥有三个阶段:工作区、暂存区以及Git目录。

工作目录、暂存区域以及 Git 仓库

工作区是对项目的某个版本独立提取出来的内容。这些从Git仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。

暂存区是一个文件,保存了下次将要提交的文件列表信息,一般在Git仓库目录中。按照Git的术语叫做“索 引”,不过一般说法还是叫“暂存区”。

Git 仓库目录是 Git 用来保存项目的元数据和对象数据库的地方。 这是 Git 中最重要的部分,从其它计算机克隆 仓库时,复制的就是这里的数据。

基本的 Git 工作流程如下:

1. 在工作区中修改文件。

2. 将你想要下次提交的更改选择性地暂存,这样只会将更改的部分添加到暂存区。 

3. 提交更新,找到暂存区的文件,将快照永久性存储到 `Git` 目录。 

如果 Git 目录中保存着特定版本的文件,就属于 已提交 状态。 如果文件已修改并放入暂存区,就属于 已暂存 状态。 如果自上次检出后,作了修改但还没有放到暂存区域,就是 已修改 状态。

实用Git操作

  • git commit -a

    直接跳过使用暂存区域也就是跳过 git add 操作,直接把所有已经跟踪过的文件暂存并提交。

  • git mv

    就相当于运行了下面三条命令:

      $ mv README.md README 
      $ git rm README.md 
      $ git add README 
    
  • git log -n

    指定显示几次提交记录

  • git commit --amend

    有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。此时,可以运行带有 –amend 选 项的提交命令来重新提交:

  • git reset HEAD <file>

    取消指定文件的暂存状态

  • git checkout -- <file>

    撤销对文件的修改

创建标签

Git 支持两种标签:轻量标签(lightweight)与附注标签(annotated)

轻量标签很像一个不会改变的分支——它只是某个特定提交的引用。

而附注标签是存储在 Git 数据库中的一个完整对象, 它们是可以被校验的,其中包含打标签者的名字、电子邮件 地址、日期时间, 此外还有一个标签信息,并且可以使用 GNU Privacy Guard (GPG)签名并验证。

  • git tag <tagname>

    创建轻量标签

  • git tag -a <tagname>

    创建附注标签

  • git show <tagname>

    显示标签信息

  • git push origin <tagname>

    推送指定标签到远程仓库

  • git push origin --tags

    推送本地所有标签

  • git tag -d <tagname>

    删除本地标签

  • git push origin --delete <tagname>

    同步本地删除的标签到远程仓库

  • git config --global alias.co checkout

    可以通过 git config 文件来轻松地为每一个命令设置一个别名 上面的例子设置了 git co 代替 git checkou