User

Difference between revisions of "Clément Démoulins"

From LRDE

Line 4: Line 4:
   
 
<syntaxhighlight lang="bash" enclose="div">
 
<syntaxhighlight lang="bash" enclose="div">
  +
# Clone du dépôt
 
git clone git@git:lrde-publis.git
 
git clone git@git:lrde-publis.git
 
git clone --no-hardlinks lrde-publis vcsn-publis
 
git clone --no-hardlinks lrde-publis vcsn-publis
 
cd vcsn-publis
 
cd vcsn-publis
  +
git filter
 
  +
# Filtre tout sauf ce qui match la pattern
  +
git filter-branch --prune-empty --index-filter "git rm -r --cached --ignore-unmatch $(git log -p | sed -rne 's/^diff --git a\/([^/]+)\/?.* b\/.*$/\1/ p' | sort -u | egrep -v '(\.fsmnlp|\.ciaa|\.poosc|\.vaucanson|\.gitignore|\.gitmodules)$' | xargs echo)" HEAD
  +
  +
# Nettoyage du dépôt
  +
git remote rm origin
  +
git update-ref -d refs/original/refs/heads/master
  +
git reflog expire --expire=now --all
  +
git repack -ad
 
</syntaxhighlight>
 
</syntaxhighlight>

Revision as of 17:00, 7 March 2014

Extraire des sous dossiers d'un dépôt git

Exemple, on veut extraire les papiers de Vaucanson du dépôt commun lrde-publis.

# Clone du dépôt
git clone git@git:lrde-publis.git
git clone --no-hardlinks lrde-publis vcsn-publis
cd vcsn-publis

# Filtre tout sauf ce qui match la pattern
git filter-branch --prune-empty --index-filter "git rm -r --cached --ignore-unmatch $(git log -p | sed -rne 's/^diff --git a\/([^/]+)\/?.* b\/.*$/\1/ p' | sort -u | egrep -v '(\.fsmnlp|\.ciaa|\.poosc|\.vaucanson|\.gitignore|\.gitmodules)$' | xargs echo)" HEAD

# Nettoyage du dépôt
git remote rm origin
git update-ref -d refs/original/refs/heads/master
git reflog expire --expire=now --all
git repack -ad