好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

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

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

E-Mail : Mike_Zhang@live.com

 

分类:  python

标签:  python ,  git

作者: Leo_wl

    

出处: http://www.cnblogs.com/Leo_wl/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于git仓库合并(向原有git仓库中加入新仓库)的详细内容...

  阅读:43次