68 votes

La création de branches sur un projet vide dans git

Disons que je suis sur le point de mettre en œuvre des 3 fonctions différentes dans 3 fichiers différents (fileA, fichierb un fileC) pour un nouveau projet de la mine.

Je pensais que j'avais juste besoin d'ajouter mon (actuellement vide) projet git:

git init

et puis la création de 3 branches:

git branch file1_branch
git branch file2_branch
git branch file3_branch

mais cela ne fonctionne pas:

fatale: Pas un nom d'objet valide: 'maître'.

Pourquoi est-ce?

Peut-être que le problème pourrait être lié que même la branche master n'a pas été créé à ce point? J'ai essayé de faire un git branch. Il a abouti à rien.

J'ai alors pensé à faire un "vide" s'engagent à obliger git pour créer l' master branche:

git commit -m `initial_commit`

mais comme je n'ai pas d'ajouter tous les fichiers dans la zone de transit, il ne fonctionne pas.

Gardez à l'esprit que je suis sur le point de commencer mon projet, donc, à ce moment je n'ai pas de fichiers à ajouter à la commettre!

Comment résoudre ce problème? Suis-je en train de faire quelque chose de mal?

Merci

114voto

Brian Campbell Points 101107

Git représente les branches comme des pointeurs vers le dernier commit dans cette branche. Si vous n'avez pas créé de commettre encore, il n'y a rien pour la branche de point de. Donc on ne peut pas vraiment créer des branches jusqu'à ce que vous avez au moins un commit.

Git représente s'engage en tant que référence à un ou plusieurs parent s'engage (ou un tout-zéros d'un parent si c'est le premier commit), un message de validation et de quelques autres métadonnées, et un arbre de référence. Un arbre est en fait un manifeste de ce qui est dans chaque fichier dans chaque répertoire. Si votre répertoire est vide, il n'y a rien à se mettre sous l'arbre. Maintenant, il est effectivement possible de créer un vide s'engager en tant que votre premier commit, vous pouvez exécuter git commit --allow-empty -m "initial commit". Mais ce n'est pas vraiment une façon courante de l'utilisation de Git.

Dans Git, vous êtes tenus de ne pas utiliser les branches, sauf si vous en avez besoin. Il n'y a pas besoin de créer plusieurs branches jusqu'à ce que vous avez du contenu à la branche. Si vous créez trois branches au tout début de développement, vous n'avez pas d'ancêtre commun entre eux? Dans ce cas, pourquoi ne pas simplement créer trois repos? Ou allez-vous être mise à jour tous les trois dans la synchronisation jusqu'à ce qu'ils commencent à diverger? Cela ressemble à beaucoup de travail supplémentaire pour garder toutes les mises à jour; il faut attendre pour créer jusqu'à leur divergent.

Mais si vous souhaitez utiliser ce flux de travail, vous pouvez exécuter git commit --allow-empty -m "initial commit" créer un vide initial s'engager.

18voto

Frank S. Thomas Points 2071

Vous pouvez faire un vide initial s'engager avec:

git commit --allow-empty

Et puis, vous pouvez créer vos branches que vous le souhaitez.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X