Git常用命令

Git Config

配置文件

1
2
3
作用域:全局用户
路径:$ /etc/gitconfig
命令:$ git config --system xxx
1
2
3
作用域:当前用户
路径:$ ~/.gitconfig
命令:$ git config --global xxx

常用配置

  • 用户信息
1
2
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
  • 文本编辑器
1
$ git config --global core.editor emacs
  • 差异分析工具
1
$ git config --global merge.tool vimdiff

查看历史

1
2
git log --pretty=oneline filename // 一行显示
git show xxxx // 查看某次修改

创建分支

1
2
git branch develop // 只创建分支
git checkout -b master develop // 创建并切换到 develop 分支

合并分支

1
2
3
4
git checkout master // 切换到主分支
git merge --no-ff develop // 把 develop 合并到 master 分支,no-ff 选项的作用是保留原分支记录
git rebase develop // 合并分支
git branch -d develop // 删除 develop 分支

标签功能

1
2
3
4
5
6
7
8
git tag // 显示所有标签
git tag -l 'v1.4.2.*' // 显示 1.4.2 开头标签
git tag v1.3 // 简单打标签
git tag -a v1.2 9fceb02 // 后期加注标签
git tag -a v1.4 -m 'my version 1.4' // 增加标签并注释, -a 为 annotated 缩写
git show v1.4 // 查看某一标签详情
git push origin v1.5 // 分享某个标签
git push origin --tags // 分享所有标签

回滚操作

1
2
3
reset --hard v0.1
reflog
reset --hard v0.2

###取消某个文件的修改

1
2
git checkout -- <filename>
git chekout -f

删除文件

1
2
3
git rm <filename>   直接删除文件
git rm --cached <filename> 删除文件暂存状态
git clean -xdf

移动文件

1
git mv <sourcefile> <destfile>

查看文件更新

1
2
git diff              查看未暂存的文件更新
git diff --cached 查看已暂存文件的更新

克隆远程分支

1
2
git branch -r
git checkout origin/android

克隆子工程:

1
git submodule update --init --recursive

添加远程库

1
2
3
git init
git remote add origin git@xxxx
git pull origin master

迁移仓库

1
git remote set-url origin remote_git_address

.gitignore

1
2
3
4
5
*.a		# 忽略所有 .a 结尾的文件
!lib.a # 但 lib.a 除外
/TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/ # 忽略 build/ 目录下的所有文件
doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt