23 votes

Est-il possible de copier (et non de cloner) un dépôt git en utilisant les commandes Unix de base ?

Je suis assez novice dans l'utilisation de git et je me demandais s'il était possible de copier un dépôt Git avec des commandes UNIX courantes (comme cp o tar / untag ), plutôt que par l'intermédiaire de git clone .

Je suis dans une situation où j'ai un environnement de production (Python virtuel) qui contient du code vérifié dans git. Je me demande si c'est une mauvaise idée, du point de vue de git, de copier l'ensemble de l'environnement à l'aide d'un fichier tar ou quelque chose comme ça. Cette approche serait pratique pour faire une copie rapide d'une base de code/d'un environnement.

Je crains que git clone n'associe un identifiant unique à la copie de travail, ce qui pourrait provoquer des conflits si deux copies de travail existent alors que l'une a été copiée sur le système de fichiers de l'autre.

24voto

new123456 Points 4257

C'est tout à fait normal.

git conserve tout son historique, commits, etc. sur le site - il s'agit d'une propriété fondamentale d'un DCVS.

Techniquement parlant, git peut très bien fonctionner avec des dépôts copiés un peu partout, parce que l'intérêt d'un DCVS est que les dépôts copiés ne peuvent pas être utilisés. il n'a pas besoin de savoir ce qui se passe en dehors d'un référentiel donné , et en fait ne le fait pas à moins que vous ne le lui disiez .

Le même principe s'applique ici.

2voto

Darth Android Points 36975

Vous devriez pouvoir copier l'intégralité du répertoire de travail vers n'importe quel autre endroit de votre système et le faire fonctionner normalement lorsque vous utilisez Git, Hg ou SVN. Je ne peux pas me prononcer sur d'autres SCM.

0voto

bk1e Points 13737

Il s'agit d'un cas d'utilisation plus inhabituel, mais...

J'ai vu le repo crée des liens symboliques dans le fichier .git répertoire. Dans ce cas, lorsque vous effectuez une copie, vous devez vous assurer de déréférencer les liens symboliques. Par exemple :

cp -r -L <source-repo-dir> <destination-repo-dir>

0voto

whoan Points 103

C'est correct, mais si vous êtes sur le point de partager votre répertoire avec quelqu'un d'autre, veuillez prendre en compte les points suivants :

  • Votre config Le dossier peut avoir des télécommandes, l'autre personne peut ne pas s'en soucier.
  • Votre logs Le dossier aura des références que vous ne voudrez peut-être pas partager. Git est excellent pour vous permettre de faire des choses désagréables sur votre ordinateur jusqu'à ce que vous soyez à l'aise avec le résultat final, puis de le pousser à distance pour le partager (occasionnellement). Une partie de cette histoire désagréable peut se trouver dans votre reflog, il est donc préférable de ne pas la partager, IMHO.
  • Votre info/exclude peut ignorer certains fichiers seulement vous veulent ignorer.
  • Vous pouvez aussi avoir des crochets, des branches, et un tas d'autres choses qui sont personnelles et que vous préférez ne pas partager...

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X