双推

背景

在完成第一周任务的时候 每天code之后 push到github 与 gitbook中 都要使用:

$ git push hub master 
$ git push book master

来实现双推 有嫌麻烦 但是一直没去改变 程序员是需要精简的

触动 @小赖同学 在Issue中 发表 双推的代码

嗯是该动起来 不能再每日都如上面上面一样的双推了

方案

根据 @小赖同学 提供的stackoverflow问答 去解决

1.使用:

git remote set-url origin --push --add <a remote>
git remote set-url origin --push --add <another remote>

2.修改 本地目录(local repo)中的.git/config

执行

1.从.git/config获得自己github与gitbook的远程库sshhttp url (每个github 远程库都有自己的url 每一本gitbook书籍也一样)因为之前已经设置了两个 remote : hub (代表github中的remote repo)与 book (代表gitbook书籍 remote repo)

[remote "hub"]
    url = [email protected]:JeremiahZhang/pybeginner.git
[remote "book"]
url = https://https://jeremiahzhang:[email protected]/jeremiahzhang/pybeginner.git

apitoken在gitbook用户设置

2.根据git remote set-url origin --push --add <a remote> 添加 remote 设置 添加 gitbook remote repo http url to [hub]中(gitbook的ssh我没有尝试 因为之前实现双推的时候没有用)

git remote set-url remote_name --push --add jeremiahzhang:[email protected]/jeremiahzhang/pybeginner.git

remote_name 必须是我现有的 remote (此处我选择自己的remote为 hub )可以在.git/config查看 也可以直接在git bash 中运行 git remote查看

添加之后 .git/config 中出现:

[remote "hub"]
    url = [email protected]:JeremiahZhang/pybeginner.git
    fetch = +refs/heads/*:refs/remotes/hub/*
    pushurl = https://jeremiahzhang:[email protected]/jeremiahzhang/pybeginner.git

新增了

pushurl = https://jeremiahzhang:[email protected]/jeremiahzhang/pybeginner.git

3.以防万一 直接在hub中添加自己原先的ssh

git remote set-url remote_name --push --add [email protected]:JeremiahZhang/pybeginner.git

同样.git/config的变化可查看:

[remote "hub"]
url = [email protected]:JeremiahZhang/pybeginner.git
fetch = +refs/heads/*:refs/remotes/hub/*
pushurl = jeremiahzhang:[email protected]/jeremiahzhang/pybeginner.git
pushurl = [email protected]:JeremiahZhang/pybeginner.git

4.修改.git/config的 alias 【alias就是git 命令的 昵称或绰号】

[alias]
    co = checkout
    ci = commit -m
    st = status
    br = branch
    pu = push hub master
    pl = pull
    ad = add --a
    hist = log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short
    type = cat-file -t
    dump = cat-file -p
    rf = reflog

5.修改本地文件内容 git ad git cigit pu 就实现双推 立即化简了上面 需要两次 git push

修改

考虑到 hub 已经是一个 remote 名字 就修改 添加一个新的 remote origin

1-直接在.git/config中添加如下代码:

[remote "origin"]
    pushurl = https://jeremiahzhang:[email protected]/jeremiahzhang/pybeginner.git
    pushurl = [email protected]:JeremiahZhang/pybeginner.git

2-[alias]中 修改push的绰号

pu = push hub master

3-测试 git pu 成功

反思

  • DRP记住 不要重复我自己 所以当发现重复复杂的行为的时候 立即思考 搜索没有有精简的办法
  • 其实一切以上只要修改.git/config文件中代码就行了 不过还是进行命令行的可操行和拓展性更强 就像之前群里说的160推
  • 看看接下来能不能实现160推 。。。推 拓展 big picture

10/19/2015 9:51:59 PM 添加