Git 与 Bash 快捷通道

Git模型

A successful Git branching model
基于git的源代码管理模型——git flow

git-flow:一套以上面介绍的典型 Git 操作流程为蓝本创建的轻量级工具集合,将多个基本 Git 指令集成为一套 Git 流特定的操作指令集

gitsh:指定为 Git 环境的 Shell 工具,简化 Git 指令的输入,支持系统原生命令的正常使用,支持 Tab 自动完成,并且兼容与 hub 同时工作。
但是不支持用户 Shell 设定(~/.bashrc or bash_profile),支持~/.gitconfig指定 git alias,该环境包含数个内建快捷命令、,通过:前缀引用

hub:默认定位至 GitHub 的 Shell 环境工具,支持快速 clone、fork、pull-request、issue 或 wiki 的展示,以及跨仓库源的快速 fetch、push、checkout 一个pull-request、或进行 cherry-pick、compare 等操作


分支节点符 ^ ~

^ 旁系节点

用于表示分支树同一层级的兄弟父节点

^ 表示当前commit所在当前分支的(第一个)父节点

^2 表示当前commit所在 第二分支 的(第一个)父级兄弟节点(与 ^ 并列同一层级)

~ 直系节点

用于表示分支树中当前分支的各个直系父节点

~ 表示当前commit所在当前分支的(第一个)父节点

~2 表示当前commit所在当前分支的(第一个)祖父节点(直系节点)

^^^ = ^1^1^1 = ~3  当前分支的 父节点 的 父节点 的 父节点
^^2 = ~1^2 = ~^2   当前分支的 父节点 的 第二分支 的 父节点
^2                 当前节点的 第二分支 的 父节点

节点符可用于 HEAD 、分支或任意一个 commit


Git 配置全局Alias

Git 支持通过~/.gitconfig配置全局快捷键,也可通过命令git config --global alias.<alias> <git-command>进行指定。

[alias]
    st = status
    ci = commit
    co = checkout
    br = branch
    unstage = reset HEAD --
    last = log -1 HEAD
    loga = log --oneline --graph --decorate --all
    ck = checkout

通过~/.gitconfig指定 alias,调用前仍需要键入 git alias 形式进行命令引导,可考虑在~/.bashrc中定义全局 alias 取代~/.gitconfig

参考:


Git 配置自动完成

1.
# Copy git-completion.bash to home directory
cp usr/local/git/contrib/completion/git-completion.bash ~/

# For Mac
cp /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash ~/

2.
# Add the following lines to ~/.bashrc
if [ -x /usr/local/git/bin/git ]; then
    source ~/git-completion.bash
fi

Bash快捷键

Ctrl-A 相当于HOME键,用于将光标定位到本行最前面

Ctrl-E 相当于End键,即将光标移动到本行末尾

Ctrl-W 用于删除当前光标左侧的一个单词

Ctrl-U 用于删除从光标开始到行首的所有字符

Ctrl-K 用于删除从光标处开始到结尾处的所有字符

Ctrl-L 清屏,相当于clear命令

Ctrl-R 进入历史命令查找状态

ps: 使用bind -P命令可以查看所有键盘绑定。

Keyboard Shortcuts for Bash


Bash 配置文件

~/.bash_profile 系统启动、用户登录等 交互式登录 时,读取该(全局)配置
~/.bashrc 登陆后,新开终端窗口或执行脚本等打开 非登录shell 时,读取该文件配置新建立的shell环境

/ect/profile 系统所有用户通用的环境设置信息
/etc/bashrc 系统每次运行 shell 时读取的通用配置

~/.bash_logout 退出 shell 时执行该文件

source <配置文件> 立即读取指定配置并生效


iTerm2

Mac 下取代 Terminal 的高级命令工具

CMD-I 打开当前 Session(Tab) 配置窗口
CMD-, 配置窗口中,Profiles 页签用于通用外观设定
CMD-; 历史命令自动补全
CMD-Shift-h 打开剪切板历史
CMD-d 水平分屏
CMD-Shift-d 垂直分屏
CMD-[ 激活上一分屏
CMD-] 激活下一分屏
CMD-Opt-方向键 激活指定方向的分屏
⌘+←, ⌘+→, ⌘+{, ⌘+} 切换Tab

修改页签标题

当前绝对路径:
echo -ne "\033]0;$PWD\007"

当前相对路径:
echo -ne "\033]0;{PWD/#HOME/~}\007"

登陆用户+相对路径:
echo -ne "\033]0;{USER}@{HOSTNAME%%.*}: {PWD/#HOME/~}\007"

~/.bash_profile中加入以下指令,每次新开窗口自动设置:
export PROMPT_COMMAND='echo -ne "\033]0;{PWD/#HOME/~}\007"'

一条命令让您的 macOS 用 Touch ID 授权 sudo!

sudo sed -i ".bak" '2s/^/auth       sufficient     pam_tid.so\'$'\n/g' /etc/pam.d/sudo

iTerm2配色方案表

(Tomorrow Night Eighties)
https://github.com/mbadolato/iTerm2-Color-Schemes

Iterm2 快捷键介绍
iterm2有什么酷功能?


其他实用工具

Cacher:前身为 gistbox,gist代码片段的管理工具,提供标签化代码片、模糊搜索及团队开发共享等功能,提供免费套餐,支持全平台客户端,也提供网页版

gitsome:Python编写的开源项目,与gitsh相似的git环境,提供全过程的自动提示,并提供GitHub相关的命令。

Cmder:Windows下替代命令行窗口的工具,支持分页、同屏多端口分割、shell命令、热键、自定义界面等,无需安装,解压即用,可导入导出设置信息。

Git Extras:提供多组额外的git指令

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,039评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,426评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,417评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,868评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,892评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,692评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,416评论 3 419
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,326评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,782评论 1 316
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,957评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,102评论 1 350
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,790评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,442评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,996评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,113评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,332评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,044评论 2 355

推荐阅读更多精彩内容

  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,278评论 9 467
  • 1、bash 与 shell 管理整个计算机硬件的其实是操作系统的内核(Kernel),这个内核是需要被保护的,所...
    Zhang21阅读 854评论 0 2
  • 协议简述 协议(protocol)是oc中的一个重要的语言特性,协议中定义了一些方法,若某个类想要实现这个协议中的...
    吴与伦阅读 1,523评论 0 3