web-dev-qa-db-fra.com

Comment créer une nouvelle branche vide pour un nouveau projet

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?

300
fazineroso

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.

588
Hiery Nomus

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
65
Sid Jain

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 mving à 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.

10
jthill

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

Etape par étape, comment créer une branche vide:

  1. git checkout —Orphan new_branch_name
  2. Assurez-vous d'être dans le bon répertoire avant d'exécuter la commande suivante:
    ls -la |awk '{print $9}' |grep -v git |xargs -I _ rm -rf ./_
  3. git rm -rf .
  4. touch new_file
  5. git add new_file
  6. git commit -m 'added first file in the new branch'
  7. 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
6
user1723157

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>
5
cyb0k