tig
tig是什么
tig, 就是把 Git 这个单词倒过来念, 它是一个命令行工具, 日常使用中我用它来取代 Git 最高频的几个操作,
如 git log, git diff 以及 git blame等, 使用常见安装源能够方便地安装它.
ubuntu: sudo apt-get install tig
macOS: brew install tig
tig是一种命令行交互式操作工具 tig 的所有功能都是 Git 命令行已经具备的,
tig 提供了一种直观, 方便快捷的 Git 操作.
tig安装 :
1.1将brew的install文件下载本地
cd ~ && curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install >> brew_install
1.2修改install文件的镜像源
# BREW_REPO = "https://github.com/Homebrew/brew".freeze BREW_REPO = "git://mirrors.ustc.edu.cn/brew.git".freeze
1.3安装brew
/usr/bin/ruby ~/brew_install
1.4验证是否安装成功
$ brew doctor
如果没成功先卸载brew一下,再试
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
brew upgrade tig
![](https://images2018.cnblogs.com/blog/679636/201807/679636-20180709165337527-1265228874.png)
安装成功后,在 Repo 文件夹下,输入 【 tig 】+ 【 Enter 】即可进入 tig 模式。此时展现在面前的将会是本地所有的 commit 记录以及分支的演化。
【 j 】【 k 】可上下切换选中的行,【 Enter 】可分屏查看当前 commit 记录详情,【 l 】小写的 L,全屏查看 commit 记录。
【 r 】进入 refs view 模式,查看所有分支,使用 【 j/k 】上下切换, 【 Enter 】查看分支演化。
【 s 】进入 status view,效果同 git status 命令,会展示所有 Untracked 和 UnStaged 文件。 选中 Unstaged 的文件键入【 u 】效果同 git add ,选中 staged 的文件键入 【 u 】效果同 git reset,即撤销 add 操作。【 Enter 】查看分屏查看当前文件的修改记录。
status view 模式下键入 【 C 】进入 vim 编辑器,【 i 】进入编辑模式,在第一行输入 commit 信息,【 :x 】退出并保存。【 m 】查看 commit 记录。
【 c 】进入 stash view 模式,全屏查看修改记录,可配合 【 s 】 使用。
【 t 】进入 tree view 模式,git 目录会以文件夹的形式展示。【 Enter】进入子目录,【 , 】返回上一级目录。
【 m 】进入 main view 查看当前分支的所有 commit 记录,使用 【 j/k 】上下切换,【 回车 】可分屏查看 commit 详情。同样,【 j/k 】上下移动,【空格】翻页。
main view 可以认为是主页。
【 / 】输入关键字可进行搜索。
【 R 】刷新当前页面,可退出搜索的高亮状态。
【 Q 】退出 tig。
【 h 】查看快捷键帮助。
git status
git add .
git commit --m "test"
tig
git push
tig
如果同事也有提交代码
可以先这样
git stash (暂存当前修改内容)
git pull --rebase
git stash pop
说明: git stash 可用来暂存当前正在进行的工作, 比如想pull 最新代码, 又不想加新commit,
或者另外一种情况,为了fix 一个紧急的bug, 先stash, 使返回到自己上一个commit,
改完bug之后再stash pop, 继续原来的工作。
注意: git pull –rebase 理解
这个命令做了以下内容:
a.把你 commit 到本地仓库的内容,取出来放到暂存区(stash)(这时你的工作区是干净的)
b.然后从远端拉取代码到本地,由于工作区是干净的,所以不会有冲突
c.从暂存区把你之前提交的内容取出来,跟拉下来的代码合并
所以 rebase 在拉代码前要确保你本地工作区是干净的,
如果你本地修改的内容没完全 commit 或者 stash,就会 rebase 失败。
备注:使用oh my zsh效果更好哦!
参考:
tig