Git常用命令整理

本文参考廖雪峰Git教程,根据个人使用情况整理完成。

基本配置

说明:以下配置都以Windows系统为例!

设置用户名、邮箱

提交代码前,需要告诉git是谁提交,邮箱是什么,所以需要对git做基本配置。打开终端,执行如下命令:

1
2
git config --global user.name "你的名字或昵称"
git config --global user.email "你的邮箱"

执行完以上命令后,会在C:\Users\用户名\目录下生成.gitconfig文件,内容如下:
413f1ead748d968b/d52d1e0cc3c54325b871a523e0bfc153.png

SSH Key密钥生成

以对接码云为例,生成密钥,执行以下代码:

1
ssh-keygen -t rsa -C "xxxxx@xxxxx.com" # Creates a new ssh key using the provided email

执行完以上命令后,会在C:\Users\用户名\.ssh目录下生成以下两个文件,如下图:
413f1ead748d968b/7d0d685e6d6c4196a8bb3367e0e745d0.png

然后将public key添加到Git@OSC http://git.oschina.net/keys,添加后,在终端输入:

1
ssh -T git@git.oschina.net

若返回如下信息,则表示添加成功。

1
Welcome to Git@OSC, itechq!

查看配置信息

要检查已有配置信息,可用git config --list

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ git config --list
core.symlinks=false
core.autocrlf=true
core.fscache=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
help.format=html
http.sslcainfo=D:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
diff.astextplain.textconv=astextplain
rebase.autosquash=true
credential.helper=manager
user.name=itechq
user.email=csch112@163.com

获取帮助

想查询某个命令如何使用,可使用如下命令

1
2
3
git help <verb>
git <verb> --help
man git-<verb>

常用命令

初始化

1
git init

克隆

1
2
3
4
5
# 克隆到远程仓库目录
git clone [url]

# 克隆到指定目录
git clone [url] [dir]

查看状态

1
git status

暂存更新

1
2
3
4
5
# 添加指定文件,支持*通配符
git add [file]

# 添加所有文件
git add -A

提交更新

1
git commit -m "注释信息"

查看日志

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$ git log
commit 4690f5809f35fca65148232de41ba6b5f10221ba
Author: itechq <csch112@163.com>
Date: Sat Jun 11 00:15:57 2016 +0800

新增IDEA快捷键收录

commit 7985f617f14d3793d6cded26364622688f0c245b
Author: itechq <csch112@163.com>
Date: Sat Jun 11 00:07:37 2016 +0800

修改搜索引擎为本地搜索

commit 8c7f506faeb2c9d153c9bfba7e7729d96294f7b0
Author: itechq <csch112@163.com>
Date: Fri Jun 10 22:52:22 2016 +0800

优化七牛同步工具

commit 526885e57db40c05c431ca129f739fc7d007bc1d
Author: itechq <csch112@163.com>
Date: Fri Jun 10 22:33:08 2016 +0800

通常用-p选项展开显示每次提交的内容差异,用-2则仅显示最近的两次更新

1
2
3
4
5
6
7
8
9
10
11
12
$ git log -p -2
commit 4690f5809f35fca65148232de41ba6b5f10221ba
Author: itechq <csch112@163.com>
Date: Sat Jun 11 00:15:57 2016 +0800

新增IDEA快捷键收录

diff --git a/source/_posts/2016-06-11-intellij-idea-hotkey.md b/source/_posts/2016-06-11-intellij-idea-hotkey.md
new file mode 100644
index 0000000..73d034a
--- /dev/null
+++ b/source/_posts/2016-06-11-intellij-idea-hotkey.md

版本回退

首先通过git log命令查看版本库提交记录,即查看日志命令输出结果,若要回退版本,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,即最新提交的4690f5809f35fca65148232de41ba6b5f10221ba,上一个版本就是HEAD^,上上一个版本就是HEAD^^,依次类推,若往上很多版本(如100个),一般写成HEAD~100

回退版本,使用如下命令:

1
2
3
4
git reset --hard commit_id

# 回退到上一版本
git reset --hard HEAD^

若又想回退到新版本,但是找不到commit_id了,可通过git reflog命令,该命令会记录每一次操作命令

1
2
3
4
5
$ git reflog
4690f58 HEAD@{0}: commit: 新增IDEA快捷键收录
7985f61 HEAD@{1}: commit: 修改搜索引擎为本地搜索
8c7f506 HEAD@{2}: commit: 优化七牛同步工具
526885e HEAD@{3}: commit (initial): init project

撤销修改

如果想恢复工作区文件到上一个版本,可使用命令git checkout -- file来丢弃工作区修改:

1
git checkout -- readme.txt

即把readme.txt文件在工作区的修改全部撤销,有两种情况:

  • readme.txt自修改后还没放到暂存区,现在撤销修改后回到和版本库状态一样
  • readme.txt已放到暂存区后,又做了修改,现在撤销修改就回到添加到暂存区后的状态

注意:git checkout -- file命令中的--很重要,若没有--,就变成切换到另一个分支命令

撤销已暂存文件

若某个文件已经加入暂存区,现在想撤销掉,用以下命令:

1
git reset HEAD file

删除文件

删除本地文件,使用如下命令:

1
rm file

  • 从Git库删除,使用如下操作命令:

    1
    2
    3
    4
    5
    # 1.从版本库删除文件
    git rm file

    # 2.提交删除
    git commit -m "注释信息"
  • 误删除,需要恢复文件,使用如下命令:

    1
    git checkout -- file

添加远程仓库

  • 关联远程仓管

    1
    2
    # 将本地仓库与远程仓库关联
    git remote add origin git@git.oschina.net:itechq/hotch-hexo.git
  • 首次推送本地仓库到远程仓库

    1
    git push -u origin master
  • 再次推送本地仓库到远程仓库

    1
    git push origin master