首页 > 编程知识 正文

git还原本地修改,git 强制覆盖本地文件

时间:2023-05-04 00:01:46 阅读:39362 作者:3056

要在本地修改文件或删除文件后恢复这些文件的内容存储在git仓库中的版本,请使用以下命令:

git checkout [--] :可以恢复尚未运行git添加的文件,但无法恢复已经运行git添加的文件

git reset [-- ] :从git的staged区域删除文件。 这意味着取消git add,并使用git checkout进行恢复

git reset-- hard :将整个git仓库的文件内容恢复到当前分支的最新版本

git checkout [--]

如果在更改文件内容或删除本地文件后尚未运行git add命令进行更改,请运行git checkout [--]命令将在filepath中指定的文件恢复为当前git分支的最新版本以下说明该命令的参数。

[--] :表示是---可选参数。 此参数用于指定后续参数仅是文件路径,而不是分支名称或commit信息。

如果branch分支名称当前为hello.c,并且hello.c文件位于当前目录下,则如果不附加---参数,git checkout hello.c将不会复盖hello.c文件中的更改在这些情况下,必须在git checkout -- hello.c中指定复盖hello.c文件的更改。 ---参数消除歧义。

如果没有名称歧义,---可以不提供参数。 例如,使用git checkout hello.c复盖hello.c文件。

: filepath指定要复盖的文件路径,并根据当前shell工作目录进行寻址。 例如,要覆盖当前目录下的src子目录的utils.c文件,请写为src/utils.c。

filepath参数基于当前shell工作目录指定文件路径,但这只是说明了文件目录结构之间的关系,而不是始终存在于当前工作目录下。 例如,删除本地src/utils.c文件后,可以使用git checkout src/utils.c命令恢复此文件,但运行此命令时,本地src/utils.c文件

注意:其中的[]表示可选参数,并且限定了除命令选项以外的参数名称。 这些不是参数本身的内容。 输入[]或时请勿添加。

在bash shell下,表示当前目录路径。 不提供---如果参数、文件路径参数写为.则git checkout .命令指示复盖当前目录及其子目录的更改。 这是git checkout命令的常用形式。

注:如果没有---参数,则在bash shell下使用选项卡完成时,默认情况下只显示本地分支名称、远程分支名称和git refs,而不显示本地文件名。 这意味着默认情况下,选项卡不能补充文件名。 即使当前目录中只有一个文件,也无法补充。 可以在选项卡中完成之前输入文件名的开头部分。

---如果具有参数,则在bash shell下使用制表符完成将有助于完成本地文件名,因为缺省情况下只显示本地文件名,而不显示分支名称和git refs。

获取重置

如果在修改文件内容或删除本地文件后运行git add命令对文件进行更改,git checkout命令将无法恢复到当前git分支的最新版本,并且必须由以下git reset命令处理

git reset [---- ] :从git的staged区域中删除文件路径文件与尚未运行git add命令相同。 此命令不会恢复文件的内容,因此必须使用上述git checkout命令恢复文件。

如果将删除的文件路径用作参数,则git checkout命令可以---不添加参数,但git reset不添加--- -参数报告错误,因此---表示文件路径后跟例如,如果删除了hello.c文件,则git checkout hello.c可以成功恢复,但git reset hello.c报告错误,git reset -- hello.c不报告错误。

git reset-- hard :将整个git仓库的文件恢复到当前分支的最新版本后,将直接恢复文件内容,无需运行git checkout命令。

此命令不需要传递文件路径。 默认情况下,它对git仓库跟踪的工作目录、所有子目录和所有文件有效。 例如,当前shell的工作目录位于子目录下,而要撤消父目录下的更改,则不需要运行cd命令切换到父目录。 可以直接在子目录下运行git reset --hard命令来撤消父目录下的更改。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。