首页
学习
活动
专区
圈层
工具
发布

Git缓冲区理解:`index`,`add`和`reset`,`staged`和`unstaged`

在git里面,有一个叫index的区域,你把东西加到那里叫add, 把东西再从哪里撤回来叫reset;已经在里面的我们形容它是staged,还没有加进去的我们形容它是unstaged。...其实index区就是一个纯粹的缓冲区,也叫staging area,是正式提交之前给我们的一个缓冲,还有犹豫的余地。...参考:Git 基础 - 撤消操作 撤销add 指定文件 $ git reset HEAD file.txt 全部撤销 $ git reset HEAD ....修改commit 一般流程如下: $ git commit -m '首次提交' git add forgotten_file git commit --amend 恢复某个文件到以前版本 用git log...得知某个版本SHA后,恢复readme.md这个文件 $ git reset readme.md 切换到该版本 $ git checkout readme.md 把变动提交 $ git add

14000
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Git回退实战之add和commit回滚

    或者,比较多一种情况,错误把工程add了到了暂存区,比如一些本地配置,本来就不应该提交的,又或者,开发中只提交部分代码,又想最新的提交合并到上一次提交,等等,很多种场景,我们都会用到git版本回退/回滚...二、Git版本回退/回滚实操在实操演练前,我们需要去了解Git版本的一些理论知识:版本管理的Git 有三种状态: 已提交(committed)、已修改(modified) 和 已暂存(staged)已修改...Git 项目拥有四个阶段:工作区、暂存区、 Git 目录、远程仓库(origin)git add:是将工作区已修改的文件提交到暂存区git commit:是将暂存区的文件提交到Git 目录git push...:就是将本地git目录的文件提交到远程仓库1.add回退错误把工程add了到了暂存区,比如一些本地配置,本来就不应该提交的,发现误添加了某个文件提交到了暂存区,可以通过以下命令撤回到工作区:git reset...1)打开更新历史右击项目 ——> Git ——> Show History图片 2)复制最版本和要回退的版本选中,点击“Copy Revision Number”复制两个版本的版本号:图片保存下来:最新版本

    1.9K30

    使用 git add -p 整理 patch

    本文将介绍如何使用 git add -p 来交互式选择代码片段,辅助整理出所需的 patch。...中文版本: -p, --patch 交互地在索引和工作树之间选择补丁块并将它们添加到索引中。这让用户有机会在将修改后的内容添加到索引之前查看差异。...这样对片段使用 y 和 n,我们就可以只挑选出涉及 fun1 的改动,当我们确认后续没有 fun1 相关的改动时,就可以按 q 退出挑选了。 此时 git status 可以看到部分改动在暂存区中。...modified: demo.c 使用 git diff --cached 可以具体确认要提交的内容,是否符合我们的预期,只包含 fun1 的改动,不包含 fun2 和调试语句。...git commit -m "fun1" 接下来继续使用 git add -p,配合s,y,'n'就可以进一步挑选出fun2的改动了。

    2.5K20

    【错误记录】Git 使用报错 ( no changes added to commit (use “git add“ andor “git commit -a“) )

    文章目录 一、报错信息 二、解决方案 一、报错信息 ---- 修改了 Git 版本库中的 file1.txt 文件 , 直接执行 git commit -m "modify file1" 命令 , 尝试提交版本库...(use "git push" to publish your local commits) Changes not staged for commit: (use "git add ...) modified: file1.txt no changes added to commit (use "git add" and/or "git commit -a") D...:\Git\git-learning-course> 文件修改 : 二、解决方案 ---- 方案一 : 提交代码时 , 需要先 执行 git add 命令 将文件添加到 " 暂存区 " ,...然后执行 git commit 命令 将文件提交到 " 版本库 " ; 直接 执行 git commit 命令 将文件提交到 " 版本库 " 是不行的 ; 方案二 : 也可以使用 git commit

    1.7K10

    git version 2以上git add .和git add -A 一样

    早期版本的git , git add . 的时候不会把删除的文件加入索引 新版本的git add . 会把删除的也加入进去的 ? …​ 要从中添加内容的文件。...Fileglobs(例如 *.c)可以用来添加所有匹配的文件。...此外,还可以提供一个前导目录名(例如,指定 dir 以添加 dir/file1 和 dir/file2)来更新索引,使其与整个目录的当前状态相匹配(例如,指定 dir 不仅会记录在工作树中修改的文件 dir.../file1,还会记录在工作树中添加的文件 dir/file2,还有从工作树中删除的文件 dir/file3)。...请注意,旧版本的 Git 会忽略已删除的文件;如果要添加已修改的文件或新文件,但忽略已删除的文件,请使用 --no all 选项。

    39410

    Git创建版本库及git init 、add 和 commit -m 的基本使用

    一定要放到learngit目录下(子目录也行),因为这是一个Git仓库,放到其他地方Git再厉害也找不到这个文件。 和把大象放到冰箱需要3步相比,把一个文件放到Git仓库只需要两步。...第一步,用命令git add告诉Git,把文件添加到仓库: $ git add readme.txt 执行上面的命令,没有任何显示,这就对了,Unix的哲学是“没有消息就是好消息”,说明添加成功。...为什么Git添加文件需要add,commit一共两步呢?...因为commit可以一次提交很多文件,所以你可以多次add不同的文件,比如: $ git add file1.txt $ git add file2.txt file3.txt $ git commit...添加文件到Git仓库,分两步: 使用命令git add ,注意,可反复多次使用,添加多个文件; 使用命令git commit -m ,完成。

    85510

    git和github gitlab的区别_gitlab和git区别

    大家好,又见面了,我是你们的朋友全栈君。 GitHub是在线代码仓库,全世界只有GitHub一家,大家把代码存储在人家的服务器上。...Gitlab相当于小型的GitHub,你可以在本地搭建一个属于你自己的类似GitHub仓库,让小伙伴把代码存储在上面,这样代码只有你们几个人能看见,但是你要存在GitHub上,全世界都能看见 git 是一种版本控制系统...,是一个命令,是一种工具 gitlib 是用于实现git功能的开发库 github 是一个基于git实现的在线代码仓库,包含一个网站界面,向互联网开放 gitlab 是一个基于git实现的在线代码仓库软件...,你可以用gitlab自己搭建一个类似于github一样的系统,一般用于在企业、学校等内部网络搭建git私服 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    76110

    git add命令行添加文件、文件夹以及撤销文件add的方法

    add" to track) Git提示,w3h5.txt 是一个未追踪的文件。...可以通过 git add 命令添加到暂存区以便 commit 。add后,Git会追踪文件的变化,在提交时提醒我们别漏了文件。...不加参数默认为将修改操作的文件和未跟踪新添加的文件添加到git系统的暂存区,注意不包括删除。 git add * git add . 拓展: git add -u ....-u 表示将已跟踪文件中的修改和删除的文件添加到暂存区,不包括新增加的文件,注意这些被删除的文件被加入到暂存区再被提交并推送到服务器的版本库之后这个文件就会从git系统中消失了。...git add -A . -A 表示将所有的已跟踪的文件的修改与删除和新增的未跟踪的文件都添加到暂存区。 2、添加某个文件类型到暂存区,比如所有的 .html 文件。

    26.1K42

    Dockerfile add_dockerfile copy和add区别

    COPY 和 ADD 命令不能拷贝上下文之外的本地文件 对于 COPY 和 ADD 命令来说,如果要把本地的文件拷贝到镜像中,那么本地的文件必须是在上下文目录中的文件。...在设置了 WORKDIR 命令后,接下来的 COPY 和 ADD 命令中的相对路径就是相对于 WORKDIR 指定的路径。...命令 ADD 命令的格式和 COPY 命令相同,也是:ADD 除了不能用在 multistage 的场景下,ADD 命令可以完成 COPY 命令的所有功能,并且还可以完成两类超酷的功能...加速镜像构建的技巧 在使用 COPY 和 ADD 命令时,我们可以通过一些技巧来加速镜像的 build 过程。...ADD 命令在增加了功能的同时也增加了使用它的复杂度,比如从 url 拷贝压缩文件时弊大于利。希望本文能够解去大家对 Dockerfile 中 COPY 和 ADD 命令的疑惑。

    1.6K30

    git add 命令详解

    add 命令的作用就是将工作区的文件添加到暂存区 使用示例 # 将某些文件提交到暂存区 git add # 将某些目录提交到暂存区 git add 3. git add 命令参数 ---- -A, --all add changes from all tracked and untracked files 添加所有跟踪和未跟踪文件的更改...只监控已经被 add 的文件,也就是 tracked files,不会监控没有被跟踪的新文件 git add -u 4. git add 背后做了什么 ---- 先说结论: git add 会在 .git...hash sha-1 算法得到 40 位的 blob 对象 hash 字符串文件,文件中存储的是文件类型和使用算法压缩后的内容,如果查看文件的原始内容,需要使用 git cat-file -p 和内容相对应的操作 # 查看暂存区中的文件名 git ls-files # 查看暂存区中的文件更多信息 git ls-files -s 100644 指的是文件权限,hash 字符串对应

    93330

    Git教程 git pull 和 git clone的区别

    网上看好多人解释pull和clone的区别,说什么pull是更新本地代码,clone是本地从无到有的过程,但有一点没提到,恰好我今天又犯了这个问题,因为我原来都是直接从远程仓库pull,今天突然发现发现...---- 使用方法 有权限的仓库 本地无代码 git pull git clone 有权限的仓库 本地有代码 git pull 无权限的仓库 本地无代码 git clone 无权限的仓库 本地有代码...因为我平时下拉代码都是直接git pull。 1.1 我有权限的仓库 我有权限的仓库指的是我自己的,或者团队中我可以使用的仓库。 要使用git pull首先你要确定已经连接远程仓库。...接上边的说,意识到使用git clone之后,我删除了刚才的HTTPS连接远程仓库,然后直接git clone,代码成功下载下来了。...我删除了上边的https连接远程仓库的方法 git remote -v用于查看你本地仓库都连接了哪些远程仓库,如果连接了会显示仓库代号和连接方式,我这里输出空白,就是没连接任何远程仓库的状态 git clone

    3.2K20
    领券