小技巧¶
shell通过SSH连接github¶
这里以Windows上的Git Bash连接github为例, Linux, gitlab等情况相似.
生成SSH key:
ssh-keygen -t rsa -C "user@site.com"
一路回车, 会在~/.ssh目录下生成id_rsa和id_rsa.pub两个文件, 即公钥私钥对.
将公钥添加到github
依次点击github网页上的settings/SSH and GPG keys/New SSH key, 把id_rsa.pub文件的内容, 添加到key文本区. 可以给这个key取一个名字用于和其他key区分, 如”windows-home”
测试添加是否正确
运行
ssh -T git@github.com
, 如果出现类似”Hi zzqcn! You’ve successfully authenticated”的字样, 说明SSH key配置成功. 如果出现”Permission denied (publickey)” 等字样, 说明配置失败, 可以运行ssh -v git@github.com
来查看详细信息.
在命令提示符中显示当前分支¶
macOS:¶
定位脚本git-prompt.sh
我的在 /Applications/Xcode.app/Contents/Developer/usr/share/git-core/, 另外此目录还有git-completion.bash. git-prompt.sh可用于在命令提示符中显示当前分支, git-completion.bash可用于敲git命令时按tab智能提示和补全.
我这个应该是Xcode自带的, 如果通过brew安装的, 路径应该不同.
将脚本拷贝到用户目录(~/)
修改~/.bash_profile, 比如
if [ -f ~/.git-completion.bash ]; then source ~/.git-completion.bash fi if [ -f ~/.git-prompt.sh ]; then source ~/.git-prompt.sh export PS1="\[\033[36m\]\u\[\033[m\]@\[\033[32m\]\h:\[\033[33;1m\]\w\[\033[m\] \[\033[01;36m\]\$(__git_ps1 '(%s)')\[\033[00m\]\n$" fi
其中PS1可以设置成自己喜欢的样式; 另外要注意修改~/.bashrc无效
source ~/.bash_profile
, 使更改生效
Ubuntu:¶
定位脚本, 我的在/usr/lib/git-core/git-sh-prompt
将此脚本拷贝到用户目录, 如~/.git-prompt.sh
修改~/.bashrc, 加入
if [ -f ~/.git-prompt.sh ]; then source ~/.git-prompt.sh export PS1="\[\033[36m\]\u\[\033[m\]@\[\033[32m\]\h:\[\033[33;1m\]\w\[\033[m\] \[\033[01;36m\]\$(__git_ps1 '(%s)')\[\033[00m\]\n$" fi
source ~/.bashrc
, 使更改生效
另外要提醒, 最好在~/.bashrc里把force_color_prompt打开, 不然SecureCRT登录上去命令提示符没有彩色效果:
force_color_prompt=yes
CentOS:¶
// for CentOS 7.3
准备脚本:
cp /usr/share/git-core/contrib/completion/git-prompt.sh ~/.git-prompt.sh cp /etc/bash_completion.d/git ~/.git-completion.sh
# 修改~/.bashrc:
if [ -f ~/.git-prompt.sh ]; then
source ~/.git-prompt.sh
export PS1="\[\033[36m\]\u\[\033[m\]@\[\033[32m\]\h:\[\033[33;1m\]\w\[\033[m\] \[\033[01;36m\]\$(__git_ps1 '(%s)')\[\033[00m\]\n$"
fi
if [ -f ~/.git-completion.sh ]; then
source ~/.git-completion.sh
fi
force_color_prompt=yes
set autolist=ambiguous
让修改生效:
source ~/.bashrc