L'utilisation de Git et Dropbox efficacement ensemble?
Comment puis-je utiliser Git et Dropbox efficacement ensemble?
- Voir aussi Bradley Wright tutoriel.
- Si vous êtes une petite équipe (jusqu'à 5 je pense), puis BitBucket offre l'hébergement gratuit pour les dépôts privés. Paradoxalement, je puis avoir mon local repo sur DropBox, juste au cas où je me déplace entre les ordinateurs lorsque je travaille sur quelque chose.
- Je ne suis pas sûr que votre gestion des versions de redondance est ironique, mais il est probablement très utile
- Son style d'écriture n'était pas très clair. Aussi je crois que la façon dont il met à jour le dossier de travail de la télécommande repo est pas défini. Soit ça, ou je n'ai pas trouvé cette partie de l'article.
- Cette question n'est pas claire. Que signifie le fait d'utiliser ces outils ensemble "efficacement"? C'est aussi trop large, et susceptibles de générer des opinions des réponses.
- Si vous préférez Google drive case stackoverflow.com/a/21231900/1356559
- Hey pourriez vous s'il vous plaît envisager de ma réponse comme correcte: stackoverflow.com/a/32215708/589667. Cette bibliothèque que je mentionne dans ma réponse est un outil officiel construit par dropbox développeurs pour aider les gens à utiliser Git avec Dropbox.
- La question est quelque peu ambiguë... Êtes-vous essayer d'éviter d'avoir un github/bitbucket compte et au lieu d'avoir dropbox comme origine? Ou êtes-vous en essayant de garder le repos que vous avez vérifié au travail et à la maison de la synchronisation? Je suis actuellement à la recherche pour le dernier. Personne ne sait si son coffre-fort pour garder le contrôle dépôts sous dropbox?
Vous devez vous connecter pour publier un commentaire.
Je pense que Git sur Dropbox est grande. Je l'utilise tout le temps. J'ai plusieurs ordinateurs (deux à la maison et au travail) que j'utilise Dropbox comme une centrale de dépôt nu. Depuis que je ne veux pas l'héberger sur un service public, et je n'ai pas accès à un serveur que je peux toujours ssh, Dropbox prend soin de ce par la synchronisation (très rapidement) à l'arrière-plan.
L'installation est quelque chose comme ceci:
À partir de là, vous pouvez simplement clone
~/Dropbox/git/project.git
que vous avez associés à votre compte Dropbox (ou d'avoir partagé ce répertoire avec les gens), vous pouvez faire tout à la normale Git opérations et ils seront synchronisées sur tous vos autres machines automatiquement.J'ai écrit un post de blog, Sur Le Contrôle De Version, (ancien lien mort) sur mon raisonnement et comment j'ai configurer mon environnement, c'est basé sur mon Ruby on Rails de l'expérience de développement, mais il peut être appliqué à n'importe quoi, vraiment.
git push -u origin master
;- u, jeux de sorte quegit push
etgit pull
va sans le travail "origine de maître" peu la prochaine fois.La bonne façon de le faire est d'utiliser la commande git remote-dropbox: https://github.com/anishathalye/git-remote-dropbox
De la création de votre propre nue repo dans Dropbox cause beaucoup de problèmes. Anish (le créateur de la bibliothèque) explique mieux:
Cette réponse est fondée sur Mercurial expérience, pas de Git, mais cette expérience indique à l'aide de Dropbox de cette façon est de demander pour corrompre les référentiels si il ya même une chance que vous aurez de la mise à jour de la même Dropbox-référentiel à partir de machines différentes à différents moments (Mac, Unix, Windows dans mon cas).
Je n'ai pas une liste complète des choses qui peuvent mal se passer, mais voici un exemple qui m'a mordu. Chaque machine a sa propre idée de la ligne de fin de caractères et comment les caractères majuscules/minuscules sont traitées dans les noms de fichier. Dropbox et Git/Mercurial gérer cela de manière légèrement différente (je ne me souviens pas les différences exactes). Si Dropbox met à jour le référentiel derrière Git/Mercurial est de retour, presto, cassé référentiel. Cela se produit immédiatement et de manière invisible, de sorte que vous ne connaissez même pas votre référentiel est interrompue jusqu'à ce que vous essayez de récupérer quelque chose.
Après creusement d'un gâchis faire les choses de cette façon, j'ai été en utilisant la recette suivante, avec grand succès, et aucun signe de problèmes. Il suffit de déplacer votre référentiel de Dropbox. Utiliser Dropbox pour tout le reste; la documentation, Les fichiers JAR, tout ce que vous s'il vous plaît. Et l'utilisation GitHub (Git) ou Bitbucket (Mercurial) pour gérer le référentiel lui-même. Les deux sont gratuits, donc ce n'ajoute rien à l'coûts, et chaque outil joue désormais à ses forces.
L'exécution de la commande Git/Mercurial sur le dessus de Dropbox n'ajoute rien à l'exception du risque. Ne pas le faire.
git gc
, ce qui peut se faire automatiquement...En ce qui concerne les petites équipes à l'aide de Dropbox:
Si chaque développeur dispose de son propre écriture dépôt nu sur Dropbox, qui est tirez seulement à d'autres développeurs, alors cela facilite le partage de code avec aucun risque de corruption!
Alors si vous voulez une centralisation de la 'principale', vous pouvez avoir un développeur de gérer tous les pousse à partir de leur propre repo.
Je ne voulais pas mettre tous mes projets en vertu d'un dépôt Git, et je n'ai envie d'y aller et d'exécuter ce code pour chaque projet, j'ai donc fait un Bash script qui permettra d'automatiser le processus. Vous pouvez l'utiliser sur un ou plusieurs répertoires -, donc il peut faire le code dans ce post pour vous ou il peut le faire sur plusieurs projets à la fois.
Je ne pense pas que l'utilisation de Git et Dropbox est le chemin à parcourir... Juste penser à la fois les fonctions de:
Git:
Dropbox:
Et si vous êtes inquiet à partager certains de vos fichiers, pourquoi ne pas cipher eux? Et puis vous pouvez obtenir le plus grand avantage de Dropbox pour Git, c'est-à-public et privé fichiers...
Il est maintenant en 2015, et comme il y a trois jours, un nouvel outil basé sur Dropbox API v2 a été créé pour utiliser en toute sécurité git sur Dropbox. Il fonctionne à l'encontre de l'API plutôt que d'utiliser le client de bureau, et gère correctement les multiples et simultanées pousse à un référentiel hébergé dans un dossier partagé.
Une fois configuré, il permet de configurer un git remote exactement comme n'importe quel autre git remote.
J'utilise Mercurial (ou Git) + TrueCrypt + Dropbox pour chiffré distance sauvegardes.
Le plus cool, c'est que Dropbox n'a PAS de synchronisation de l'ensemble du conteneur TrueCrypt si vous modifiez une petite partie de votre code. La synchronisation de l'heure est à peu près proportionnelle à la quantité de changements. Même si c'est crypté, la combinaison de TrueCrypt + Dropbox fait une excellente utilisation de l'algorithme de chiffrement par bloc + au niveau du bloc de synchronisation.
Deuxièmement, monolithique conteneur chiffré non seulement ajoute à la sécurité, il réduit également les chances de référentiel la corruption .
Attention: Cependant, vous devez être très prudent de ne pas avoir le conteneur monté lors de Dropbox est en cours d'exécution. Il peut également être une douleur pour résoudre les conflits, si 2 clients différents, vérifiez-en différentes versions pour le conteneur. Donc, il est pratique que pour une seule personne à l'utiliser pour les sauvegardes, et non pas pour une équipe.
De l'installation:
preserve modification timestamp
*.Utilisation:
P. S. Décochant la
preserve modification timestamp
dit dropbox que le fichier a été modifié et il devrait être synchronisés. Notez que le montage du conteneur modifie le timestamp même si vous ne changez pas de n'importe quel fichier en elle. Si vous ne voulez pas que cela se produise, il suffit de monter le volumeread-only
J'ai été en utilisant Mercurial dans la manière recommandée, et insister pour que vous soyez prudent, surtout si l'une des machines différentes. La Dropbox forums sont remplis de plaintes de mystérieux nom de fichier cas de problèmes de tourner spontanément. Hg (et je présume que Git) ne sera pas un avis ou de se plaindre au cours de la routine archivages et vous aurez seulement entendre au sujet de la corruption quand il se plaint de la corruption repo lorsque vous essayez de l'utiliser pour de vrai. Les mauvaises nouvelles. Souhaite que je pourrais être plus précis sur le problème et ses solutions de contournement; je suis encore à essayer de creuser de ce gâchis moi-même.
J'adore la réponse de Dan mcnevin création! J'utilise Git et Dropbox ensemble trop maintenant, et je suis en utilisant plusieurs alias dans mon .bash_profile donc mon flux de travail ressemble à ceci:
Ce sont mes alias:
Nous utilisons cette méthode (la création d'un dépôt nu dans Dropbox) sur un dossier de partage.
Un petit groupe de développeurs peuvent tirer à partir de ce nu dépôt synchronisé et de créer un clone local. Une fois que l'unité de travail est fait, à nous pousser vers l'origine.
Une chose me manque, c'est une bonne façon de recevoir un e-mail envoyé avec le changement-informations sur le jeu une fois, une poussée vers l'origine se produit. Nous sommes à l'aide de Google Wave manuellement garder la trace des modifications apportées.
Il y a aussi un projet open source (une collection de croix-plate-forme [Linux, Mac, Win] scripts) qui ne tous les moindres détails de la gestion du référentiel avec une poignée (3-4) de commandes.
https://github.com/karalabe/gitbox/wiki
Exemple d'utilisation est:
Après normal de git utilisation:
Vérifier le projet wiki et les manuels de plein référence de la commande et des tutoriels.
- Je stocker mes non-dépôt Github sur Dropbox. Une mise en garde que j'ai rencontré a été la synchronisation après une réinstallation. Dropbox va télécharger les fichiers plus petites d'abord, avant de passer à de plus grands. Pas un problème si vous commencez à partir de la nuit et de revenir après le week-end 🙂
Mon thread - http://forums.dropbox.com/topic.php?id=29984&replies=6
J'aime le haut-voté réponse par Dan mcnevin création. J'ai fini par faire la séquence de commandes git trop de fois et a décidé de faire un script. Il est donc ici:
Le script ne nécessite qu'un nom de projet. Il va générer un dépôt git dans
~/Dropbox/git/
sous le nom spécifié et pousser l'ensemble du contenu du répertoire en cours pour le nouvellement créé origine de la branche master. Si plus d'un nom de projet est donné, le plus à droite de projet nom de l'argument sera utilisé.En option, la commande-r argument spécifie la distance de la branche qui va pousser à l'origine de maître. L'emplacement de l'origine du projet avec le maître peut également être spécifié avec l'argument-m. Un défaut .gitignore fichier est également placé dans la branche distante répertoire. L'annuaire et .gitignore fichier par défaut sont spécifiées dans le script.
Maintenant en 2014, j'ai été en utilisant Git et Dropbox pour environ un an et demi sans problème.
Quelques points cependant:
git push
pousse à un dépôt distant, de sorte que si jamais il est corrompu, je peux facilement le récupérer.C:\Users
avecmklink /D link target
parce que certaines bibliothèques ont souligné absolue endroits.J'ai été confronté à un problème similaire et qui ont créé un petit script pour la même chose. L'idée est d'utiliser Dropbox avec Git aussi simplement que possible. Actuellement, j'ai rapidement mis en œuvre Ruby code, et je vais bientôt ajouter plus.
Le script est accessible à
https://github.com/nuttylabs/box-git
.Une autre approche:
Toutes les réponses jusqu'à présent, y compris @Dan réponse qui est le plus populaire, l'idée de l'utilisation de Dropbox pour centraliser un référentiel commun au lieu d'utiliser un service axé sur git comme github, bitbucket, etc.
Mais, comme la question d'origine ne précise pas ce qu'à l'aide de "Git et Dropbox ensemble de manière efficace" signifie vraiment, nous allons travailler sur une autre approche:
"Utilisation de Dropbox pour synchroniser uniquement les worktree."
Comment a ces étapes:
dans le répertoire du projet, on crée un vide
.git
répertoire (par exemplemkdir -p myproject/.git
)de l'onu de synchronisation de la
.git
répertoire Dropbox. Si vous utilisez l'Application Dropbox: allez dans les Préférences, de Synchronisation, et de "choisir les dossiers à synchroniser", où le.git
répertoire doit obtenir banalisée. Cela permettra d'éliminer l'.git
répertoire.exécuter
git init
dans le répertoire du projetIl fonctionne également si le
.git
existe déjà, alors seulement l'étape 2. Dropbox va conserver une copie de l'git fichiers dans le site web si.L'étape 2 sera la cause de Dropbox ne pas synchroniser le git de la structure du système, qui est le résultat attendu de cette approche.
Pourquoi utiliser cette approche?
Le pas-encore-poussé changements auront un Dropbox sauvegarde, et qu'ils seront synchronisés à travers les dispositifs.
Dans le cas de Dropbox vis quelque chose lors de la synchronisation entre les appareils,
git status
etgit diff
avoir à portée de main pour arranger les choses.Il économise de l'espace dans votre compte Dropbox (l'ensemble de l'histoire ne doit pas être stockés, y)
Il évite les préoccupations soulevées par @dubek et @Ates dans les commentaires sur @Dan réponse, et les préoccupations par @ava dans une autre réponse.
L'existence d'une distance de quelque part d'autre (github, etc.) fonctionne correctement avec cette approche.
De travail dans les différentes branches apporte quelques questions, qui doivent être pris en charge de:
Un problème potentiel est d'avoir Dropbox (inutilement?) la synchronisation potentiellement de nombreux fichiers lorsque l'on vérifie sur les différentes branches.
Si deux ou plus de Dropbox appareils synchronisés ont différentes branches vérifié, non engagé des changements pour les deux appareils peuvent être perdus,
Un moyen de contourner ces problèmes est d'utiliser
git worktree
de garder direction des extractions dans des répertoires distincts.Pour mes 2 cents Dropbox ne fait sens pour un usage personnel où vous ne voulez pas vous embêter à l'obtention d'une centrale des pensions de l'hôte. Pour tout travail de développement, vous aurez probablement de créer plus de problèmes que vous aurez à résoudre, comme il a été mentionné plusieurs fois dans le thread déjà, Dropbox n'est pas conçu pour ce cas d'utilisation. Cela dit, parfaitement méthode sûre pour le vidage de dépôts sur Dropbox sans aucun plugins tiers ou des outils est d'utiliser des faisceaux. J'ai le texte suivant alias dans mon
.gitconfig
pour enregistrer tapant:Exemple:
Sans l'aide de tiers outils d'intégration, j'ai pu améliorer l'état d'un bit et l'utilisation de DropBox et d'autres semblables cloud disque de services tels que SpiderOak avec Git.
L'objectif est d'éviter la synchronisation dans le milieu de ces fichiers de modifications, il peut télécharger une partielle de l'etat et ensuite télécharger le dos, complètement corrompre votre git état.
Pour éviter ce problème, j'ai fait:
git bundle create my_repo.git --all
.Il n'est pas parfait, comme il n'y a aucune garantie qu'il ne sera pas gâcher le git de l'état nouveau, mais il aide et pour le moment je n'ai pas eu aucun problème.