2015-04-17 1 views
1

J'ai deux projets GIT A et B (projet vide). Je veux déplacer l'ensemble du projet A dans le projet B et conserver l'historique des validations tout en déplaçant tous les fichiers de A à B.Préserver l'historique de GIT valide tout en déplaçant un dépôt GIT

Qu'est-ce qu'un moyen efficace de faire cela en utilisant GIT? J'ai essayé d'utiliser git filter-branch mais j'ai l'impression de ne pas le faire correctement car cela me donne "fatal ... xyz/is repository outside". Quelqu'un pourrait-il donner quelques conseils?

Merci!

+1

Si le projet B est un projet vide que vous venez d'initialiser avec 'git init', définissez-le comme un nouveau' remote' du projet B et exécutez 'git push -u remoteb master'. –

+0

Merci pour votre suggestion. Je crois, vous voulez dire nouveau "à distance" du projet A? Est-ce que cette façon de préserver l'histoire de commit git? – psbits

+0

Si vous allez dans votre projet Un dépôt, ajoutez un nouveau 'remote' qui pointe vers le projet B et exécutez ensuite la commande' push' ci-dessus, tout votre historique sera préservé. –

Répondre

1

Voici le workflow complet décrit dans les commentaires de notre question.

Je suppose que vous voulez pousser toute l'histoire de la branche master du projet A à Projet B.

  1. dossier du projet B> Initialisez le git:

    git init

  2. Project Un dossier> Ajouter repo Project B comme une nouvelle télécommande:

    git remote add remoteb <urlToB>

  3. Project Un dossier> Commander la branche appropriée (le cas échéant):

    git checkout master

  4. projet Un dossier> Appuyez sur toute l'histoire de la branche master à remoteb:

    git push -u remoteb master

Si vous voulez des informations supplémentaires En ce qui concerne la commande et les paramètres git push, vous pouvez trouver la documentation officielle ici: git push Documentation

+0

l'étape 1 devrait être 'git init --bare' sinon vous pourriez avoir une erreur comme' remote: erreur: refus de mettre à jour la branche retirée: refs/heads/master' –