Est-il possible d'attribuer une branche Git?
Je suis à la recherche dans l'utilisation de git sur une échelle massive. J'espérais pour augmenter l'adoption et de rendre les choses plus facile par l'appel de la branche master du tronc.
Cela peut et va donner SVN utilisateurs un sentiment de confort. Je sais que je peux créer une branche appelée tronc, mais qui semble s'écarter de l'git normes et pourrait causer certains utilisateurs à se confondre.
Je sais que je peux aussi créer et de supprimer des tags à mon coeur, mais quand je caisse ces balises, il me dit qu'il est un non section locale qui est très bien avec moi, mais sans doute pas ce que je veux faire.
Je suis un total git newb mais d'un professionnel expérimenté à la libération et la construction de systèmes.
Ce que je veux faire est d'être en mesure d'appeler maître tronc. J'ai vu la possibilité de faire un alias de commandes cela s'applique pour les noms des versions d'objets ainsi?
Je sais git-svn existe et d'autres outils, mais la surcharge des systèmes de dépôt de couches qui me fait peur.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez renommer la branche master tronc comme Greg l'a suggéré, ou vous pouvez également créer un tronc qui est une référence symbolique à la branche principale de sorte que les deux git et svn les utilisateurs ont la "main" de la branche qu'ils sont utilisés pour.
Remarque que le tronc n'est pas un citoyen de première classe. Si vous commander
trunk
et d'effectuer unegit status
vous sera effectivement àmaster
, cependant, vous pouvez utiliser letrunk
de commande dans tous les lieux que vous utilisez le nom de la branche (journal, fusion, etc.).ln -s
et si vous les mettez à l'envers, git sera heureux (et en silence) clobber de la TÊTE de ref pour le réel de la direction, avec une référence symbolique à quelque chose qui n'existe pas (à ce point, vous feriez mieux d'espérer qu'il est facile de récupérer le bon commettre hachage pour la branche).git branch -d
. Il dé-référencé, même pour cette opération, et vous aurez donc en fait de supprimer la source de la branche, en laissant la référence derrière (et il va même vous permettre de le faire si vous avez actuellement la branche extraite). Vous devez utilisergit symbolic-ref --delete
(ou si vous êtes sur une version plus ancienne, vous devez supprimer manuellement le fichier).Il n'y a rien de spécial sur le nom de "maître" dans Git, il est juste, par convention (et par défaut). Vous pouvez certainement l'appeler "tronc" si vous aimez:
C'est très bien comme Subversion, d'où le nom de "tronc" n'est appelée que par la convention de trop. Vous pourriez avoir appelé la principale branche "master" dans la Subversion.
C'est une sécurité wrapper autour de la technique illustrée dans Charles Bailey réponse.
Veuillez noter qu'un bug dans les versions git 2.7.0 - 2.8.2 (inclus) causé un "git branch" pour afficher "alias -> alias" au lieu de "alias -> branche" de la direction générale des alias. Je recommande la mise à niveau vers 2.8.3 ou plus tard, si vous êtes concerné par ce bug.
En amont demande de fonctionnalité:
https://www.mail-archive.com/[email protected]/msg161274.html
Target refs/heads/-l does not exist.
peu importe quels sont les arguments que j'utilise.Target refs/heads/-l does not exist.
j'ai testé sous bash, et il n'a toujours il. J'ai inversé les arguments, et il n'a toujours il. Je n'aiunalias git
dans zsh, pour s'assurer que rien n'a été interférer, et il n'a toujours il. J'ai utilisé le chemin d'accès complet à git, et il n'a toujours il. J'ai utilisé le chemin d'accès complet àgit-branch-alias
et il n'a toujours il.which -a git
montre 2 versions sur mon système. Je ne pense pas que le second pourrait être en cours d'utilisation, mais ... j'ai/usr/local/bin/git
et/usr/bin/git
, la première plus tôt dans le CHEMIN. La deuxième est 2.5.4.-l
et trouvé un exemple dans legetopt
appel pour définir les options de ligne de commande, et j'ai réalisé que je suis à l'utilisation de la GNUgetopt
de la syntaxe, ce qui n'est pas compatible POSIX, et, en particulier, n'est pas pris en charge par OS x par défaut. Qui pourrait être assez d'informations pour vous de comprendre les modifications appropriées. Si pas, je vais essayer de faire un plus version portable de ce script dans un avenir proche.git branch
affiche symrefs incorrectement commeref -> ref
au lieu deref -> branch
. Versions 2.6.6 et précédemment montrent le bon de sortie, et je crois que la régression sera corrigé dans la prochaine 2.8.x version. Pour les versions concernées vous pouvez utilisergit symbolic-ref
pour vérifier la cible pour une référence donnée. Vous pouvez également utilisergit branch-alias REF
(généralement crée le symref) pour inspecter un déjà existant REF, comme quand il existe déjà le script va vous dire ce qu'il désigne (comme il écope).