git在工作区和本地库的操作命令

这篇具有很好参考价值的文章主要介绍了git在工作区和本地库的操作命令。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 本文介绍一些开发时,常用的在工作区和本地库之间的操作命令

git在工作区和本地库的操作命令,管理工具,git


一、提交修改内容到 本地库

工作树的修改内容要提交到本地库,首先需要先添加到缓存区stage,在commit到本地库。

# filename就是你修改后需要提交的文件
git add <filename>

# git commit将缓存区的文件一次性提交到本地库

git commit -m '备注'

二、开发了一段时间,想看看修改了那些文件 以及 和本地库的差异(即修改的内容)

你开发了一段时间,可能已经忘记了修改过那几个文件

可以使用 git status 查看工作区和缓存区的内容,即修改过的文件和新增的文件,

也可以使用 git diff 查看工作区和本地库的版本差异(即内容差异,包括修改和新增,删除)

# 查看工作区和缓存区的状态
git status

# 查看指定文件 在工作区和本地库的差异

git diff <filename>

git在工作区和本地库的操作命令,管理工具,git

 三、 修改回滚

git是版本控制系统,那么是支持使用指定版本的文件。

场景1: 修改已经提交到了本地库

step1: git log,查看提交历史,版本的历史 或者 git reflog,查看命令历史,有带每个操作命令在哪个版本上(通常用于回滚之后的版本,即你回滚到从前版本后,想要放弃,回到当前版本之后的版本)

git log

git在工作区和本地库的操作命令,管理工具,git

想要精简点的提交历史: 加上 参数 --pretty=oneline

git在工作区和本地库的操作命令,管理工具,git

git reflog

git在工作区和本地库的操作命令,管理工具,git

step2: 回滚版本

这里分为两种情况

第一种是修改内容已经提交到了本地库。 需要从本地库回滚版本。

第二种是修改内容还未提交到本地库,则需要撤销缓存区和工作区的修改内容

想要回滚大版本

他有三种模式 --soft --mixed(默认的模式) 和 --hard。 改变的内容由少到多

--soft模式:

仅仅改变当前HEAD 指针(当前的版本号),工作区和缓存区修改的内容全部保留(即当前修改的内容也全部还在)。

--mixed模式:

默认的参数, 改变当前的HEAD指针,也改变缓存区的修改内容。但是保留了工作区的内容

--hard模式:

HEAD指针,缓存区和工作区全部改变

 --soft的效果演示

git在工作区和本地库的操作命令,管理工具,git

 git在工作区和本地库的操作命令,管理工具,git

--mixed效果演示: (放弃缓存区修改内容,保留工作区的修改内容)

git在工作区和本地库的操作命令,管理工具,git

 --hard: 效果演示

git在工作区和本地库的操作命令,管理工具,git

git在工作区和本地库的操作命令,管理工具,git

场景2: 修改未提交到本地库。

则需要回滚两个地方的,一个是缓存区,一个是工作区

1. 放弃缓存区的修改内容:

git reset HEAD <file>

自己的理解,HEAD代表是最新的版本号, reset就是之前演示的, 默认是--mixed,即更改HEAD值和缓存区内容,保留工作区内容。 (但是--soft和--hard 是没办法和文件搭配使用,只能)

演示:

git在工作区和本地库的操作命令,管理工具,git

2. 放弃工作区的修改内容

方法1: git checkout -- <file>

git checkout -- <file> : 丢弃工作区的修改内容,回到本地库或者缓存区的状态。

缓存区有修改优先回滚到缓存区状态,缓存区没有,回滚则回到本地库状态

所以前提是这个文件本地库或缓存区必须有,如果没有,则无法生效。

示例: 在本地库或者缓存区没有的情况下, git checkout -- file 撤销工作区的修改效果

验证场景2.1: 本地库没有,缓存区也没有的情况

演示结果: 撤销失败

git在工作区和本地库的操作命令,管理工具,git

验证场景2.2:  本地库没有,缓存区有的情况

演示结果: 撤销成功, 回到缓存区的状态

git在工作区和本地库的操作命令,管理工具,git

验证场景2.3:  本地库有,缓存区没有的情况

演示结果:撤销成功,撤销后状态和本地库的状态一致

git在工作区和本地库的操作命令,管理工具,git

验证场景2.4:  本地库有文件,缓存区也有该文件。工作区修改后,再撤销

演示结果:撤销成功。撤销后的状态和缓存区一致

git在工作区和本地库的操作命令,管理工具,git

总结4个场景结论:

git checkout -- file,是优先对比工作区和缓存区的, 如果缓存区没有内容,则对比工作区和本地库的。

所以修改未提交到本地库的回滚,需要两步

git在工作区和本地库的操作命令,管理工具,git

方法2: 直接 git reset --hard HEAD

将当前版本的本地所有文件修改内容全部放弃, 包括缓存区和工作区

