Poussez le projet existant dans Github

224

J'ai un dossier avec mes sources de projet. Comment puis-je pousser ce projet dans le référentiel de Github?

J'ai essayé d'utiliser ces étapes:

  1. J'ai créé un référentiel vide sur GitHub.
  2. Je lance git-bash et tape git init, donc à l'intérieur du .gitdossier racine du projet est apparu .
  3. J'ai ajouté des fichiers au contrôle de version en utilisant git add sourcesFolderName
  4. J'ai validé des fichiers ajoutés à l'étape précédente en utilisant git commit -m "initial commit"
  5. J'ai spécifié un référentiel distant en utilisant git remote add MyProject <url>
  6. Enfin git push, rien n'est poussé vers le repo distant ... (pas d'échec d'autorisation)

Alors, comment puis-je pousser les sources existantes dans le référentiel github nouvellement créé?

MyTitle
la source
4
Quelle était exactement la sortie de git push?
1615903
1
@ user1615903 Je suis sûr que j'ai une mauvaise séquence d'étapes. Je pense que j'ai besoin de quelque chose comme git clone. Je ne me souviens pas de la sortie de git push, mais je pense que ce n'est pas significatif. Parce que problème dans un autre endroit
MyTitle
L'avez-vous fait git push MyProject master?
Felix Kling
Ce billet de blog pourrait aider quiconque souhaite effectuer cette tâche. Toutes les étapes sont décrites simplement et en détail. samranga.blogspot.com/2015/07/…
Samitha Chathuranga
1
Un petit conseil, essayez d'utiliser l'application SourceTree. L'interface utilisateur est très agréable.
Mohammad Fareed

Réponses:

340
git init
git add .
git commit -m "Initial commit"
git remote add origin <project url>
git push -f origin master

L' -foption on git pushforce la poussée. Si vous ne l'utilisez pas, vous verrez une erreur comme celle-ci:

To [email protected]:roseperrone/project.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to '[email protected]:roseperrone/project.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first merge the remote changes (e.g.,
hint: 'git pull') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Rose Perrone
la source
5
Ce fixe mon problème , mais je ne pouvais pas faire la commande 4 git remote add origin <project url>dire command syntax not correct. Je l'ai ignoré et cela a fonctionné
Khalil Khalaf
4
Juste une remarque, si vous ne voulez jamais avoir besoin d'utiliser le site Web de GitHub, vous pouvez l'ajouter après la troisième étape curl -u 'USER' https://api.github.com/user/repos -d '{"name":"REPO"}':, en remplaçant USER par votre nom d'utilisateur et REPO par le nom du référentiel à créer.
MD XF
1
De plus, je pense que vous ne pouvez plus simplement le faire git add ., vous devriez changer cela en cat "# reponamehere" >README.mdpuis git add README.md. C'est comme ça que la documentation GitHub le dit
MD XF
2
Je crois que le -fdrapeau forcera la disparition de l'histoire à distance? Il semble un opérateur dangereux.
van abel
112

En termes moins techniques

Ma réponse n'est pas différente, mais j'ajoute plus d'informations parce que celles qui sont nouvelles pourraient bénéficier de combler les lacunes dans l'information.

Après avoir créé le dépôt sur github, ils ont des instructions. Vous pouvez les suivre. Mais voici quelques conseils supplémentaires, car je sais à quel point il est frustrant de commencer avec git.

Disons que vous avez déjà démarré votre projet localement. Ce que vous avez n'a pas d'importance. Mais supposons que vous ayez un projet php. Supposons que vous ayez le index.php, contact.php et un dossier d'actifs avec des images, des CSS et des polices. Vous pouvez le faire de cette façon (facile), mais il existe de nombreuses options:

Option 1

Connectez-vous à votre compte github et créez le dépôt.

entrez la description de l'image ici

Dans l'écran suivant, vous pouvez le copier là où vous en avez besoin si vous cliquez sur le bouton (côté droit de l'écran) pour "cloner sur le bureau".

entrez la description de l'image ici

Vous pouvez (ou le faire d'une autre manière) puis copier le contenu de votre projet existant dans votre nouveau référentiel. En utilisant l'application github, vous pouvez simplement vous engager à partir de là en utilisant leur interface graphique (cela signifie que vous cliquez simplement sur les boutons de l'application). Bien sûr, vous entrez vos notes pour le commit.

Option 2

  • Créez votre repo sur github comme mentionné ci-dessus.
  • Sur votre ordinateur, accédez à votre répertoire à l'aide du terminal. à l'aide de la ligne de commande linux, vous allez cd dans le répertoire. De là, vous exécutez les commandes suivantes pour «connecter» votre projet existant à votre référentiel sur github. (Cela suppose que vous avez créé votre dépôt sur github et qu'il est actuellement vide)

faites d'abord cela pour initialiser git (contrôle de version).

git init

puis faites cela pour ajouter tous vos fichiers à «surveiller». Si vous avez des fichiers que vous souhaitez ignorer, vous devez ajouter un .gitignoremais pour des raisons de simplicité, utilisez simplement cet exemple pour apprendre.

git add .

Ensuite, vous validez et ajoutez une note entre les ""mêmes "premier commit", etc.

 git commit -m "Initial Commit"

Maintenant, c'est ici que vous ajoutez votre référentiel existant

git remote add github <project url>

Mais ne tapez pas littéralement <project url>, mais votre propre URL de projet. Comment obtenez-vous cela? Accédez au lien où se trouve votre dépôt sur github, puis copiez le lien. Dans mon cas, l'un de mes repos est https://github.com/JGallardo/urbanhistorical, donc mon URL résultante pour cette commande ajouterait simplement .git après cela. Alors ce serait ici

git remote add github https://github.com/JGallardo/urbanhistorical.git

Testez pour voir si cela a fonctionné en faisant

git remote -v

Vous devriez voir à quoi est lié votre dépôt.

entrez la description de l'image ici

Ensuite, vous pouvez pousser vos modifications vers github

git push github master

ou

git push origin master

Si vous obtenez toujours une erreur, vous pouvez la forcer avec -f. Mais si vous travaillez dans un environnement d'équipe, veillez à ne pas forcer ou vous pourriez créer plus de problèmes.

git push -f origin master
JGallardo
la source
3
La vôtre est la meilleure explication. Pour ceux qui lisent ceci: j'ai d'abord créé mon dépôt sur github, donc il ne me laisserait pas pousser. J'ai dû> github pull <project url> puis github push. Après ça, tout allait bien.
philologon
1
Merci beaucoup pour cela! L'option 1 m'a sauvé la vie après l'échec de toutes les autres options! : D
Sara Inés Calderón
2
Grande explication! Cependant, j'ajouterais les lignes suivantes: git remote add origin <project url> puis git push -f origin master. Sans le -f, il y aura une erreur
Javiar Sandra
1
veuillez ajouter l'option -f à la dernière commande, de cette façon, votre réponse est la meilleure
Jacobo Koenig
1
Cela a vraiment aidé! J'ai accidentellement initialisé le dépôt github avec un fichier README, puis cela n'a pas fonctionné. Je l'ai fait à nouveau avec un dépôt vide et cela a fonctionné.
Verena Haunschmid
36

vous devrez spécifier quelle branche et quelle télécommande lors de la poussée:

➤ git init ./
➤ git add Readme.md
➤ git commit -m "Initial Commit"
➤ git remote add github <project url>
➤ git push github master

Fonctionnera comme prévu.

Vous pouvez configurer cela par défaut en faisant:

➤ git branch -u github/master master

ce qui vous permettra de faire un git pushfrom master sans spécifier la télécommande ou la branche.

brice
la source
1
Correct. Vous pouvez également ignorer la /masterpartie, car elle est redondante.
Gabriele Petronella
1
"git add Readme.md" n'est pas correct. S'il existait déjà, inutile d'ajouter. S'il n'existait pas, la commande échoue. Quoi qu'il en soit, ce n'est pas correct.
Mitch
1
@Mitch ce n'est pas une invocation magique secrète qui fera soudainement que votre ordinateur fasse ce que vous voulez. C'est un exemple pour donner aux gens et une idée de ce qu'ils devraient faire. Je m'attends à ce que les gens comprennent les commandes qu'ils tapent dans leur machine.
brice
9

Si vous êtes sur un Mac (et cela fonctionne probablement de la même manière sur un PC), voici un moyen très simple de le faire. Curieusement, j'ai regardé haut et bas pour ce processus simple et je ne l'ai jamais trouvé.

  • Ne faites rien sur Github (à part avoir un compte et ne pas avoir utilisé tous vos repos disponibles).
  • Téléchargez GitHub pour Mac et installez-le. Passez par la configuration du compte, etc. Ne créez PAS de référentiels pour votre projet existant.
  • "Ajouter un nouveau référentiel local" dans les référentiels.
  • Sélectionnez votre dossier existant. Il vous demandera si vous voulez le faire, dites oui.
  • Une fois terminé, vous verrez une liste de tous vos fichiers, etc. Validez-les.
  • Accédez aux référentiels et publiez (cela créera le nouveau référentiel sur GitHub pour vous, si vous configurez votre compte correctement).
  • Allez dans Repositories et Push (vous verrez soit le "rien à pousser", soit il poussera vos fichiers / modifications vers le nouveau repo créé automatiquement).
    • Vous vous demandez pourquoi vous ne pouvez trouver ce processus simple nulle part ailleurs.

Je sais qu'il n'est pas recommandé d'utiliser le dossier du projet comme dossier repo. Je le fais tout le temps, ça marche toujours, ça rend les choses simples, et je n'ai jamais de problème avec ça.

Tcoz
la source
Il me semble que si l'application GitHub permet à un utilisateur de le faire de cette façon, alors ça doit aller.
johnnieb
7

En résumé;

git init
git status
git add "*"
git commit -m "Comment you want"
git remote add origin  https://link
git push  -u origin master

Je voudrais partager une source avec vous afin que vous puissiez découvrir Git plus facilement.

https://try.github.io/levels/1/challenges/1

shaurya uppal
la source
5

Je vais suivre le commentaire précédent de Rose P. Il m'a fallu beaucoup de temps pour trouver la solution, donc je republie (si tout va bien en anglais) ce qui a fonctionné pour moi ...

étape 1: Créez votre nouveau référentiel sur Github.com (sautez si vous en avez déjà un)

étape 2: Fermer XCode ... non nécessaire

étape 3: ouvrir une nouvelle fenêtre de terminal (oui, vous devez utiliser le terminal ... j'ai essayé toutes les autres façons ... rien n'a fonctionné)

étape 4: utilisation de la commande cd pour trouver l'emplacement de votre dossier dans votre projet (le projet que vous souhaitez ajouter à votre référentiel existant ou nouveau)

étape 5: tapez git init, vous obtiendrez quelque chose comme ça. Réinitialisation du référentiel Git existant dans / {répertoire actuel}

étape 6: tapez git add. rien ne se passe après cette étape, mais saisissez-le et passez à l'étape suivante.

étape 7: tapez git commit -m "Initial commit" vous obtiendrez ce qui suit: # Sur le maître de branche rien à valider, répertoire de travail propre

ou

quelques explications sur la configuration puis une liste des fichiers qui ont changé.

étape 8: tapez git remote add origin {project url} L'url du projet se trouve sur Github.com. C'est l'URL du clone HTTPS ... vous devriez pouvoir simplement copier et coller dans la fenêtre du terminal. Si le système vous indique que l'origine existe déjà, créez un nom différent ou utilisez le nom de votre projet (quelque chose de différent)

étape 9: accédez à votre application GitHub sur votre mac et cliquez sur le bouton "Sync Branch" (même s'il n'y a pas de modifications en attente). Je pense qu'il faut un certain temps pour qu'il se valide, mais si vous retournez dans votre dossier de dépôt local, vous devriez voir votre nouveau projet. J'ai dû recréer le dossier parent, mais il s'agit simplement de déplacer vos fichiers. Accédez à GitHub.com et actualisez votre navigateur et vos nouveaux fichiers devraient également être là.

J'espère que ça aide.

Carlos
la source
5
Follow below gitbash commands to push the folder files on github repository :-
1.) $ git init
2.) $ git cd D:\FileFolderName
3.) $ git status
4.) If needed to switch the git branch, use this command : 
    $ git checkout -b DesiredBranch
5.) $ git add .
6.) $ git commit -m "added a new folder"
7.) $ git push -f https://github.com/username/MyTestApp.git TestBranch
    (i.e git push origin branch)
Ankita_systematix
la source
4
git init

Ajoutez les fichiers dans votre nouveau référentiel local. Cela les met en scène pour le premier commit.

git add .

Ajoute les fichiers dans le référentiel local et les prépare pour la validation. Pour supprimer un fichier, utilisez 'git reset HEAD YOUR-FILE'.

Validez les fichiers que vous avez transférés dans votre référentiel local.

git commit -m "First commit"
# Commits the tracked changes and prepares them to be pushed to a remote

dépôt. Pour supprimer ce commit et modifier le fichier, utilisez 'git reset --soft HEAD ~ 1' et validez et ajoutez à nouveau le fichier. Champ Copier l'URL du référentiel distant En haut de la page de configuration rapide de votre référentiel GitHub, cliquez pour copier l'URL du référentiel distant.

Dans l'invite de commandes, ajoutez l'URL du référentiel distant où votre référentiel local sera poussé.

git remote add origin remote repository URL
# Sets the new remote
git remote -v
# Verifies the new remote URL

Transférez les modifications de votre référentiel local vers GitHub.

git push origin master
# Pushes the changes in your local repository up to the remote repository you 

