264 votes

Comment ajouter des fichiers et des dossiers dans les dépôts GitHub ?

J'ai créé un compte sur GitHub - je suis nouveau sur ce site - et je suis confronté à un problème d'ajout de fichiers. J'ai ajouté readme.txt . J'ai également 3 autres fichiers PHP et un dossier contenant des images.

Comment ajouter les fichiers et les dossiers ? J'ai essayé avec git pull parce que git push origin -u master m'a montré une erreur.

9 votes

J'ai essayé le tutoriel officiel de git ? Cette question est traitée au tout début.

2 votes

Je recommande le livre ProGit, la version en ligne est gratuite. progit.org/book

0 votes

Remarque : depuis décembre 2012, vous pouvez créer des fichiers directement via l'interface web de GitHub. Voir ma réponse ci-dessous .

402voto

First Zero Points 3318

Vous pouvez ajouter des fichiers en utilisant git add , exemple git add README , git add <folder>/* ou encore git add *

Ensuite, utilisez git commit -m "<Message>" pour valider les fichiers

Enfin git push -u origin master pour pousser les fichiers.

Lorsque vous effectuez des modifications, exécutez git status qui vous donne la liste des fichiers modifiés, ajoutez-les en utilisant git add * pour tout ou vous pouvez spécifier chaque fichier individuellement, puis git commit -m <message> et enfin, git push -u origin master

Exemple - disons que vous avez créé un fichier README, en exécutant git status vous donne

$ git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   README

Ejecutar git add README les fichiers sont mis à disposition pour la validation. Ensuite, exécutez git status à nouveau, cela devrait vous donner - les fichiers ont été ajoutés et sont prêts à être envoyés.

$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   new file:   README
#

nothing added to commit but untracked files present (use "git add" to track)

Ensuite, exécutez git commit -m 'Added README'

$ git commit -m 'Added README'
[master 6402a2e] Added README
  0 files changed, 0 insertions(+), 0 deletions(-)
  create mode 100644 README

Enfin, git push -u origin master pour pousser la branche distante master pour le dépôt origin .

$ git push -u origin master
Counting objects: 4, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 267 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)
To xxx@xxx.com:xxx/xxx.git
   292c57a..6402a2e  master -> master
Branch master set up to track remote branch master from origin.

Les fichiers ont été poussés avec succès vers le référentiel distant.

Exécution d'un git pull origin master pour s'assurer que vous avez absorbé tous les changements en amont

$ git pull origin master
remote: Counting objects: 12, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 8 (delta 4), reused 7 (delta 3)
Unpacking objects: 100% (8/8), done.
From xxx.com:xxx/xxx
 * branch            master     -> FETCH_HEAD
Updating e0ef362..6402a2e
Fast-forward
 public/javascript/xxx.js |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)
 create mode 100644 README

Si vous ne voulez pas fusionner les changements amont avec votre dépôt local, exécutez git fetch pour récupérer les changements et ensuite git merge pour fusionner les changements. git pull est juste une combinaison de fetch y merge .

J'ai personnellement utilisé gitimmersion - http://gitimmersion.com/ pour vous mettre à niveau sur git, c'est un guide étape par étape, si vous avez besoin de documentation et d'aide

9 votes

git add --all folder/ a mieux fonctionné pour moi que pour moi que git add folder/*

4 votes

Est-ce que cela ajoute tous les fichiers et dossiers de manière récursive ?

0 votes

git add <folder>/* ajoute également de nouveaux fichiers.

54voto

Sparta Points 11

Pour les utilisateurs de Linux et de MacOS :

  1. Tout d'abord, créez le dépôt (Name=RepositoryName) sur github.
  2. Ouvrez le terminal et créez le nouveau répertoire (mkdir NewDirectory).
  3. Copiez votre ProjectFolder dans ce NewDirectory.
  4. Changez le répertoire de travail actuel en NouveauRépertoire.
  5. Exécutez ces commandes
    1. git init
    2. git add NomDuDossierProjet
    3. git commit -m "premier commit"
    4. git remote add origin https://github.com/YourGithubUsername/RepositoryName.git
    5. git push -u origin master

21voto

VonC Points 414372

Notez que depuis début décembre 2012, vous pouvez créer des de nouveaux fichiers directement à partir de GitHub :

Create new File

ProTip™ : Vous pouvez pré-remplir le champ du nom de fichier en utilisant uniquement l'URL.
Dactylographie ?filename=yournewfile.txt à la fin de l'URL va pré-remplir le champ du nom de fichier avec le nom yournewfile.txt .

d

2 votes

Comment télécharger un fichier, comme une image ?

0 votes

@DrewBaker le mécanisme décrit ici est pour créer un fichier texte. Pour une image, vous devez toujours cloner un dépôt GitHub, ajouter l'image localement, commiter et pousser.

0 votes

Merci et +1 pour l'astuce sur la "création de nouveaux fichiers directement depuis GitHub" !

15voto

Gautier Points 197

Si vous voulez ajouter un dossier vide, vous pouvez ajouter un fichier '.keep' dans votre dossier.

C'est parce que git ne se soucie pas des dossiers.

0 votes

Exactement la réponse que je cherchais.

4 votes

Pour élaborer : Git ne peut pas ajouter un répertoire complètement vide. En plaçant un fichier .gitkeep dans un tel répertoire vide, git peut maintenant suivre ce répertoire. PS : .gitkeep n'est pas une fonctionnalité de Git, mais un fichier solution de contournement

0 votes

Ça a marché pour moi, merci. Mais je suis un peu mécontent de cela... :) Mais ça a fait ma journée

6voto

Gevious Points 1852

Vous devez extraire le dépôt sur votre machine locale. Ensuite, vous pouvez modifier ce dossier sur votre machine locale.

git commit -am "added files"

Cette commande va commettre tous les fichiers dans le repo.

git push origin master

qui va pousser tous les changements de votre branche master (qui, je suppose, est celle que vous utilisez) vers le dépôt d'origine distant (dans ce cas, github).

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