git checkout 切 commit

简介: git checkout 切 commit

切换分支是 git checkout 最常见的功能,这里不做介绍,今天主要介绍下它在撤销文件改动上的应用。

// 放弃单个文件修改,注意不要忘记中间的"--",不写就成了检出分支了
git checkout -- filepathname
// 放弃所有的文件修改
git checkout .  

此命令用来放弃掉所有还没有加入到缓存区(就是 git add 命令)的修改。但是此命令不会删除掉刚新建的文件。因为刚新建的文件还没已有加入到 git 的管理系统中。所以对于git是未知的。自己手动删除就好了。

git checkout 切换到指定 commit:

git chekcout <commit>

上面的命令是回滚到工作目录中指定的 commit 上,这是一个只读操作,不会影响到当前工作区的状态,它在你查看旧版本的文件时不会损坏你的代码仓库。

HEAD 是一个指针,通常情况下,它指向当前所在分支,而分支又指向一个 commit 提交。HEAD 并不总指向一个分支,某些时候仅指向某个 commit 提交,这就形成 detached HEAD。

切换到 detached HEAD 状态时,会有一个警告。
在这里插入图片描述
你可以任意的更改任意的提交,通过切换回分支而不影响任何分支的状态。当你切回分支的时候在这里留下的提交你就相当于放弃了。

在你没切走之前,可以创建一个新分支来保留所创建的提交,则可以通过在 switch 命令中使用 -c 来执行此操作:

git switch -c <new branch name>

如果你没有执行上面的命令,当你切走之后,会有一个警告。
在这里插入图片描述

在 detached HEAD 状态下开发新的 feature,将没有任何办法引用到这个 feature。你可以把 detached HEAD 状态看作是正在一个未命名的分支上。你只需要给这个分支命名就可以使用这个 feature 了,然后就可以把这个新分支上的代码合并到其他分支上了,通过命令:

git branch <new-branch-name> 588f5c0

假设你正在进行一次疯狂的重构,但现在你不确定是否要继续下去。这时你想要看一下开始这次重构之前项目原来的样子,首先你需要查看版本的ID,然后使用 git checkout 切换到这个之前的版本。

git checkout a1e8fb5

这让你的工作区切换到了 a1e8fb5 comimit 的状态。你可以查看文件、编译项目、运行测试用例,甚至编辑文件,完全不用担心丢失项目“当前”的状态,你在这里做的所有修改都不会被保存到项目中。当你想要继续那次疯狂的重构时,你需要回到项目的“当前”状态。

git checkout master
相关文章
|
人工智能 缓存 开发工具
结合企业实践来规范你的Git commit(含插件使用指南)
结合企业实践来规范你的Git commit(含插件使用指南)
结合企业实践来规范你的Git commit(含插件使用指南)
|
开发工具 git
git checkout (branchname
git checkout (branchname) 是 Git 中切换分支的一种命令。通过这个命令,你可以将当前工作目录切换到指定的分支上。branchname 参数是可选的,如果不指定,则默认切换到主分支(master 或 main)。
296 2
|
3月前
|
开发工具 git
使用Git下载指定版本或指定commit
使用Git下载指定版本或指定commit
|
4月前
|
存储 人工智能 缓存
Git Commit规范:为什么有些公司要求变更行数限制?·优雅草卓伊凡
Git Commit规范:为什么有些公司要求变更行数限制?·优雅草卓伊凡
211 3
Git Commit规范:为什么有些公司要求变更行数限制?·优雅草卓伊凡
|
7月前
|
人工智能 前端开发 Java
用git rebase命令合并开发阶段中多条commit提交记录
通过 `git rebase`,可以合并多个提交记录,使开发历史更简洁清晰。操作分为 6 步:查看提交历史 (`git log --oneline`)、设置需合并的提交数 (`git rebase -i HEAD~N`)、修改动作标识为 `s`(squash)、保存退出编辑、调整提交信息、强制推送至远程仓库 (`git push -f`)。此方法适合清理本地无关提交,但若有团队协作或冲突风险,需谨慎使用以避免问题。
1146 60
|
5月前
|
JavaScript 前端开发 持续交付
实际工作中 Git Commit 代码提交规范是什么样的?
实际工作中 Git Commit 代码提交规范是什么样的?
322 7
|
6月前
|
前端开发 开发工具 git
Git报错处理:解决git commit时的lint-staged错误提示。
极好的,你对Git的lint-staged出了一个令人头疼的问题。让我们一起钻研一下,找到一种方法来解决一切。 首先,我们要确定你是在做什么操作时候遇到了问题。lint-staged通常在我们运行 git commit 时启动,它做的工作是在你提交之前运行一些指定的命令检查你的代码。当lint-staged报错,多半是因为检查未通过,或者它试图运行的命令存在问题。 让我们以一种图解的方式来描绘一下这个过程,就像canvas上的画面那样。git正在温柔的将你的修改捆绑起来,准备提交。突然,lint-staged走了出来,并开始盘问着Git,寻找可能的错误。如果lint-staged找到了什么
758 24
|
开发工具 git 开发者
|
JSON 开发工具 git
git rebase 合并当前分支的多个commit记录
git rebase 合并当前分支的多个commit记录
581 1
|
开发工具 git
GIT:如何合并已commit的信息并进行push操作
通过上述步骤,您可以有效地合并已提交的信息,并保持项目的提交历史整洁。记得在执行这些操作之前备份当前工作状态,以防万一。这样的做法不仅有助于项目维护,也能提升团队协作的效率。
707 5