git 常用命令

常用的 Git 命令

最近步入公司,开始经常使用 git 。相比于原来 git 的使用,会更复杂更多一点。现在记录几条常用的git命令,作为备份信息。

1) 查看用户名和邮箱地址:

1
2
$ git config user.name
$ git config user.email

2)修改用户名和邮箱地址:

1
2
3
$ git config --global user.name "username"

$ git config --global user.email "email"

3)修改最后一次提交的commit:

1
git commit  --amend

4)修改最后一次提交的用户名:

1
2
3
git config user.name 'wangz'  
git config user.email 'wangz@alib.com'
git commit --amend --author=wangz

5)查看提交记录,根据 commit id 查看提交情况。

1
2
git log
git show

一些基础git操作命令:

1
2
3
git status 命令用来查看 --short(输出信息更紧凑)
git diff 命令用来查看尚未暂存的改动 --cached
git commit -a -m 可以不用提前 add 操作,自动将追踪文件提交(一般来说,是之前提交过的已存在文件),并加入提交日志。

1
git log 查看提交历史。(-p 是一个常用选项,例如 -p -2 ,仅显示最近两次提交。--stat 查看每次提交的简略的统计信息)

Git 基础 - 撤消操作:

1
2
3
4
5
git reset HEAD <file>
这个命令会修改暂存区

git checkout -- <file>
这个命令会将文件的修改丢弃

这里重点分析一下 reset 和 checkout 命令。 在讲解这两个命令之前,先看下git中树的概念。git中一共有3棵树分别来管理我们的项目,这里的树不是一种数据结构,可以理解为一种文件的集合。

树🌲 用途
HEAD 上一次提交的快照,下一次提交的父结点
Index 预期的下一次提交的快照
Working Directory 沙盒
HEAD

HEAD 是当前分支引用的指针,它总是指向该分支上的最后一次提交。 这表示 HEAD 将是下一次提交的父结点。 通常,理解 HEAD 的最简方式,就是将它看做你的上一次提交的快照。

Index

Index 中保存的是暂存区,通过add可以将数据添加进Index。 commit 则会将 Index 中的数据提交到HEAD中。

Working Directory

Working Directory 中则是当前的工作目录。

接下来谈一下如何利用 reset 强制覆盖我们当前的工作目录。这样主要是用于处理当冲突太多时,避免大量的修改工作。

首先我们要用到的命令是git fetch [remote-name]。这个命令会访问远程仓库,从中拉取所有你还没有的数据。 执行完成后,你将会拥有那个远程仓库中所有分支的引用,可以随时合并或查看。

如果你使用 clone 命令克隆了一个仓库,命令会自动将其添加为远程仓库并默认以 “origin” 为简写。 所以,git fetch origin 会抓取克隆(或上一次抓取)后新推送的所有工作。 必须注意 git fetch 命令会将数据拉取到你的本地仓库 - 它并不会自动合并或修改你当前的工作。 当准备好时你必须手动将其合并入你的工作。

因此我们使用git fetch origin 从远端抓取了最新的代码以后,可以利用 git reset 重新指定HEAD的位置。

Donate comment here