用于查看git代码库的终端界面工具

我们查看一个复杂项目Git提交记录的时候通常都需要借助GUI程序才能比较方便,因为直接使用终端查看的话难度会随着项目复杂度的提高而指数级提升. 所以诞生了git-fork, Sourcetree等GUI工具. 但目前有了GRV这样的终端查看工具,比git自带的查看方法方便了很多甚至不输上面的GUI工具. »

Author image 月杪 on #Git,

Git配置非22端口访问

有时候我们需要通过非22端口连接git(比如你遇到了一个以为更换了ssh端口就会给服务器安全带来突飞猛进提升的CTO),同时又不想使用GitHub的时候因为更改了默认端口带来麻烦. 其实很简单,通过.ssh下的config文件就可以搞定. 很简单的通过config做一个映射(一般不会存在这个文件,自己新建一个就行) # 映射一个别名 host git.example.com hostname git.example.com port 2222 像上面这样就成功的在使用类似 git clone git@git.example.com:xxx/xxx.git 命令的时候走2222端口,而当你使用类似 git clone git@github.com:moonagic/Jekyll.git 命令的时候走默认的22端口. »

Author image 月杪 on #Git,

Git忽略证书错误

在尝试使用源码编译很多陈旧开源软件的时候会遇到该软件的源地址SSL证书失效(比如iftop). 网上流传的很多都是直接修改git全局设置: git config --global http.sslVerify false 但会造成更大的安全问题. 正确方法需要在克隆的时候手动忽略证书错误: env GIT_SSL_NO_VERIFY=true git clone https://code.blinkace.com/pdw/iftop.git cd iftop git config http.sslVerify "false" 使用env命令保证了忽略证书错误只应用于此次克隆,http.sslVerify保证设置只应用于该仓库. »

Author image 月杪 on #Git,

从源码编译安装Git

编译依赖 apt-get install libcurl4-gnutls-dev libexpat1-dev gettext zlib1g-dev libssl-dev 下载 到Github下载需要的版本 安装 autoconf ./configure prefix=/usr/local all make make install »

Author image 月杪 on #Git,

在服务器上创建自己的远程Git仓库

创建git用户 创建git用户并设定好密码 adduser git 限制git用户登录 修改文件/etc/passwd 找到对应git用户的列然后将/bin/bash修改为/usr/local/bin/git-shell 添加公钥 #vi /path/to/gituser/.ssh/authorized_keys #...添加公钥 创建仓库 git init --bare simple.git chown -R git:git simple.git 使用 git clone git@serveripordomainname:/path/to/sample.git »

Author image 月杪 on #Git,

修改Git已提交的Email和Name

由于在Windows上使用Git的千奇百怪解决方案造成中途需要从babun更换到cygwin..结果更换的时候将Git配置中的Email输入错误,于是寻找了一下修改多个commit中的信息. 最后在changing-author-info中看到了解决方案. 保存脚本 #!/bin/sh git filter-branch --env-filter ' OLD_EMAIL="your-old-email@example.com" CORRECT_NAME="Your Correct Name" CORRECT_EMAIL="your-correct-email@example.com" if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ] then export GIT_COMMITTER_NAME="$CORRECT_NAME" export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL" fi if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ] then export GIT_AUTHOR_NAME="$CORRECT_NAME" export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL" fi ' --tag-name-filter cat -- --branches --tags 修改对应的OLD_EMAIL,CORRECT_NAME,CORRECT_EMAIL 然后运行即可. »

Author image 月杪 on #Git,

在Mac上为Git配置代理

Mac上为iTerm2设置代理可以直接用 export http_proxy=http://127.0.0.1:6152/ export https_proxy=http://127.0.0.1:6152/ 但是对git并不那么奏效,因为git除了走https外还需要走ssh. 试了网上很多办法都不行,最后找到了这个办法: 先将connect(我自己clone到了github)克隆到本地 ==bitbucket上的版本需要做出一项改动才能在Mac上正确编译使用,还是直接使用GitHub上已经修改好的仓库吧==1 git clone https://github.com/moonagic/connect.git cd connect # 直接gcc编译 make # 然后将编译得到的文件connect拷贝到bin目录 cp connect /usr/local/bin 修改ssh配置文件(没有的话新建一个) vi ~/.ssh/config # 全局 ProxyCommand connect -S 127.0.0.1:1080 %h %p # 只为特定域名设定 Host github.com ProxyCommand connect -S 127.0.0.1:1080 %h %p 其中-S代表走socks代理,如果需要使用HTTP/HTTPS代理的话使用-H 现在走ssh协议的git就可以走代理了. 改动为将signal(SIGALRM, (__sighandler_t)sig_timeout);注释掉. ↩︎ »