EnglishFrenchSpanish

OnWorks favicon

git-clone-subset - Online in the Cloud

Run git-clone-subset in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command git-clone-subset that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

PROGRAM:

NAME


git-clone-subset - Clones a subset of a git repository

SYNOPSIS


git-clone-subset [options] repository destination-dir pattern

DESCRIPTION


Clones a repository into a destination-dir and runs on the clone
git filter-branch --prune-empty --tree-filter 'git rm ...' -- --all
to prune from history all files except the ones matching pattern, effectively creating a
clone with a subset of files (and history) of the original repository.

Useful for creating a new repository out of a set of files from another repository,
migrating (only) their associated history. Very similar to what
git filter-branch --subdirectory-filter
does, but for a file pattern instead of just a single directory.

OPTIONS


-h, --help
show usage information.

repository
URL or local path to the git repository to be cloned.

destination-dir
Directory to create the clone. Same rules for git-clone applies: it will be
created if it does not exist and it must be empty otherwise. But, unlike git-
clone, this argument is not optional: git-clone uses several rules to determine
the "Humane" dir name of a cloned repo, and git-clone-subset will not risk parse
its output, let alone predict the chosen name.

pattern Glob pattern to match the desired files/dirs. It will be ultimately evaluated by a
call to bash, NOT git or sh, using extended glob '!(<pattern>)' rule. Quote it or
escape it on command line, so it does not get evaluated prematurely by your
current shell. Only a single pattern is allowed: if more are required, use
extglob's "|" syntax. Globs will be evaluated with bash's shopt dotglob set, so
beware. Patterns should not contain spaces or special chars like " ' $ ( ) { } `,
not even quoted or escaped, since that might interphere with the !() syntax after
pattern expansion.

Pattern Examples:

"*.png"
"*.png|*icon*"
"*.h|src/|lib"

LIMITATIONS


Renames are NOT followed. As a workaround, list the rename history with 'git log --follow
--name-status --format='%H' -- file | grep "^[RAD]"' and include all multiple names of a
file in the pattern, as in "currentname|oldname|initialname". As a side efect, if a
different file has taken place of an old name, it will be preserved too, and there is no
way around this using this tool.

There is no (easy) way to keep some files in a dir: using 'dir/foo*' as pattern will not
work. So keep the whole dir and remove files afterwards, using git filter-branch and a
(quite complex) combination of cloning, remote add, rebases, etc.

Pattern matching is quite limited, and many of bash's escaping and quoting does not work
properly when pattern is expanded inside !().

Use git-clone-subset online using onworks.net services


Free Servers & Workstations

Download Windows & Linux apps

  • 1
    subconverter
    subconverter
    Utility to convert between various
    subscription format. Shadowrocket users
    should use ss, ssr or v2ray as target.
    You can add &remark= to
    Telegram-liked HT...
    Download subconverter
  • 2
    SWASH
    SWASH
    SWASH is a general-purpose numerical
    tool for simulating unsteady,
    non-hydrostatic, free-surface,
    rotational flow and transport phenomena
    in coastal waters as ...
    Download SWASH
  • 3
    VBA-M (Archived - Now on Github)
    VBA-M (Archived - Now on Github)
    Project has moved to
    https://github.com/visualboyadvance-m/visualboyadvance-m
    Features:Cheat creationsave statesmulti
    system, supports gba, gbc, gb, sgb,
    sgb2Tu...
    Download VBA-M (Archived - Now on Github)
  • 4
    Stacer
    Stacer
    Linux System Optimizer and Monitoring
    Github Repository:
    https://github.com/oguzhaninan/Stacer.
    Audience: End Users/Desktop. User
    interface: Qt. Programming La...
    Download Stacer
  • 5
    OrangeFox
    OrangeFox
    Fork of TeamWinRecoveryProject(TWRP)
    with many additional functions, redesign
    and more Features:Supports Treble and
    non-Treble ROMsUp-to-date Oreo kernel,
    built...
    Download OrangeFox
  • 6
    itop - ITSM  CMDB OpenSource
    itop - ITSM CMDB OpenSource
    IT Operations Portal: a complete open
    source, ITIL, web based service
    management tool including a fully
    customizable CMDB, a helpdesk system and
    a document man...
    Download itop - ITSM CMDB OpenSource
  • More »

Linux commands

Ad