小白教程
所有教程
关于
Search
172.71.254.195
172.71.254.195
参数设置
贡献
退出
操作
编辑
移动
保护
信息
历史
删除
查看“Git reset”的源代码
本页内容
上一节:
Git_commit
下一节:
Git_rm
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{DISPLAYTITLE:git reset}}[[Category:git basic operations|7]] = git reset 命令 = [[git basic operations|Git 基本操作]] git reset 命令用于回退版本,可以指定退回某一次提交的版本。 git reset 命令语法格式如下: <sample title="" desc="" lang="shell" hererun="1"> git reset [--soft | --mixed | --hard] [HEAD] </sample> '''--mixed''' 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。 <sample title="" desc="" lang="shell" hererun="1"> git reset [HEAD] </sample> 实例: <sample title="" desc="" lang="shell" hererun="1"> $ git reset HEAD^ # 回退所有内容到上一个版本 $ git reset HEAD^ hello.php # 回退 hello.php 文件的版本到上一个版本 $ git reset 052e # 回退到指定版本 </sample> '''--soft''' 参数用于回退到某个版本: <sample title="" desc="" lang="shell" hererun="1"> git reset --soft HEAD </sample> 实例: <sample title="" desc="" lang="shell" hererun="1"> $ git reset --soft HEAD~3 # 回退上上上一个版本 </sample> '''--hard''' 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交: <sample title="" desc="" lang="shell" hererun="1"> git reset --hard HEAD </sample> 实例: <sample title="" desc="" lang="shell" hererun="1"> $ git reset --hard HEAD~3 # 回退上上上一个版本 $ git reset –hard bae128 # 回退到某个版本回退点之前的所有信息。 $ git reset --hard origin/master # 将本地的状态回退到和远程的一样 </sample> '''注意:'''谨慎使用 '''–-hard''' 参数,它会删除回退点之前的所有信息。 '''HEAD 说明:''' * HEAD 表示当前版本 * HEAD^ 上一个版本 * HEAD^^ 上上一个版本 * HEAD^^^ 上上上一个版本 * 以此类推... 可以使用 ~数字表示 * HEAD~0 表示当前版本 * HEAD~1 上一个版本 * HEAD^2 上上一个版本 * HEAD^3 上上上一个版本 * 以此类推... === git reset HEAD === git reset HEAD 命令用于取消已缓存的内容。 我们先改动文件 README 文件,内容如下: <sample title="" desc="" lang="shell" hererun="1"> # xiaoBai Git 测试 # 小白教程 </sample> hello.php 文件修改为: <sample title="" desc="" lang="shell" hererun="1"> <?php echo '小白教程:www.xiaobai.wang'; echo '小白教程:www.xiaobai.wang'; echo '小白教程:www.xiaobai.wang'; ?> </sample> 现在两个文件修改后,都提交到了缓存区,我们现在要取消其中一个的缓存,操作如下: <sample title="" desc="" lang="shell" hererun="1"> $ git status -s M README M hello.php $ git add . $ git status -s M README M hello.php $ git reset HEAD hello.php Unstaged changes after reset: M hello.php $ git status -s M README M hello.php </sample> 现在你执行 git commit,只会将 README 文件的改动提交,而 hello.php 是没有的。 <sample title="" desc="" lang="shell" hererun="1"> $ git commit -m '修改' [master f50cfda] 修改 1 file changed, 1 insertion(+) $ git status -s M hello.php </sample> 可以看到 hello.php 文件的修改并未提交。 这时我们可以使用以下命令将 hello.php 的修改提交: <sample title="" desc="" lang="shell" hererun="1"> $ git commit -am '修改 hello.php 文件' [master 760f74d] 修改 hello.php 文件 1 file changed, 1 insertion(+) $ git status On branch master nothing to commit, working directory clean </sample> 简而言之,执行 git reset HEAD 以取消之前 git add 添加,但不希望包含在下一提交快照中的缓存。 [[git basic operations|Git 基本操作]]
返回至“
Git reset
”。
上一节:
Git_commit
下一节:
Git_rm