30 votes

Comment puis-je créer mon propre dépôt GitHub ?

Je suis totalement novice en matière de Git. J'ai lu les guides et je pense avoir les bases, mais j'ai des difficultés à accomplir cet objectif.

J'ai créé un repo pour mon code source de balisage générique. Juste des trucs que je réutilise pour chaque rupture. Il s'appelle markupDNA.git

J'aimerais avoir différents répertoires dans mes sites Mac. ~/Sites/project-N . Où je m'appuie sur les éléments génériques et où je fais une analyse d'un site. Je voudrais qu'ils soient liés à mon dépôt git principal en tant que forks, mais vous ne pouvez pas forker votre propre dépôt ?

J'aimerais pouvoir faire quelque chose comme ça :

git clone <url> name
git add .
# make changes
git commit -m 'whatever'
git push

Mais je ne veux pas que ça pousse à l'origine. Je veux qu'il pousse jusqu'à une bifurcation de l'objet markupDNA repo d'où il a été cloné. Mais il semble que cela ne fait que pousser mes modifications vers le master d'origine. L'idée est de garder le markupDNA nettoyer et juste avoir beaucoup de forks pour mes différents projets, chacun d'entre eux aura son propre dir cloné sur mon disque dur.

Des idées ?

0 votes

24voto

kubi Points 20607

Vous faites ce qu'il faut.

cd ~/Sites/
git clone ~/Dev/markupDNA/ project-N
cd project-N
git remote rename origin markupDNA
  • Naviguez vers le dossier où vous stockez vos projets
  • cloner votre base markupDNA repo avec un nom personnalisé
  • renommer la télécommande de sorte que si vous voulez une "origine" plus tard, vous pouvez

3 votes

C'est exactement ce dont j'ai besoin pour utiliser mon application squelette. Il serait fou de créer une branche pour chaque projet qui utilise l'application squelette... et de cette façon, je peux toujours tirer des mises à jour du squelette.

1 votes

Lorsque vous avez besoin de mettre à jour les changements de votre application squelette, vous pouvez utiliser git pull MarkupDNA master

21voto

Brian Campbell Points 101107

Il sera probablement beaucoup plus facile à utiliser branches plutôt que d'utiliser des fourchettes séparées. Vous pouvez toujours avoir des extractions séparées pour chaque branche ; il suffit de cloner votre dépôt plusieurs fois, et d'utiliser la commande git checkout dans chacun d'entre eux pour le faire passer à la branche appropriée (ou git checkout -b pour créer la branche et la vérifier d'un seul coup). Une fois que vous avez créé les branches, vous pouvez les pousser vers GitHub en utilisant git push origin <branchname> .

0 votes

Cela semble être une bonne façon de procéder. Mais lorsque je clone mon dépôt, que je crée une nouvelle branche, que j'édite à partir de cette branche et que j'essaie de faire un "git push git@github.com:rorourke/markupDNA.git", la branche n'apparaît pas sur github ?

1 votes

Vous devez faire "git push origin <new-branch-name>" pour créer la nouvelle branche sur le distant. Je suis surpris que la commande que vous avez citée ne donne pas d'erreur, ou alors elle en donne une ?

0 votes

@Fuego comme le dit ebneter, vous devez spécifier le nom de la branche que vous poussez lorsque vous poussez de nouvelles branches sur GitHub.

10voto

funroll Points 4014

Je suis surpris que personne n'ait fait référence à l'article de ce type. article de blog encore.

Voici les étapes à suivre :

$ git clone git@github.com:YOURNAME/foo.git bar
$ cd bar
$ vim .git/config
[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = git@github.com:YOURNAME/bar.git #replace foo with bar
$ git remote add upstream git@github.com:YOURNAME/foo.git
$ git push -u origin master

Au lieu d'éditer la configuration, j'utilise généralement une combinaison de git remote remove y git remote add .

Vous pouvez également utiliser git remote rename suivi par git remote add si vous vouliez conserver l'origine amont.

0 votes

Juste par curiosité, pourquoi voudriez-vous bifurquer votre propre projet ?

0 votes

L'une des raisons est que vous allez le nettoyer mais que vous souhaitez conserver une trace de l'histoire ancienne. Par exemple, en supprimant beaucoup de vieilles branches et de vieux tags.

3 votes

L'utilisation de vim est un peu stupide quand il existe déjà des commandes git pour effectuer les modifications appropriées : $ git clone git@github.com:YOURNAME/foo.git bar , $ cd bar , $ git remote rename origin upstream , $ git remote add origin git@github.com:YOURNAME/bar.git et ensuite $ git push -u origin master .

9voto

Heather Points 8785

Pour faire un vrai fork GitHub de votre propre dépôt, vous pouvez utiliser ces étapes :

  1. Créer une organisation
  2. Fourchette à l'organisation
  3. Renommer le projet bifurqué
  4. Revenir à votre compte

3 votes

J'obtiens "rdp already has a repo in the rdp/screen-capture-recorder-to-video-Windows-free network" quand je me "Transfer Ownership". Mais je peux utiliser la copie qui se trouve dans l'organisation, merci !

0 votes

Oui, j'ai eu la même erreur... Je ne peux même pas me redonner le projet bifurqué après l'avoir renommé. J'aimerais pouvoir faire en sorte que GitHub "oublie" qu'il s'agit d'un fork...

0 votes

Pouvez-vous nous expliquer comment utiliser git pull-rebase upstream master Je ne comprends pas ça. La méthode décrite dans le post produit l'erreur en essayant de 4. move back to your account

1voto

Peter Tillemans Points 20129

Bien sûr, vous pouvez cloner à partir d'un clone. Dans git, il n'y a pas de concept de dépôt principal. Les gens désignent souvent un repo principal, mais c'est par convention, pas pour une raison technique.

Vous pouvez donc faire exactement ce que vous décrivez et même plus.

Par exemple, il est judicieux de conserver une branche dans vos sites d'éclatement avec des idées d'ajouts ou de modifications de votre matériel générique. Vous pouvez les faire remonter vers votre dépôt générique et les distribuer à nouveau à partir de là.

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