四、 删除本地库文件

方法1: 当成正常的开发

# step1: 在工作树上删除

rm -f <file>

# step2: 添加缓存区

git add <file>

# step3: 提交到本地库

git commit -m

方法2: 直接删除本地库中的文件

git rm <file>

git commit -m '<content>'

下一步准备总结,在本地库和远程库的操作, 包括本地库和远程库分支的增删改查,以及本地库和远程库的关联创建

git本地库和远程库的相关操作命令_龟速扣代码的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-611377.html

到了这里,关于git在工作区和本地库的操作命令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Git - 基于IDEA/命令回滚工作区和暂存区的修改

    1. 使用命令行回滚工作区的修改(回滚文件的修改) 可能有一天我正在写代码,写了很久发现写错了,想恢复到一开始的状态,一个笨办法就是把刚刚写的代码一行一行的删除,不过这种方式成本太高,我们可以通过命令来回滚 工作区的代码修改: 测试: ① Test.java文件内

    2023年04月08日
    浏览(61)
  • Git——工作区管理

    如何管理工作目录,以便用户可以更高效地新建提交。如何在处理工作区和暂存区文件的过程中修复错误,以及如何修复最近一次提交记录中的问题;同时还会了解到如何安全地使用暂存机制和多个工作目录处理工作流中的中断问题。 主要内容有以下几点: 忽略文件:特意

    2024年02月03日
    浏览(43)
  • git工作区删除了文件想更新回来

    删除了本地dev分支的几个文件,本地dev对应远端dev分支,想更新回来 法一、如果你知道文件夹名称或者文件名称: 法二、工作区的修改,其中就包括删除,这其实都会被git认为正常的操作,即使是你误操作 而针对你的操作,git提供了回退操作,如下图 法三,直接将本地库整

    2024年02月11日
    浏览(64)
  • Git——三大分区【工作区 / 暂存区 / 版本区】

    前言 :Git作为一个版本管理工具,最核心组成思想是它的三个分区:工作区、暂存区和工作区。   Git的工作区也就是我们平时编辑代码的目录文件夹。   暂存区就是一个 暂时放置修改文件记录 的地方。以往仓库中放货物为例,向仓库中放货物总是一车车的拉,因为如

    2024年02月06日
    浏览(67)
  • idea将文件移出git的工作区

    之前使用idea在commit项目时候,忘记添加.gitignore文件了,导致提交了很多无关的文件进入远程仓库,网上有教程是使用git - reset head 方法,但是这个方法只是将上一次的commit文件覆盖当前的暂存区文件,而非移除暂存区文件,所以没有用   但是在idea工具好像并没有提供将文件移

    2024年02月13日
    浏览(47)
  • git 将其它分支的文件检出到工作区

    主要是使用如下命令: 覆盖与 pathspec 匹配的文件的内容。当没有给出 tree-ish (通常是一个commit)时,用 index 中的内容覆盖工作树。当给出 tree-ish 时,用 tree-ish 处的内容同时覆盖 index 和工作树。 由于前一个的合并失败,index 可能包含未合并的条目。默认情况下,如果您试图从

    2023年04月09日
    浏览(42)
  • Git分支管理的原理 & 工作区、暂存区的分支共享

    首先,Git是 版本 控制系统,所以Git的存储基本数据单元是不同的 版本对象 ,对应的就是不同的commit。换句话说,我们每commit一次,就是一个版本,也就是一个Git存储单元。 2.1 只有 main 分支时 当只有main分支时,在修改过文件且进行git add 和 git commit 操作后,目前的文件就会

    2024年02月03日
    浏览(44)
  • VS Code工作区用法

    背景 VS Code可以通过\\\"文件/打开文件夹\\\"来打开本地项目,但是想要打开多个项目便需要来回切换,比较费劲。此时就可以使用工作区功能,将不同的项目放置到同一个工作区中,这样切换项目的时候就会非常方便。 操作方法 打开其中一个项目 执行命令:文件 》 打开文件夹

    2024年01月25日
    浏览(64)
  • VScode 工作区配置 和 用户配置

    通常不同的项目都有不同的配置,我一般都是使用eslint和prettier一起用,所以经常会有这几个文件: 这里简单介绍一下这几个文件的作用吧。 一般有两个文件,extensions.json和settings.json。 extensions.json 文件是用来配置推荐安装的 VS Code 插件的文件。在这个文件中,你可以列出你

    2024年01月24日
    浏览(56)
  • go work 笔记 (多模块工作区)

    go 1.18 引入了功能泛型 (Generics), 同时还引入的多模块工作区 (Workspaces) 和模糊测试 (Fuzzing)。 Go 多模块工作区能够使开发者能够更容易地同时处理多个模块的工作, 如: 方便进行依赖的代码调试(打断点、修改代码)、排查依赖代码 bug 方便同时进行多个仓库/模块并行开发调试 通

    2024年02月12日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包