git仓库合并(向原有git仓库中加入新仓库)

我经常写随笔,有版本控制的参与会很方便,可有时候由于种种原因(比如网络不通等),我不能clone到本地,而我又要写新的随笔,写的过程中会有很多递交历史,我在合并到随笔文件夹的时候,也想得到递交历史。

现在模拟下这一场景:

1、建立文件夹essays,并添加随笔essay1.md;
2、建立tmp文件夹,添加新随笔essays2.md,添加内容,并完成多次递交;

现在的问题是,我不只是想要tmp文件夹下东西,它的递交历史我也想要;

步骤如下:

1、进入essays文件夹,添加远程分支并:
git remote add tmp ../tmp/
2、抓取远程分支数据到本地仓库:
git fetch tmp
3、产生临时新分支:
git checkout -b tmp tmp/master
4、切回master分支:
git checkout master
5、将临时新分支合并到master分支:
git merge tmp 
6、删除临时分支:
git branch -d tmp

合并后效果如下:

为了方便使用,我这里整理了下,写成python脚本,代码如下(gitReposMerge.py):

#! /usr/bin/python

import os

dir1 = "essays"
dir2 = "../tmp"
tmpBranchName = "tmp"

execCommand = os.system

strCmd1 = "cd %s && git remote add %s %s && git fetch %s  \
&& git checkout -b  %s %s/master && git checkout master  \
&& git merge %s && git branch -d %s && cd .." % (dir1,tmpBranchName,dir2, \
tmpBranchName,tmpBranchName,tmpBranchName,tmpBranchName,tmpBranchName,)
print strCmd1
execCommand(strCmd1)

 

代码使用基于以下目录结构:

即:脚本和git仓库在同一个目录。

执行gitReposMerge.py脚本即可。

本示例的gist链接:https://gist.github.com/mike-zhang/5597980

本文github地址:

https://github.com/mike-zhang/mikeBlogEssays/blob/master/2013/20130517_向原有git仓库中加入新仓库.md

欢迎补充

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值