spécifié comme origine

Shahid Karimi
la source
4
  1. À partir de la ligne de commande, accédez à votre répertoire de référentiel local.
  2. Créez un nouveau référentiel dans GitHub, il vous fournira un lien se terminant par .git .
  3. dans cmd run: git remote add origin [your_GitHub_Repository_link](rappelez-vous que le lien doit se terminer par.git )
  4. puis lancez: git push -u origin master

J'espère que cela a été utile.

Ali Ezzat Odeh
la source
4

Créer un nouveau référentiel

git clone <url>
cd "repositoryName"
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

Dossier existant

cd existing_folder
git init
git remote add origin <url>
git add .
git commit -m "Initial commit"
git push -u origin master

Référentiel Git existant

cd existing_repo
git remote rename origin old-origin
git remote add origin <url>
git push -u origin --all
git push -u origin --tags
Anit Kumar
la source
Quelle est la différence entre commit et push? à quoi «origine» et «maître» se réfèrent-ils en push? une branche?
ealeon
2

Créez d'abord un nouveau référentiel sur Github avec le nom de votre projet, puis suivez les étapes ci-dessous.

1)git init
2)git add *
3)git commit -m "first commit"
4)git remote add origin https://github.com/yuvraj777/GDriveDemo.git
5)git push -u origin master
Yuvraj Sinh
la source
2

Je sais, c'est une vieille question mais j'essaie d'expliquer chaque étape, donc ça peut aider les autres. Voici comment j'ajoute une source existante à git:

  1. Créez le dépôt sur le git, vous aurez donc le ssh || https où vous allez ajouter à distance votre code source.
  2. Dans votre terminal, accédez au chemin de votre projet.
  3. Exécutez git init(ici vous lancez le projet comme un git).
  4. Courir git add * (ici vous ajoutez tous les fichiers et dossiers de votre projet).
  5. Exécutez git commit -m "Initial Commit."(ici vous validez vos fichiers et dossiers ajoutés à l'étape 4; gardez à l'esprit que vous ne pouvez pas pousser vos modifications sans les valider).
  6. Exécuter git remote add origin https://[email protected]/your_username/project-name.git(ici, vous ajoutez un projet distant où votre source va être poussée; remplacez mon lien par votre ssh || https de l'étape 1).
  7. Exécutez git push -u origin master(ici, vous poussez votre source dans le référentiel git).

