注意 - 我不熟悉git reset命令,所以我不确定它是否是我想要做的正确命令,这很简单。
我想撤消上次git push中所做的更改。 因此,我运行了以下重置命令以返回到所需的提交哈希值(在非意外提交哈希值之前) -
git reset <last desired commit hash> <file name>
此后,文件没有变更(工作目录)。但是,git status
表明该文件已被修改。
modified: <filename>
现在正在执行git stash
,修改了工作目录文件。但是,我没有看到将更改推送到远程存储库的选项。 Git pull也没有显示任何变化。
答案 0 :(得分:0)
你可以用你的方法来解决你的疑虑。
update one
set one.assid = two.assid
from tableone_name one
inner join table_2 two on
one.id = two .udid
inner join table_2 th on
one.id_1 = th .id_3
。这会将您想要的文件(git reset <last desired commit hash> <file name>
)恢复为<file name>
指定的版本。你仍然会留在当前的分支机构。
如果您指定的文件与您拥有的版本和您恢复的版本之间存在任何差异,则在执行上一个命令后不久,应显示此类文本。
<last desired commit>
您可以通过以下命令对其进行验证。 Unstaged changes after reset:
M <file name>
。然后它将显示发生的变化。
git diff <file name>
将删除任何未暂存的提交。很明显,在git stash
之后,您无法提交或推送,因为没有任何更改。并且git stash
也不起作用。原因是您的本地分支不会被git pull
的提交遗忘。所以它拥有远程分支中的所有提交。因此git reset
没有新的提交。
您可以尝试以下操作。做git pull
。因此,您的文件将再次进入上次所需提交的状态。按git stash apply
验证更改。然后提交&amp;推。
如果检查差异时没有预期的更改,问题应该是其他一些问题,而不是版本控制。 :))