Tips
windows 下通过代理使用 git
- 安装 git for windows,自带 connect.exe
在安装目录(git bash 下的根目录)下新建两个文件 socks-gw.sh 和 socks-ssh.sh,假定使用的代理是 192.168.19.240:80
#!/bin/sh # Filename: /path/to/socks-gw.sh # This script connects to a SOCKS proxy using connect.c # connect -S 192.168.19.240:1080 $@ connect -H 192.168.19.240:80 $@ #!/bin/sh # Filename: /path/to/socks-ssh.sh # This script opens an SSH connection through a SOCKS server ssh -o ProxyCommand="/socks-gw.sh %h %p" $@
在安装目录下新建 proxy.sh,目的是设置所有代理相关的环境变量
#!/bin/sh # Filename: /path/to/proxy.sh # http proxy setting export HTTP_PROXY=http://192.168.19.240 export http_proxy=$HTTP_PROXY # set git to use ssh over http proxy export GIT_SSH="/socks-ssh.sh" export GIT_PROXY_COMMAND="/socks-gw.sh"
使用的时候,只需要执行命令
source /proxy.sh
Git 重新组织提交的历史
摘自 Git Magic 中文版 - 关于历史 - 更复杂情况
在漫长的时间里我们提交了一堆。但你不太喜欢他们的组织方式,而且一些提交信息需要重写。那么键入:
$ git rebase -i HEAD~10
并且后 10 个提交会出现在你喜爱的 $EDITOR。一个例子:
pick 5c6eb73 Added repo.or.cz link pick a311a64 Reordered analogies in "Work How You Want" pick 100834f Added push target to Makefile
之后:
- 通过删除行来移去提交。
- 通过为行重新排序行来重新排序提交。
- 替换 pick 使用:
- edit 标记一个提交需要修订。
- reword 改变日志信息。
- squash 将一个提交与其和前一个合并。
- fixup 将一个提交与其和前一个合并,并丢弃日志信息。
保存退出。如果你把一个提交标记为可编辑,那么运行
$ git commit --amend
否则,运行:
$ git rebase --continue
这样尽早提交,经常提交:你之后还可以用 rebase 来规整。
git submodule
在一个主项目中引入 submodule 其实 git 做了如下三件事情:
- 记录引用的仓库,这样 git 知道从哪里获取代码
- 记录主项目中 submodule 的目录位置,这样 git 知道需要放置的地方
- 记录引用 submodule 的 commit id,这样 git 知道所需要的版本
参考资料
A Visual Git Reference 和中文版图解 Git
用图形的方式解释常用 Git 命令。Git Community Book 中文版
汇集 Git 社区很多精华的一本书,有各种中、高级技巧。Git Magic(简体中文版)
和普通的学习教程所处的角度不同,“为了不陷入细节,我们对特定功能提供大面上的讲解。在反复应用之后,慢慢地你会理 解每个小技巧如何工作,以及如何组合这些技巧以满足你的需求。”Git学习教程(翻译)
参考了 Git 学习教程(五):Git 标签,学起来很方便,排版和例子都清晰明了。Quick reference guides(从上面网站发现的,使用起来很方便)
GotGitHub
关于 GitHub 方方面面的书,很实用,尤其可以通过书内容的源码,学习 reStructuredText 的使用。其实找到这本书是因为搜索轻量级标记语言发现的,里面常用轻量级标记语言对照非常实用。Git权威指南
中文 Git 书籍,大块头,500 多页。Git Reference 和中文版 Git 参考手册
This is meant to be a quick reference for learning and remembering the most important and commonly used Git commands. The commands are organized into sections of the type of operation you may be trying to do, and will present the common options and commands needed to accomplish these common tasks.
目的是为学习与记忆 Git 使用中最重要、最普遍的命令提供快速翻阅。这些命令以您可能需要的操作类型划分,并且将提供日常使用中需要的一些常用的命令以及参数。