常用的 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
3git config user.name 'wangz'
git config user.email 'wangz@alib.com'
git commit --amend --author=wangz
5)查看提交记录,根据 commit id 查看提交情况。
1
2git log
git show
一些基础git操作命令:
1
2
3git status 命令用来查看 --short(输出信息更紧凑)
git diff 命令用来查看尚未暂存的改动 --cached
git commit -a -m 可以不用提前 add 操作,自动将追踪文件提交(一般来说,是之前提交过的已存在文件),并加入提交日志。
1
git log 查看提交历史。(-p 是一个常用选项,例如 -p -2 ,仅显示最近两次提交。--stat 查看每次提交的简略的统计信息)
Git 基础 - 撤消操作:
1
2
3
4
5git 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的位置。