Remarque: Ce sont des étapes simples pour pousser votre source dans le maître branche.

Lucaci Sergiu
la source
2

Je déteste ajouter une autre réponse, mais mon scénario particulier n'est pas tout à fait couvert ici. J'avais un dépôt local avec un historique des modifications que je voulais conserver et un dépôt non vide créé pour moi sur Github (c'est-à-dire avec le fichier README.md par défaut). Oui, vous pouvez toujours recréer le référentiel Github comme un référentiel vide, mais dans mon cas, quelqu'un d'autre a les autorisations pour créer ce référentiel particulier, et je ne voulais pas le déranger, s'il y avait une solution de contournement facile.

Dans ce scénario, vous rencontrerez cette erreur lorsque vous tenterez de git pushdéfinir l'origine distante:

 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to '[email protected]:<my repo>.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

Comme l'erreur l'indique, j'ai dû faire un git pullaprès avoir défini l'origine distante, mais j'ai dû spécifier l' --allow-unrelated-historiesoption. Sans cette option, se git pullplaint warning: no common commits.

Voici donc la séquence exacte de commandes qui a fonctionné pour moi:

git remote add origin <github repo url>
cp README.md README.md-save
git pull origin master --allow-unrelated-histories
mv README.md-save README.md
git commit -a
git push
Jonathan Fischer
la source
J'ai le même problème, mais vos étapes mènent à quelque chose d'étrange éditeur de texte
John Ktejik
Ah, je suppose que vous utilisez normalement une interface utilisateur et que vous ne vous engagez pas normalement à partir de la ligne de commande (rien de mal à cela, j'utilise l'interface utilisateur de SourceTree). L'éditeur qui est apparu est probablement l'éditeur vi, dont l'interface est un sujet en soi, donc je ne m'y attarderai pas ici.
Jonathan Fischer
2

Depuis le 29/07/2019, Github présente aux utilisateurs les instructions pour accomplir cette tâche lors de la création d'un référentiel, offrant plusieurs options:

créer un nouveau référentiel sur la ligne de commande

git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/novomotus/vitaprice.git
git push -u origin master

pousser un référentiel existant depuis la ligne de commande

git remote add origin https://github.com/novomotus/vitaprice.git
git push -u origin master

importer du code à partir d'un autre référentiel

appuyez sur le importbouton pour initialiser le processus.

Pour les apprenants visuels là-bas:

entrez la description de l'image ici

theeastcoastwest
la source
1

Suivez simplement les étapes de cette URL: CLIQUEZ ICI

shubham mishra
la source
0

J'ai trouvé que stimuler une mise à jour dans une séquence "naturelle" était une voie plus facile que de pousser des choses.

Supposons que le dépôt soit déjà créé sur github et que vous ayez également mis des éléments dans le fichier README.md.

  1. Sur votre ordinateur, ouvrez le terminal et git clone [repo URL]

  2. Vous verrez qu'un nouveau dossier aura été créé portant le nom de votre dépôt. N'hésitez pas à le renommer - peu importe.

  3. Déplacez votre code, vos fichiers, etc. dans ce dossier. Modifiez le fichier README.md si nécessaire.

  4. Maintenant, ouvrez Terminal / invite de commande, entrez dans ce dossier et faites les choses comme si vous effectuez la prochaine mise à jour du référentiel:

git add .
git commit -m "v2"
git push origin master

Remarque: à la commande commit, git peut rejeter, en demandant d'abord de configurer l'email et le mot de passe de l'utilisateur. Suivez les étapes indiquées à l'écran, puis réexécutez la commande commit.

  1. Et ces trois commandes sont ce que vous faites maintenant à chaque fois que vous souhaitez pousser une autre mise à jour.
Nikhil VJ
la source