Nous utilisons un référentiel git pour stocker notre projet. Nos succursales partent de la succursale d'origine. Mais maintenant, nous voulons créer un nouveau petit projet pour suivre une 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
Push semble bien pousser la branche, mais lorsque je fais une extraction ou une extraction, il télécharge des informations depuis d'autres branches, puis j'obtiens également des fichiers supplémentaires provenant d'autres projets. Quelle est la meilleure solution?
Vous pouvez créer une branche en tant qu'orphelin:
git checkout --Orphan <branchname>
Cela créera une nouvelle branche sans parents. Ensuite, vous pouvez effacer le répertoire de travail avec:
git rm --cached -r .
et ajoutez les fichiers de documentation, validez-les et envoyez-les au github.
Une extraction ou une extraction 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 les spécifier.
La bonne réponse est de créer une branche orpheline. J'explique comment faire cela en détail sur mon blog: http://sidja.in/post/62663941071
...
Avant de commencer, effectuez une mise à niveau vers la dernière version de GIT. Pour vous assurer que vous utilisez la dernière version, exécutez
which git
Si une ancienne version est recrachée, vous devrez peut-être étoffer votre PATH avec le dossier contenant la version que vous venez d'installer.
Ok, nous sommes prêts. Après avoir créé un cd dans le dossier contenant votre commande git, créez une branche orpheline. Pour cet exemple, je nommerai la branche "mybranch".
git checkout --Orphan mybranch
Supprimer tout dans la branche Orphan
git rm -rf .
Faire des changements
vi README.txt
Ajouter et valider les modifications
git add README.txt git commit -m "Adding readme file"
C'est ça. Si tu cours
git log
vous remarquerez que l'historique de validation commence à partir de zéro. Pour revenir à votre branche principale, lancez simplement
git checkout master
Vous pouvez revenir à la branche Orphan en exécutant
git checkout mybranch
Créez une nouvelle branche vide comme ceci:
true | git mktree | xargs git commit-tree | xargs git branch proj-doc
Si vos fichiers proj-doc sont déjà dans une validation sous un seul sous-répertoire, vous pouvez créer la nouvelle branche de cette façon:
git commit-tree thatcommit:path/to/dir | xargs git branch proj-doc
ce qui pourrait être plus pratique que git branch --Orphan
si cela vous laissait beaucoup de git rm
et git mv
ing à faire.
Essayer
git branch --set-upstream proj-doc Origin/proj-doc
et voyez si cela vous aide avec votre problème d'extraction trop. De plus, si vous ne voulez vraiment que chercher une seule branche, il est plus sûr de simplement la spécifier sur la ligne de commande.
Disons que vous avez une branche master
avec des fichiers/répertoires:
> git branch
master
> ls -la # (files and dirs which you may keep in master)
.git
directory1
directory2
file_1
..
file_n
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 dans la branche master
. 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 branches:
git checkout master
git checkout new_branch
si la version de git n'a pas l'option --Orphan, cette méthode doit être utilisée;
git symbolic-ref HEAD refs/heads/<newbranch>
rm .git/index
git clean -fdx
Après avoir fait quelques travaux
git add -A
git commit -m <message>
git Push Origin <newbranch>