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

目的

想把文件 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梦

全員に返信(6)
给我你的怀抱

git-checkoutを直接使用してください。理解するのは少し奇妙です。

リーリー

出典:

  • http://stackoverflow.com/questions/215718/reset-or-revert-a-specific-file-to-a-specific-revision-using-git
  • https://www.kernel.org/pub/software/scm/git/docs/git-checkout.html
いいねを押す +0
滿天的星座

まだ実行する必要がありますgit checkout xxxxx(文件名)

いいねを押す +0
phpcn_u1582

Git では単一のファイルを指定したバージョンに復元することはできません。これを実行したい場合は、これを実行できます。 1. git replace バージョン番号 このとき、バージョン番号に応じたブランチが生成されます
2. このブランチに git checkout し、復元するファイルをコピーします
3. 元のブランチに git checkout し、ファイルをコピーして戻し、現在のファイルを上書きして、git add、git commit

いいねを押す +0
世界只因有你

tortoisegit を使用するのが良いと思います。設定後は、直接グラフィカル インターフェイスが表示され、rever を使用して以前のバージョンに戻すことができます。

いいねを押す +0
漂亮男人

1. 送信がリモートエンドに共有および公開されていない場合は、 git rebase -i Origin/branch を使用して対応するブランチを編集し、 git commit --amend を再送信できます。
2、送信がリモートエンドに共有されている場合は、git revert を使用して対応するブランチに移動し、他のファイルをチェックアウトし、この変更のみを保持して送信することのみが可能です。
3. ちょっと複雑ですが、GUI ツールがあれば非常に便利です。通常、Webstrom の git コントロールでファイルの特定のバージョンをクリックし、右クリックしてから送信します。 #

いいねを押す +0
Ty80

git checkout <sha1-of-a-commit> </パス/to/your/file>

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート