Nous utilisons un référentiel git pour stocker notre projet. Nous avons nos succursales au départ de la succursale d'origine. Mais maintenant, nous voulons créer un petit nouveau projet pour suivre la documentation. Pour cela, nous voudrions créer une nouvelle branche vide pour commencer à stocker nos fichiers, et je voudrais que d'autres utilisateurs du réseau clonent cette branche.
Comment pouvons-nous faire cela?
J'ai essayé certaines choses, mais elles n'ont pas fonctionné.
$ mkdir proj_doc; cd proj_doc
$ git init
$ git add .
$ git commit -m 'first commit'
$ git br proj_doc
$ git co proj_doc
$ git br -d master
$ git push origin proj_doc
Cela semble pousser la branche ok, mais quand je fais une extraction ou une extraction, elle télécharge des informations à partir d'autres branches, puis j'obtiens également des fichiers supplémentaires à partir d'autres projets. Quelle est la meilleure solution?
git
branch
git-branch
fazineroso
la source
la source
submodule
dans le projet d'origine, par exemple endocs/
pointant vers cet autre dépôt. Ou, si vous souhaitez fusionner le code ultérieurement, ajoutez-le en tant que télécommande..gitignore
fichiers et également basculer constamment entre les deux racines (branches). Je suis donc également pour la nouvelle approche repo, dans un nouveau dossier, ayant les mêmes télécommandes et poussant vers une autre branche.Réponses:
Vous pouvez créer une branche en tant qu'orphelin:
Cela va créer une nouvelle branche sans parents. Ensuite, vous pouvez effacer le répertoire de travail avec:
et ajoutez les fichiers de documentation, validez-les et poussez-les vers github.
Un pull ou fetch mettra toujours à jour les informations locales sur toutes les branches distantes. Si vous souhaitez uniquement extraire / récupérer les informations d'une seule branche distante, vous devez le spécifier.
la source
git checkout --orphan <branch>
; Je ne vois aucune liste de <branch> dansgit branch
.git checkout --orphan
on peut utilisergit reset --hard
pour supprimer les fichiers restants.git checkout --orphan <branch>
est parce qu'elle n'a pas encore de commit. Après le premier commitgit branch
imprime la nouvelle branche.La bonne réponse est de créer une branche orpheline. J'explique comment faire cela en détail sur mon blog. (Lien archivé)
la source
Créez une nouvelle branche vide comme ceci:
Si vos fichiers proj-doc sont déjà dans un commit sous un seul sous-répertoire, vous pouvez créer la nouvelle branche de cette façon:
qui pourrait être plus pratique que
git branch --orphan
si cela vous laisse avec beaucoup degit rm
etgit mv
ing à faire.Essayer
et voyez si cela vous aide à résoudre votre problème de récupération. De plus, si vous ne voulez vraiment récupérer qu'une seule branche, il est plus sûr de simplement la spécifier sur la ligne de commande.
la source
git checkout --orphan new-branch; git reset --hard
xargs
?Si votre version git n'a pas l'option --orphan, cette méthode doit être utilisée:
Après avoir fait du travail:
la source
git clean
pouvez supprimer des fichiers que vous ne souhaitez pas supprimer! Exécutez d'git clean -ndx
abord pour voir quels fichiers il supprimera avant de l'exécuter pour de vrai avec l'-f
option.Disons que vous avez une
master
branche avec des fichiers / répertoires:Étape par étape, comment créer une branche vide:
git checkout —orphan new_branch_name
ls -la |awk '{print $9}' |grep -v git |xargs -I _ rm -rf ./_
git rm -rf .
touch new_file
git add new_file
git commit -m 'added first file in the new branch'
git push origin new_branch_name
À l'étape 2, nous supprimons simplement tous les fichiers localement pour éviter toute confusion avec les fichiers de votre nouvelle branche et ceux que vous gardez en
master
branche. Ensuite, nous dissocions tous ces fichiers à l'étape 3. Enfin, les étapes 4 et suivantes fonctionnent avec notre nouvelle branche vide.Une fois que vous avez terminé, vous pouvez facilement basculer entre vos succursales:
la source
Sur la base de cette réponse de Hiery Nomus .
Vous pouvez créer une branche en tant qu'orphelin:
Cela va créer une nouvelle branche sans parents. Ensuite, vous pouvez effacer le répertoire de travail avec:
Et puis vous validez simplement la branche avec un commit vide, puis poussez
la source
Consultez cette documentation , elle contient des détails clairs sur
la source
j'ai trouvé cette aide:
la source