我一直在本地SELECT name, max(datetime)
FROM (
SELECT *
FROM `requests`
ORDER BY datetime
) a
group by name
上关注:
BranchA
(错误)FileA
git add FileA
因此,git commit -m "Modified FileA"
位于我的本地分支FileA
(也从未推送到远程)的本地提交中(从未推送到远程)。
如何将更改恢复到FileA?
更新和解决方法
我撤消了从SourceTree到FileA而不是从git进行的更改,因为我意识到这对我来说更简单。
要执行此操作,请在SourceTree中,对提交的文件FileA进行r-c>“日志选择...”>选择上一个提交(在您之前的提交)> r-c,然后选择“重置为此提交”。做到了,但谢谢大家
答案 0 :(得分:4)
要专门撤消该文件中的更改,但要保持提交不变,否则:
1)将文件A恢复为以前的状态
git checkout HEAD^ -- path/to/fileA
2)包括在您对BranchA所做的最后一次提交中
git commit --amend
(由于尚未被推动,因此下次无需强行推动。)
答案 1 :(得分:2)
首先,您将分支重置为上一次提交:
git reset @^ --mixed
然后,您可以使用checkout
将特定文件重置为旧状态:
git checkout -- files...
完成后,您可以重新提交更改:
git add files...
git commit -m "message"
答案 2 :(得分:1)
您可以使用git reset HEAD~1
将当前分支索引重置为上一次提交。添加--hard
来重置您的工作目录,或者如果您想优化更改并重新提交,请保留它。
如果从那时起您还进行了其他更改,请使用git rebase
将有问题的提交首先移到堆栈的顶部。
答案 3 :(得分:1)
另一种方法(我假设您的提交仅在文件中有更改,您要丢弃):
在您的分支机构中
git rebase -i HEAD~2
它将给出两个提交的列表,按历史顺序升序排列。最后一个是您要更改的内容。因此,您想放弃该提交。将光标移至第二个提交,而不是pick
键入drop
或仅输入d
。
保存更改(取决于您的编辑器,对于CTRL
或X
,可能是SHIFT
+ Y
+ nano
+ :wq
vim
就是这样。