我如何将修改的文件转换为以前的修订,在一个特定的 commit hash (我通过 git log 和 git diff 确定)?
当前回答
将文件转换为一个特定的承诺
git checkout Last_Stable_commit_Number - 文件名
2. 将文件转换为一个特定的分支
git checkout branchName_Which_Has_stable_Commit 文件名称
其他回答
我现在有相同的问题,我发现这个答案是最容易理解的(commit-ref 是您想要返回日志中的变更的 SHA 值):
git checkout [commit-ref] [filename]
这将把旧版本放在你的工作目录中,从那里你可以承诺它,如果你愿意。
使用 git log 获取特定版本的 hash 密钥,然后使用 git checkout <hashkey>。
注意:不要忘了在最后一个之前输入哈希,最后一个哈希标记了您的当前位置(头部)并不会改变任何东西。
如果您想要将文件转换为以前的承诺(并且您想要转换已承诺的文件),您可以使用
git checkout HEAD^1 path/to/file
或
git checkout HEAD~1 path/to/file
然后,只是步行,并采取“新”版本。
武装着一个承诺可以有两个父母在合并的情况下,你应该知道,头1是第一个父母,头1是第二个父母。
或者它会工作,如果树上只有一个父母。
这里是我的路。
在 Android Studio 中,打开文件。
(b) git -> 显示历史,找到我要转向的以前的承诺。
c) git checkout commit_id file_path
我想我找到了它......从 http://www-cs-students.stanford.edu/~blynn/gitmagic/ch02.html
有时你只是想回去,忘记每一个变化都过去了一个特定的点,因为它们都是错误的。
开始与:
$ 登录
它向您展示了最近的承诺列表,以及它们的SHA1哈希。
接下来,类型:
$ git 重新设置 --hard SHA1_HASH
将国家恢复到一定的承诺,并将所有新的承诺永久从记录中删除。
推荐文章
- 了解Git和GitHub的基础知识
- 没有。Git目录的Git克隆
- Git与Mercurial仓库的互操作性
- 忽略git中修改(但未提交)的文件?
- “git restore”命令是什么?“git restore”和“git reset”之间有什么区别?
- Git合并与强制覆盖
- Git拉另一个分支
- 在Bash命令提示符上添加git分支
- 如何更改Git日志日期格式
- git pull -rebase和git pull -ff-only之间的区别
- GitHub -致命:无法读取用户名https://github.com':没有这样的文件或目录
- 撤消git平分错误
- 使用.gitconfig配置diff工具
- 如何配置Mac OS X术语,使git有颜色?
- Visual Studio Code: .git文件夹/文件隐藏