zoukankan      html  css  js  c++  java
  • 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

    欢迎补充

  • E-Mail : Mike_Zhang@live.com
  • 转载请注明出处,谢谢!
查看全文
  • 相关阅读:
    方维o2o系统域名绑定破解详解
    smarty 学习笔记一
    手机禁止缩放网页 手机CSS导入
    Android 学习笔记(一)
    自动填充短信验证码(使用ContentObserver)
    分享100个开源android项目源码
    php如何实现验证码
    Zend Studio 13 v13.0.0汉化中文版
    java中的静态方法
    继承代码
  • 原文地址:https://www.cnblogs.com/MikeZhang/p/gitReposMerge_20130517.html
  • Copyright © 2011-2022 走看看