git、还是只有git……

不知道跟assembla.com相识了多久,或许5个月吧。
相见时的惊艳、嘉许、热爱,如今均已消磨殆尽。

尽管高速、无限制、免费,无一不是令我心旷神怡、且一直未变的属性
但只有一点,以project名作为主目录这个方式令我受不了。
这几乎无法让我组织自己的文件,搞不清建几个project比较好。

尽管这一点儿我早早就知道了,自以为也可以接受。
但当bitbucket带着custom domain出现的时候,我选择了叛逃。
在主目录这一点上,bitbucket做的比assembla好了无数倍。

老实说,assembla真的更漂亮,
assembla的新UI比bitbucket的UI在功能上几乎全面超越。
assembla的自我改造意识也很好,经常发用户调查问卷。
可是,当决心抛弃它的时候,那些小缺点们就不知道从哪里冒了出来。
整天被GFW挡在墙外,尽管我可以翻。
整天被SVN与苹果的兼容问题折腾,尽管我也可以解决。

说起svn,我已经受够了……
每次建立一个新的单文件夹工程都很苦逼,
非得checkout、mkdir、commit、checkout、add、commit
这在git下就一remote add、push的事

assembla支持svn,同时也支持git和mercurial
但bitbucket只支持后两者。
有时候,选择太多,真的无从选择。
对svn恋恋不舍,没办法狠下那条心,全面叛逃到git门下。
如今,我觉悟了,和svn说再见,跟各种傻×版本控制UI问题说再见。
我用命令行……我用git……

# 全局规则
git config --global core.excludesfile '~/.gitignore'
git config --global user.name "jhpx"
git config --global user.email "jhpx@hotmail.com"
# 初始化
git init
# 本地提交
git add .
git commit -m "Some message..."
# 第一次远程推送
git remote add origin ssh://git@bitbucket.org/jhpx/xxx.git
git push --all
# 远程推送
git push
# git修改用户名
# 地址:https://help.github.com/articles/changing-author-info
# 脚本:
#!/bin/sh

git filter-branch -f --env-filter '

an="$GIT_AUTHOR_NAME"
am="$GIT_AUTHOR_EMAIL"
cn="$GIT_COMMITTER_NAME"
cm="$GIT_COMMITTER_EMAIL"

if [ "$GIT_COMMITTER_EMAIL" = "jhpx@hotmail.com" ]
then
cn="jhpx"
cm="jhpx@hotmail.com"
fi
if [ "$GIT_AUTHOR_EMAIL" = "jhpx@hotmail.com" ]
then
an="jhpx"
am="jhpx@hotmail.com"
fi

export GIT_AUTHOR_NAME="$an"
export GIT_AUTHOR_EMAIL="$am"
export GIT_COMMITTER_NAME="$cn"
export GIT_COMMITTER_EMAIL="$cm"

直接run就行了,注意只能修改本分支下的所有已提交用户