在每個 commit 旁邊的亂數就是SHA-1值,可以取前幾碼來準備切換,像我想回到第一個版本,那就是下圖白框處。指令則是 git checkout 1849273<指定 commit SHA-1> 切換後,你就可以看到自己的工作目錄,彷彿用了時光機,回到以前你指定的開發歷史狀態。 而此時的HEAD的位置就會被指定到第一個 commit 紀錄上,如下圖。
git checkout 切换到指定 commit: git chekcout <commit> 1. 上面的命令是回滚到工作目录中指定的 commit 上,这是一个只读操作,不会影响到当前工作区的状态,它在你查看旧版本的文件时不会损坏你的代码仓库。 HEAD 是一个指针,通常情况下,它指向当前所在分支,而分支又指向一个 commit 提交。HEAD 并不总指向一...
从上图分析,在master分支上的时候,HEAD指向的是master,对应的是c2的commit ID。而切换到a分支的时候,HEAD也相应的指向了a,同时a对应的是a分支上的最新commit ID。因此,我们可以得出结论,在切换分支的时候,HEAD也会相应的指向对应的分支引用。 但是,使用checkout命令的时候,并不是每次都会改变HEAD指针的指向哦。在...
从上图分析,在master分支上的时候,HEAD指向的是master,对应的是c2的commit ID。而切换到a分支的时候,HEAD也相应的指向了a,同时a对应的是a分支上的最新commit ID。因此,我们可以得出结论,在切换分支的时候,HEAD也会相应的指向对应的分支引用。 但是,使用checkout命令的时候,并不是每次都会改变HEAD指针的指向哦。在...
再次明确一下,HEAD是Git中用来引用当前快照的指针。在Git内部,git checkout命令只是简单地将HEAD指针更新为指向特定分支或者commit。当它指向一个分支时,没什么问题,但是当你checkout了一个特定的commit,就会将HEAD指针变成一个游离的指针状态。 当进入这种游离状态时,Git会警告你当前处于游离状态,你所做的任何更改也...
再次明确一下,HEAD是Git中用来引用当前快照的指针。在Git内部,git checkout命令只是简单地将HEAD指针更新为指向特定分支或者commit。当它指向一个分支时,没什么问题,但是当你checkout了一个特定的commit,就会将HEAD指针变成一个游离的指针状态。 当进入这种游离状态时,Git会警告你当前处于游离状态,你所做的任何更改也...
可以看到在checkout指令后跟具体的分支名,HEAD的引用是指向了具体的一个分支,而具体的分支是指向在了一条具体的commit记录,通过checkout --detach指令,可以将HEAD的引用从具体的分支脱离下来,跟分支一样指向具体的一次提交 当前在develop分支上,执行git checkout --detach指令 ...
git checkout -- <file>具体来说,这个命令会撤销对文件的所有未提交更改,将文件恢复到当前分支的 HEAD(最新提交)所记录的状态。切换到特定提交:你可以使用提交的哈希值 <commit-hash> 来切换到特定的提交状态。这将使你进入"分离头指针"状态,只能查看历史记录,而不能进行分支操作。通常情况下,不建议在分离头...
3. 还原文件:在Git中,我们可以使用git checkout命令将文件还原到之前的某个版本。例如,使用git checkout commit_id file_name命令可以将指定文件还原到指定的版本。 4. 版本回退:通过git checkout命令可以实现版本的回退操作。例如,使用git checkout commit_id命令可以将HEAD指向指定的提交,实现版本的回退。
这里我们模拟一下场景,现在这个commit我希望撤回到暂存区。在上面我们讲解了reset --soft HEAD~1这个命令的使用方法。 我们换reset --hard HEAD~1试试。 会发现这个修改真的丢了。 这时候使用git reflog,可以查看我们执行git相关的所有操作,找到上一次commit-hard标识的信息,复制。