git 命令学习

last-update: 2016年10月27日

1. git stash

简短描述

当你正在进行项目中某一部分的工作,但是里面的东西处于一个比较杂乱的状态,但是却想要切换到其他分支。问题是,你不想提交进行了一半的工作,否则以后你无法回到这个工作点。解决这个问题的办法就是 git stash 命令。

"储藏"(Stashing)可以获取你工作目录的中间状态——也就是你修改过的被追踪的文件和暂存的变更——并将它保存到一个未完结变更的堆栈中,随时可以重新应用。

简单恢复状态

使用 git stash apply 命令恢复保存的变更,假如出现冲突的情况,可以用 git mergetool 来解决。

 

2. 冲突合并

from https://github.com/jquery/jquery/readme.md#Handling merge conflicts

如果在合并时遇到合并冲突,假如不是手动编辑冲突的文件,可以使用 git mergetool 功能。 虽然默认工具xxdiff看起来很丑/旧,但它是相当有用。

下面是一些可以使用的命令:

  • Ctrl + Alt + M - 尽可能自动合并
  • b - 调到下个冲突的地方
  • s - 改变冲突行的顺序
  • u - 撤销合并
  • 鼠标左键 - 标记一个块为结果
  • 鼠标中键 - 标记一行为结果
  • Ctrl + S - 保存
  • Ctrl + Q - 退出 

3. 逆序打印 git 记录

git log --reverse -p    

为学习而生。

4. revert 单个文件

Assuming the hash of the commit you want is c5f567:

git checkout c5f567 file1/to/restore file2/to/restore

The git checkout man page gives more information.

If you want to revert to the commit before c5f567, append ~1 (works with any number):

git checkout c5f567~1 file1/to/restore file2/to/restore

As a side note, I've always been uncomfortable with this command because it's used for both ordinary things (changing between branches) and unusual, destructive things (discarding changes in the working directory).

参考:

1.Git 文档: git stash

posted @ 2016-10-25 21:26  雷夫·麦  阅读(115)  评论(0编辑  收藏  举报