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]
    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

参考:

  • How do I alias commands in git?
  • Aliases - Git wiki
  • Alias in GIT-SH

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;HOME/~}\007"

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

~/.bash_profile中加入以下指令,每次新开窗口自动设置:
export PROMPT_COMMAND='echo -ne "\033]0;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指令

你可能感兴趣的:(Git 与 Bash 快捷通道)