Comment extraire un fichier d'un serveur de dépôt Git?

je travaille sur un site avec un serveur Git. J'utilise Git pour le déploiement (pas GitHub). Cela a été mis en place avant mon implication en utilisant une méthode hook , et j'ai fait référence à cette question et entré les commandes ci-dessous, mais cela n'a pas fonctionné.

donc en gros, Comment puis-je extraire un seul fichier du serveur? Par exemple, si je voulais mettre à jour mon index de fichier local.le php? git pull index.php?

49
demandé sur Peter Mortensen 2015-02-07 00:52:00
la source

6 ответов

il est possible de faire (dans le dépôt déployé):

git fetch
// git fetch will download all the recent changes, but it will not put it in your current checked out code (working area).

suivi de:

git checkout origin/master -- path/to/file
//git checkout <local repo name(default is origin)>/<branch name> -- path/to/file will checkout the particular file from the the downloaded changes (origin/master).
97
répondu chrismillah 2018-07-17 04:46:48
la source
git fetch --all
git checkout origin/master -- <your_file_path>
git add <your_file_path>
git commit -m "<your_file_name> updated"

ceci suppose que vous retirez le fichier de origin/master.

10
répondu OYORF 2016-02-24 00:09:44
la source

ce scénario se produit lorsque vous-ou des forces plus grandes que vous-avez mutilé un fichier dans votre repo local et que vous voulez juste restaurer une nouvelle copie de la dernière version de celui-ci de la repo. Supprimer simplement le fichier avec / bin / rm (pas git rm) ou le renommer / le cacher et ensuite émettre un git pull ne fonctionnera pas: git remarque l'absence du fichier et suppose que vous voulez probablement le supprimer de la déclaration ( git diff affichera toutes les lignes supprimées de la liste manquante fichier.)

git pull ne pas restaurer localement les fichiers manquants m'a toujours frustré au sujet de git, peut-être parce que j'ai été influencé par d'autres systèmes de contrôle de version (par exemple svn update qui je crois will restaurer les fichiers qui ont été cachés localement).

git reset --hard HEAD est une alternative pour restaurer le fichier d'intérêt car il jette tous les changements non engagés que vous avez. Toutefois, comme indiqué ici , git reset is est une commande potentiellement dangereuse si vous avez d'autres changements non engagés dont vous vous souciez.

la stratégie git fetch ... git checkout mentionnée ci-dessus par @chrismillah est une belle façon chirurgicale de restaurer le dossier en question.

1
répondu Trutane 2018-03-01 04:09:05
la source

Cela peut être la solution:

git fetch

git checkout origin/master -- FolderPathName/fileName

Merci.

1
répondu Y. Joy 2018-07-10 15:57:40
la source

Essayez d'utiliser:

git checkout branchName -- fileName

Ex: git checkout master -- index.php

0
répondu Dodda Venkata 2018-01-23 18:05:38
la source
git clone <git_repository>.git <path_to_desired_file>

pour tirer MINAStatCollector.java de: https://github.com/igniterealtime/Openfire/tree/master/src/java/org/apache/mina/management , vous faites ce qui suit:

git clone https://github.com/igniterealtime/Openfire.git Openfire/src/java/org/apache/mina/management/MINAStatCollector.java
-5
répondu Bobby 2017-06-30 13:54:40
la source

Autres questions sur git git-pull