我如何将修改的文件转换为以前的修订,在一个特定的 commit hash (我通过 git log 和 git diff 确定)?
当前回答
我必须在这里插入EasyGit,这是一个插槽,使Git更接近新人,而不会混淆经验丰富的用户。
此分類上一篇: foo/bar foo/baz
其他回答
显然,有人需要在 git 上写一本可理解的书,或者 git 需要在文档中更好地解释。
cd <working copy>
git revert master
他们会放弃最后的承诺,似乎正在做。
伊恩
如果您正在使用 Git Extensions 并只想返回文件的父母承诺,您可以选择包含您想要返回的更改的承诺,然后在详细信息面板中选择“Diff”选项卡,右键单击您想要返回的文件,然后“返回文件(s)到”....,然后“A”(父母)
你可以在四个步骤中完成:
返回整个承诺与您想要具体返回的文件 - 它将创建一个新的承诺在您的分支软重定义承诺 - 删除承诺并将变更移动到工作区域 手动点击文件返回并承诺他们下载所有其他文件在您的工作区域
您需要在终端中输入的内容:
git revert <commit_hash> git reset HEAD~1 git add <file_i_want_to_revert> && git commit -m'reverting file' git checkout.
好运
我想我找到了它......从 http://www-cs-students.stanford.edu/~blynn/gitmagic/ch02.html
有时你只是想回去,忘记每一个变化都过去了一个特定的点,因为它们都是错误的。
开始与:
$ 登录
它向您展示了最近的承诺列表,以及它们的SHA1哈希。
接下来,类型:
$ git 重新设置 --hard SHA1_HASH
将国家恢复到一定的承诺,并将所有新的承诺永久从记录中删除。
我现在有相同的问题,我发现这个答案是最容易理解的(commit-ref 是您想要返回日志中的变更的 SHA 值):
git checkout [commit-ref] [filename]
这将把旧版本放在你的工作目录中,从那里你可以承诺它,如果你愿意。
推荐文章
- 如何从远程Git存储库中提取并覆盖本地存储库中的更改?
- Github:导入上游分支到fork
- Git单次修订的日志
- Git在不改变提交时间戳的情况下进行改基
- VS 2017 Git本地提交数据库。每次提交时锁定错误
- 如何在过去的一些任意提交之间注入一个提交?
- 从GitHub克隆项目后拉git子模块
- GitHub上的分叉和克隆有什么区别?
- 递归地按模式添加文件
- 我如何使用notepad++(或其他)与msysgit?
- 如何将现有的解决方案从Visual Studio 2013添加到GitHub
- Git存储库中的悬垂提交和blob是什么?它们来自哪里?
- 我如何简单地从我最新的git提交创建一个补丁?
- Git显示“警告:永久添加到已知主机列表”
- 我如何检索一个回购的远程git地址?