Git小结

简介

Git作为开源的分布式版本控制系统,很多开源项目都使用Git用作版本控制。

安装

Google、百度,不予赘述。

命令补全

Git默认是无法自动补全命令,需要添加自动补全脚本。
下载自动补全脚本,放在用户主目录下,并将下面一行添加至 .bashrc 文件中。

1
source ~/.git-completion.bash

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
git init // 初始化仓库
git clone [url] // 克隆现有仓库
git add -u // 将所有已跟踪的文件的改动添加至暂存区
git add -A // 将所有操作添加至暂存区
git add . // 同上
git commit <-m 添加提交说明> <-s 对本次提交签名> // 提交
git reset --soft HEAD~ // 将版本库重置为HEAD指针指向的提交的父提交,暂存区与工作区不变
git reset --mixed HEAD~ // 将版本库与暂存区重置为HEAD指针指向的提交的父提交,工作区不变
git reset HEAD~ // 缺省行为,同上
git reset --hard HEAD~ // 将版本库与暂存区和工作区重置为HEAD指针指向的提交的父提交
git checkout -- <file> // 放弃已修改的内容
git checkout <branchName> // 切换分支
git checkout -b <branchName> // 创建分支并切换
git remote // 列出所有远程主机
git remote -v // 查看远程主机的网址
git remote show <主机名> // 查看远程主机的详细信息
git remote add <主机名> <Url> // 添加远程主机
git remote rm <主机名> // 删除远程主机
git remote rename <原主机名> <新主机名> // 远程主机改名
git fetch <远程主机名> // 将远程主机的更新全部取回本地
git fetch <远程主机名> <分支名> // 获取远程主机特定分支的更新
git pull <远程主机名> <远程分支名>:<本地分支名> // 获取远程分支的更新并与本地分支合并
git pull <远程主机名> <远程分支名> // 获取远程分支更新并与当前分支合并
git push <远程主机名> <本地分支名>:<远程分支名> // 将本地分支推送至远程分支
git push <远程主机名> <本地分支名> // 将本地分支推送至存在“追踪关系”的远程分支,若远程分支不存在则会被新建
git push origin :<远程分支名> // 删除指定远程分支
git push origin --delete <远程分支名> // 同上
git log <-p 查看提交的内容差异> <-n 显示最近n次提交>
git log -U1 --word-diff // 获取单词层面的对比
git log --stat // 显示简要的增改行数统计
git diff <filename> // 工作区vs暂存区
git diff <branch> <filename> // 与另一个分支比较
git diff --cached <filename> // 暂存区vs仓库
git diff --cached <commit> <filename> // 暂存区vs指导提交
git diff git diff <commit> <filename> // 工作目录vs仓库
git diff <commit> <commit> // 两次提交对比
HEAD 最近一次 commit
HEAD^ 上次提交
HEAD~100 上100次提交

参考

Git远程操作详解
Git-远程分支,远程跟踪分支,跟踪分支的区别
代码回滚:Reset、Checkout、Revert 的选择
常用 Git 命令清单