10
votes

GIT: Ignorer la compilée Google Go

Mon code Go compilé ne se termine pas avec une extension sur Linux.

Tous conseils pour manipuler ceux-ci dans le fichier .gitignore?


9 commentaires

Est-il possible d'ignorer les fichiers par type de fichier / mime avec git?


Google va-t-il vraiment pas utiliser une extension pour ses fichiers compilés? Si oui, cette langue meurt-elle vraiment très rapidement (ou ne sera jamais pleinement née) ...


Est-il juste de suggérer que vous devriez écrire et exécuter propre avant de faire votre git travail?


Eh bien, cela crée des exécutables lors de la construction. Donc, sur Windows, nous obtenons un fichier .exe, tandis que sur Linux, nous obtenons un elfe qui n'a pas d'extension de fichier (au moins par défaut).


Extension du commentaire de Sarnold, vous pouvez créer un crochet de pré-validation pour exécuter faire propre avant chaque commit.


Je pense que Sarnold et les suggestions de 3Electrogo sont une bonne idée ici. Utilisation de Go Clean Je peux les essuyer dans le répertoire actuel, mais pas les sous-répertoires. Il pourrait y avoir une fonctionnalité construite dans le package propre, mais je dois jeter un coup d'œil à la source golang.org/src/cmd/go/clean.go Edit: Le drapeau -r provoque une utilisation propre à appliquer de manière récursive à toutes les 50 dépendances des packages nommés par les chemins d'importation. Cela fonctionnerait donc tant que le sous-répertoire a été appelé par les éléments de Toplevel.


@Matthew: les exécutables Linux n'ont normalement pas d'extensions, quelle que soit leur langue. C'est des objets et des bibliothèques qui font.


@JEfromi: correct. Une chose que j'ai faite maintenant consiste à ajouter une entrée telle que *. Construire à mon gitiignore, puis exécutez la construction go buande -o prog.build PROG Pour construire PROG.


Les deux Test et Go Install Typiquement (dépend de votre env) produisent un binaire en dehors du répertoire où sont les sources. Pourquoi devez-vous utiliser Go Catégorie dans votre référentiel?


4 Réponses :


3
votes

Ajoutez simplement les noms des fichiers de votre .gitignore ? Fastidieux, mais cela fonctionnera.


1 commentaires

True, mais je pourrais alors aussi ajouter manuellement chaque fichier à mon git ajout de routine. J'espère que quelqu'un pourrait avoir un tour pour le faire de manière plus portable.



2
votes

Le .gitignore langue n'est pas terminé. Il ne peut correspondre que des modèles assez simples. Cela signifie simplement que vous avez besoin de quelque chose d'autre qui peut déterminer les exécutables possibles à exclure. Donc, écrivez un script qui crée .gitignore en fonction des noms des exécutables pouvant être créés. Si vous voulez être fantaisie, faites un alias qui l'exécute avant git Ajouter .


0 commentaires

8
votes

Gardez vos produits de construction séparés de votre code source. Cela présente plusieurs avantages:

  • Vous pouvez démarrer de nombreuses constructions différentes du même code en même temps sans créer plusieurs clones
  • Il est facile d'être sûr que vous avez vraiment fait une propreté; rm -rf objdir supprimera des fichiers qu'un buggy est propre manquera
  • Vous pouvez lancer une construction à partir d'une copie en lecture seule de l'arborescence source (par exemple, CD-ROM)
  • Vous êtes moins susceptible de commettre accidentellement des fichiers générés
  • git clean -dxf nettoie votre arborescence source, mais ne touchez pas vos fichiers construits

    Notez que GNU Automake et apportez une fonctionnalité appelée VPATH < / a> Pour faciliter la séparation de l'arborescence source de l'arbre de construction.


0 commentaires

13
votes

Si vous utilisez l'outil Go pour créer votre code, vous pouvez utiliser le drapeau -o pour spécifier le nom du fichier de sortie, de sorte que vous pouvez par exemple utiliser Go Build -O bin / elf puis ajoutez bin / * à votre .gitignore fichier.


0 commentaires