À l'aide de la commande git pull pour suivre une branche distante sans fusion
Je suis en utilisant git contenu de la piste qui est changé par certaines personnes et partagé en "lecture seule" avec les autres. Les "lecteurs" peut de temps à autre besoin de faire un changement, mais la plupart du temps ils ne le seront pas.
Je veux permettre à la git "écrivains" rebase poussé des branches** en cas de besoin, et s'assurer que les "lecteurs" jamais accidentellement une fusion. C'est normalement assez facile.
git pull origin +master
Il y a un cas qui semble causer des problèmes. Si un lecteur fait un changement local, la commande ci-dessus va de fusion. Je veux tirer à être entièrement automatique si le lecteur n'a pas fait des changements locaux, tandis que si elles ont fait des changements locaux, elle doit s'arrêter et de demander des commentaires. Je veux de suivre tous les changements en amont, tout en étant prudent au sujet de la fusion en aval des changements.
Dans un sens, je n'ai pas vraiment envie de tirer. Je souhaite suivre la branche master exactement.
** (Je sais que ce n'est pas une bonne pratique, mais il semble nécessaire dans notre cas: nous avons une branche principale qui contient la plupart du travail et un certain sujet branches pour certains clients avec des modifications mineures qui doivent être isolées. Il semble plus facile d'fréquemment rebase pour garder les thèmes jusqu'à la date.)
Avec Git 2.0, vous pouvez essayer de (bientôt)
git config push.ff only
. Voir ma réponse ci-dessousOriginalL'auteur | 2010-06-16
Vous devez vous connecter pour publier un commentaire.
Vous êtes à la recherche pour la commande
git-fetch
.OriginalL'auteur Seamus Connor
Vous pouvez également trouver des
git pull --rebase
utile.Mise à jour:
--rebase
peut être fait par défautpull
comportement en définissantbranch.<name>.rebase = true
sur les différentes branches. Réglagebranch.autosetuprebase = true
va régler cela sur de nouvelles branches par défaut, si les branches existantes doivent être mises à jour manuellement. Ou vous pouvez toujours défaut--rebase
par la mise enpull.rebase = true
à l'échelle mondiale.OriginalL'auteur dahlbyk
Comment sur:
- Je l'utiliser souvent. Malheureusement, comme richard-hansen@ souligné ci-dessous, cela ne fonctionne pas comme un alias:
git help config
: "Pour éviter la confusion et les ennuis avec l'utilisation de script, alias cacher existant git commandes sont ignorées."avez-vous trouvé une solution pour cela, ou est-ce tout simplement impossible à configurer?
Départ avec Git 2.0 vous pouvez faire
git config --global pull.ff only
à causegit pull
à agir commegit pull --ff-only
.nice! Intéressant de noter que si vous étiez à l'aide de rebase=Vrai que vous avez besoin de supprimer cette entrée (comme il a priorité)!
Qui 2.0 config est intéressante, mais pas utile pour moi. Je veux décider quand je veux
--ff-only
, donc j'utilise un bash alias au lieu d'un git alias.OriginalL'auteur cdunn2001
Git 2.0 (T2 2014) ajouter dans s'engager b814da8 une config
push.ff
:OriginalL'auteur VonC
Je pense que vous voulez un flux de travail à l'aide de deux branches. Une fusion de la branche locale (master), et une télécommande 'lecture seule', suivi de la branche (à distance).
Utilisation de deux télécommandes sur une branche master permet de continuer à travailler, et de tenir à jour avec le projet à distance. Vos changements locaux, et fusionner les modifications distantes peuvent être poussés à votre serveur git.
En amont, les patchs peuvent être créés et perfectionnés sur votre suivi à distance des branches, et présentées pour le projet.
Séparé de suivi de la direction générale pour la 'lecture seule' à distance vous permet de préparer des correctifs et s'engage pour l'amont du projet à distance.
Quand vous voulez en amont d'un patch, une diff de maître..à distance peut être utilisé pour définir le patch de votre lecture seule branche à distance.
Envoyer formaté le fichier de correctif pour le projet à distance. Si vous avez besoin de modifier et de rebase pour le projet à distance, vous pouvez le faire travailler sur votre suivi à distance branche jusqu'à ce qu'il est approuvé.
(Mise en place d'un git double à distance implique la modification .git/config, et il est expliqué ailleurs)
OriginalL'auteur rickfoosusa
Puisque vous ne voulez pas le manuel de la fusion par les lecteurs), vous pourriez écrire un crochet pour examiner ce qui est venu vers le bas et invite l'utilisateur:
http://git-scm.com/docs/githooks
Je serais encore juste vous recommandons de récupérer et d'avoir les lecteurs de gérer leurs fusionne ou rebases localement. C'est une solution simple à votre problème.
OriginalL'auteur Adam Dymitruk