版本控制 - git 如何还原某个文件
过去多啦不再A梦
过去多啦不再A梦 2017-04-28 09:06:04
0
6
878

目的

想把文件 include/plugin/funclib/function_member.php 恢复到 b257f8685b71a471c4f797d05f52a1a576047ed2 (2014-12-29 23:38)这个版本,但是使用 git reset b257f8685b71a471c4f797d05f52a1a576047ed2 include/plugin/funclib/function_member.php 一直无法实现。

代码


Administrator@USER-20140115FZ /D/website/xxx.com/www (master) $ git log include/plugin/funclib/function_member.php commit bbb0a005d245e6d5ef5b1c0b1b0ef2981fa3ecb9 Author: ken <xxx@gmail.com> Date: Mon Jan 5 22:07:37 2015 +0800 for reset commit b257f8685b71a471c4f797d05f52a1a576047ed2 Author: ken <xxx@gmail.com> Date: Mon Dec 29 23:38:09 2014 +0800 add reg forbbiden commit 052c0233bcaef35bbf6e6ebd43bfd6a648e3d93b Author: ken <xxx@gmail.com> Date: Mon Dec 29 21:51:44 2014 +0800 add coname filter for register commit 53298e00de944863f6092d0d4c0a260d00124f9f Author: ken <xxx@gmail.com> Date: Mon Dec 29 01:24:13 2014 +0800 add referrals.php delete some php files like serv.php yqm.php,modify registe commit 44118e5256eb9786d024f9b7d2dfb8af0bd8a308 Author: default7 <xxx@gmail.com> Date: Sun Jul 27 17:05:21 2014 +0800 first commit Administrator@USER-20140115FZ /D/website/xxx.com/www (master) $ git reset b257f8685b71a471c4f797d05f52a1a576047ed2 include/plugin/funclib/fun ction_member.php --hard fatal: Cannot do hard reset with paths. Administrator@USER-20140115FZ /D/website/xxx.com/www (master) $ git reset b257f8685b71a471c4f797d05f52a1a576047ed2 include/plugin/funclib/fun ction_member.php Unstaged changes after reset: M include/plugin/funclib/function_member.php Administrator@USER-20140115FZ /D/website/xxx.com/www (master) $
过去多啦不再A梦
过去多啦不再A梦

répondre à tous(6)
给我你的怀抱

Utilisez simplement git-checkout. C'est juste un peu étrange à comprendre.

$ git checkout ${commit} /path/to/file

Référence source :

  • http://stackoverflow.com/questions/215718/reset-or-revert-a-special-file-to-a-special-revision-using-git
  • https://www.kernel.org/pub/software/scm/git/docs/git-checkout.html
滿天的星座

Vous devez encore exécuter git checkout xxxxx(文件名)

phpcn_u1582

Git ne peut pas restaurer un seul fichier vers une version spécifiée. Si vous souhaitez faire cela, vous pouvez le faire
. 1. git reset version number A ce moment, une branche correspondant au numéro de version sera générée
. 2. git checkout sur cette branche et copiez les fichiers à restaurer
3. git checkout sur la branche d'origine, copiez le fichier, écrasez le fichier actuel, puis git add, git commit

世界只因有你

Je pense que c'est bien d'utiliser tortoisegit. Après configuration, il y a directement une interface graphique, et vous pouvez restaurer la version précédente avec rever

漂亮男人

1. Si votre soumission n'a pas été partagée et publiée à distance, vous pouvez utiliser git rebase -i origin/branch pour modifier la branche correspondante, puis soumettre à nouveau git commit --ammend.
2. Si votre soumission a été partagée vers l'extrémité distante, vous pouvez uniquement utiliser git pour revenir à la branche correspondante, puis extraire d'autres fichiers, conserver uniquement cette modification, puis soumettre.
3. C'est un peu compliqué. Ce serait très pratique s'il y avait un outil graphique. Je clique habituellement sur un fichier d'une certaine version dans le contrôle git de webstrom, je fais un clic droit pour revenir en arrière, puis je le soumets.

Ty80

git checkout <sha1-of-a-commit> </chemin/vers/votre/fichier>

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal