zoukankan      html  css  js  c++  java
  • git subtree用法(转)

    git subtree用法

    一.使用场景

    例如,在项目Game中有一个子目录AI。Game和AI分别是一个独立的git项目,可以分开维护。为了避免直接复制粘贴代码,我们希望Game中的AI子目录与AI的git项目关联,有3层意思:

    1.AI子目录使用AI的git项目来填充,内容保持一致。
    2.当AI的git项目代码有更新,可以拉取更新到Game项目的AI子目录来。
    3.反过来,当Game项目的AI子目录有变更,还可以推送这些变更到AI的git项目。
    用git subtree可以轻松满足上面的需求。

    二.git subtree用法

    针对第一段的3条需求,我分别说明具体的命令。

    1. 第一次添加子目录,建立与git项目的关联

    建立关联总共有2条命令。

    语法:git remote add -f <子仓库名> <子仓库地址>
    

    解释:其中-f意思是在添加远程仓库之后,立即执行fetch。

    语法:git subtree add --prefix=<子目录名> <子仓库名> <分支> --squash
    

    解释:–squash意思是把subtree的改动合并成一次commit,这样就不用拉取子项目完整的历史记录。–prefix之后的=等号也可以用空格。

    示例

    $git remote add -f ai https://github.com/aoxu/ai.git  
    $git subtree add --prefix=ai ai master --squash
    

    2. 从远程仓库更新子目录

    更新子目录有2条命令。

    语法:git fetch <远程仓库名> <分支>
    
    语法:git subtree pull --prefix=<子目录名> <远程分支> <分支> --squash
    

    示例

    $git fetch ai master  
    $git subtree pull --prefix=ai ai --squash
    

    3. 从子目录push到远程仓库(确认你有写权限)

    推送子目录的变更有1条命令。

    语法:git subtree push --prefix=<子目录名> <远程分支名> 分支
    

    示例

    $git subtree push --prefix=ai ai master
    

    原文地址:http://cssor.com/git-subtree-usage.html

  • 相关阅读:
    zoj 3627#模拟#枚举
    Codeforces 432D Prefixes and Suffixes kmp
    hdu 4778 Gems Fight! 状压dp
    CodeForces 379D 暴力 枚举
    HDU 4022 stl multiset
    手动转一下田神的2048
    【ZOJ】3785 What day is that day? ——KMP 暴力打表找规律
    poj 3254 状压dp
    C++中运算符的优先级
    内存中的数据对齐
  • 原文地址:https://www.cnblogs.com/jingwhale/p/6054492.html
Copyright © 2011-2022 走看看