git清空暂存区_git清除暂存区

2025-04-07 06:52 - 立有生活网

Git reset命令的使用

Git reset 命令有三个主要选项:git reset --soft; git reset --mixed; git reset --hard;

git清空暂存区_git清除暂存区git清空暂存区_git清除暂存区


git清空暂存区_git清除暂存区


git reset --soft

将HEAD引用指向给定提交。索引(暂存区)和工作目录的内容是不变的,在三个命令中对现有版本库状态改动小。

HEAD引用指向给定提交,并且索引(暂存区)内容也跟着改变,工作目录内容不变。这个命令会将索引(暂存区)变成你刚刚暂存该提交全部变化时的状态,会显示工作目录中有什么修改。

HEAD引用指向给定提交,索引(暂存区)内容和工作目录内容都会变给定提交时的状态。也就是在给定提交后所修改的内容都会丢失(新之前我们说过当我们新建一个版本库readme.txt的时候,出现了一个.git的东西,这个东西是隐藏的,不算在工作区,是GIt的版本库。文件会被删除,不在工作目录中的文件恢复,未清除回收站的前提)。

用表格看起来会更清楚些:

作一下看一下实际效果:

首先在一个版本库中修改文件,然后提交,description叫做 add button

使用git log 查看历史提交

copy记录 add button 的前一次提交 add label 的哈希ID “7c5a658fbceb904ad877c425-1On branch 1111表示修改前版本内容,4d183e68aed1ddd0”,作为我们reset的给定提交。

git stauts 查看一下当前版本库中文件状态

显示nothing to commit ,在add button 提交后未对版本库中文件做修改

然后再使用git log 查看历史提交记录。

会发现add button 已经没有了,版本库已经回滚到add label提交的状态了,但是在我们add button 提交修改的文件 里面修改的内容没有丢失,只是回到了未提交的状态。

将文件再次提交,同样取名add button ,继续 git reset --mixed 作。

同样是回滚到了add button 之前的add label 提交。被修改的文件内容也没有丢失,但是修改的文件为红色了(未执行add 作)。

将文件再次提交,同样取名add button ,继续进行 git reset --hard 作。

执行完git reset --hard 命令后,使用git status 查看文件状态,回滚到add label 提交,add button被修改的文件内容已经没有了,丢失了。版本库中的文件已经完全回到刚提交完add label时的状态。

git reset 根据需要使用不同的命令,使用 --hard时一定考虑回滚后文件的丢失!

Git:修改/放弃修改;删除/放弃删除

git commit--amend 主要是处理 你 git commit-m'' 想要修改 commit的desc/comment了。

原始文件README.MD:

执行 git rm --cached 命令,将 readme.txt 文件从暂存区撤回到工作区。

首先我们查看一下仓库状态:

仅仅在原始文件中加了个 .MD 。再查看一下状态:

此时我们再一次修改文件,然后查看状态:

也就是说: 修改->add->修改->commit 只能 commit 已经 add 的修改。

若要保存第二次修改需要再一次 add 然后 commit 。

(use "git checkout -- ..." to discard changes in working directory)

即: git checkout -- 可以丢弃工作区的修改 。

总之, 让这个文件回到近一次 git commit 或 git add 时的状态 。

git checkout -- 命令中的 -- 很重要,没有就变成了“切换分支”的命令。

此时我们查看文件的内容,果然回到了修改前的内容。

上面说的是丢弃工作区的修改,如果修改完后已经 git add 了之后想撤销修改怎么办?

好,我们来试一下:首先修改文件,然后执行命令

值得高兴的是,我们看到这样一句话:

(use "git reset HEAD ...可以看到readme文件处于被的状态中,是被暂存的状态.但是仍然没有commit." to unstage)

那我们来做一下:

我们来查询一下状态:

工作区有修改,暂存区已经干净了。那如何撤销工作取得修改呢?

git checkout -- README.MD

在Git中, 删除也是修改 。我们可以这样做:

你有两个选择:

记住: git checkout 命令就是用版本库里的版本替换工作区的版本 ,无论工作区是修改还是删除。

工作区和暂存区的概念

4)将文件从暂存区撤回到工作区

工作区:就是在电脑里可以看到的目录,这就是工作区。

(use "git add ..." to update what will be committed)

比如:

之前说过把文件往Git版本库里添加的时候,是分两步进行的:

1、用git add来添加文件,实际上就是把文件转移到stage中;

2、用git commit来提交文件,实际上就是把所有在stage中的内容提交到当前分支中

例子如下:

我们对re提交后在查询状态,发现分支上还有改变,说明第二次改变并没有被提交:adme.txt做如下修改:

然后在learngit这个文件夹内添加一个LICENSE.txt的文件(内容随便写),

我们可以用git status来查看下目前的状态:

可以看到目前的状态是readme.txt是被修改了,而LICENSE.txt没有被添加过。

现在用git commit来提交文件,并会显示如下:

以上是我看廖雪峰老师的网站,然后做的学习摘抄,无意侵犯老师作品,如有侵犯,我会删除。

Git基本作

message 可以用于描述提交的信息。

安装完 Git 软件后,需要我们做一下全局的配置工作,如:用户名、邮箱等。

命令:git config

设置用户名命令:

设置邮箱命令:

其中, --global 指定为全局配置,不指定该参数,则为当前所在仓库配置。

查看配置:

首先,我们需要新建一个存放版本库的文件夹,然后进入到该目录所在路径,执行如下命令,格式为:

也可以在执行 git init 命令时指定一个文件夹作为版本库。格式为:

克隆版本库是指从现有 Git 版本库中拷贝项目。

克隆版本库使用如下命令,格式为:

如:克隆远程仓库git rm file 也就是删除本地开发的一个文件,硬删除,直接删没了,回退也需要硬回退。

添加一个或多个文件到暂存区:

添加当前目录下的所有文件到暂存区:

查看在我们上次提交之首先,我们打开自己的本地GIT仓库,在根目录下右击鼠标,选择git bash选项。后是否有对文件进行再次修改。 格式为:

-s参数可以帮助我们获得比较简短的显示结果。

如:我们在一个版本库中所在目录中增加一个 Unit1.pas 文件,然后执行如下命令:

显示暂存区和工作区的异:

显示暂存区和上一次提交(commit)的异:

显示两次提交之间的异:

将暂存区内容添加到本地仓库中。

提交暂存区到本地版本库中:

修改后直接提交:

-a参数设置修改文件后不需要执行 git add 命令,直接来提交。

如:我们在上面的命令基础上进行提交

接下来,我们对 Unit1.pas 文件进行修改,然后进行文件比较:

git reset 命令用于回退版本,可以指定退回某一次提交的版本。

git reset 命令语法格式如下:

可以使用 数字表示

git rm 命令用于删除文件。

如果只是简单地从工作目录中手工删除文件,运行 git status 时就会在 Changes not staged for commit 的提示。所以,在 git 环境下一定要使用 git 的删除文件作。

git rm 删除文件有以下几种形式:

将文件从暂存区和工作区中删除:

如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f 。

如果想把文件从暂存区域移除,但仍然希望保留在当前工作目录中,换句话说,仅是从跟踪清单中删除,使用 --cached 选项即可:

可以递归删除,即如果后面跟的是一个目录做为参数,则会递归删除整个目录中的所有子目录和文件:

git mv 命令用于移动或重命名一个文件、目录或软连接。

如果新文件名已经存在,但还是要重命名它,可以使用 -f 参数:

Git作试验(一):将文件提交至暂存区和版本库

git status

1.项目目录下有以下文件:

2.其中,testfile.txt的内容初始只有“11111”;

输入以下命令,将textfile.txt提交至暂存区:

提示发现了一个新文件(new file),表明testfile.txt已被提交至暂存区,并等待被提交至版本库(Changes to be committed)。

可以看到仓库虽然到了testfile.txt的改动(modified),但这个改动后的版本还没有被提交至暂存区(Changes not staged)。

可以看到以下结果:

“---”表示版本库里的版本,由于我们只是将testfile.txt提交至暂存区,但还没有将暂存区里的testfile.txt提交至版本库,因此版本库里testfile.txt的文件版本是“无”(/dev/null)。

“+++”输入以下命令:表示当前工作区内的版本,(b/testfile.txt)

“@@ --soft 会执行下图中作1 只会改变HEAD引用的指向-0,0 +1,2 @@”

“-”表示版本库里的版本,如前面所述由于版本库里目前还没有testfile.txt,所以显示此时文件内容是从第0行到第0行;

+22222

表示当前工作区中testfile.txt的内容。

使用以下命令:

此时再查看仓库状态:

发现暂存区内对于testfile.txt文件已经没有了“new file”这一状态,证明testfile.txt文件的初始版本(即内容里只有一行“11111”)已被提交至版本库。

此时,再将版本库内容与工作区内容相比较:

由于初始版本中只有一行内容“11111”,所以初始版本状态是“-1”。

当前工作区内的testfile.txt有两行内容,所以是“+1,2”

+11111

+22222

表示目前工作区内textfile.txt文件的内容

再次使用“git add”命令将修改后的textfile.txt提交至暂存区:

查看此时仓库状态:

再次使用“git commit”命令将修改后的testfile.txt版本提交至版本库:

查看此时仓库状态:

发现关于testfile.txt文件的信息已全部消失,说明其修改版也已被提交至版本库。

再次使用“git diff HEAD”命令比较版本库里的版本和工作区的版本:

git的常用的几个命令

git add 基本的命令 将文件提交到index区

git co现在我们使用git add来分别添加两个文件:mmit 将文件提交到本地仓库

g当然可以用git add添加很多次文件,然后一次性用git commit来一次性提交。it push 提交到远程仓库

git checkout 用法很多执行 git reset --soft 7c5a658fbceb904ad877c4254d183e68aed1ddd0 命令,然后使用git status 查看文件状态。 接文件名就表示放弃当前的修改 接分支名表示切换到另一条分支

一本基础的git入门电子书 pro git简单易懂 适合入门级

git 日常用法

git submodel add remote_addr local_dir 子模块

git pull远程主机名>远程分支名>:本地分支名>

如果我们需要克隆到指定的目录,可以使用以下命令格式:

git push远程主机名>本地分支名>:远程分支名> , 和git pull 都是 src:dest

git fetch远程主机名>分支名>其实就是拉去远程分支到本地版本库,然后再使用 git merge

git merge 合并分支,将 合并到当前所在的分支, 比如 git merge ,将本地与自己的分支合并,比如 git merge origin/branch ,就是将远程的 origin/branch 与本地的分支合并 , 比如不自动commit,可以 git merge--no-commit 。 其实git merge 可以一次合并多个分支,比如 git merge origin/ 其实就是管你远程和本地了全部合到我的分支上。

git diff 在两个分支之间比较

git reset--mixed 将暂存区的分支直接回到到工作区, 也就是比如 git add. 你想回退到本地,直接 `git resrt --mixed

git reset--mixed HEAD~1 回退一个版本,比如你本地commit/远程已经push了,那么你本地和远程是一样的,如果你想回退一个版本,此时需要reset作,主要是解决回退的作,上面就是commit一次后需要回退一个版本,所以是 HEAD 1 , 比如commit了两次就是 HEAD~2 , 此时有4种选项,一般分为 --hard 和 --mixed , --soft , --hard 硬reset,回退回来你的这次修改全部没有了,也就是直接回到了上一个版本,而 --mixed 回退到你没有 git add. 作的时候, --soft 是回退到你 git add. 作完后的时候。 看需求吧。一般只用 --hard 和 --mixed .

git rm-r--cached. 比如修改了 gitignore ,但是其实你的版本库/暂存区是没有 ignore的,所以需要直接删除 暂存区的缓存。

git checkout. 清空本地所有修改的代码

git checkout-b 将本地的这个分支,checkout 出一个新的分支,名字为 git checkout-b origin/ ,将远程的 分支上 checkout一个新的本地分支名字为`

有些场景可能需要打tag,所以一般是 git pull ,拉去远程的所有代码(记得切换到上),然后 git tag 查看 tag 历史 ,创建一个新的tag ,比如 git tag v1.1.0 ,然后直接推送到远程 git push origin v1.1.0 就好了(一般是别人给你合了,上线可能需要打新的tag)

文件权限 发生变更需要配置:git diff old mode 100644 new mode 100755 的问题 :需要设置 git config --add core.filemode false

git log-p README.md 查看文件的变更详细 历史 , git log 查看文件的变更 历史 ,另外有可能查看某一行的变更,这个是指你没有ide的情况下,所以需要指定

在本地创建版本库,需要使用 git init 命令。然后

git shortlog-sn 查看提交者

文档:Git-工具-子模块

1、在父项目新建子模块

2、提交子模块

问题就是,提交流程过于复杂!!

git的reset和checkout的区别

此时,在testfile.tx提交暂存3.app.py文件已被成功提交至版本库;区的指定文件到版本库区:t文件中再添加一行“22222”,文件内容变为:

git checkout -- file;撤销对工作区修改;这个命令是以的存储时间(add和commit)为参照,覆盖工作区对应文件file;这个命令改变的是工作区

【学了就忘】Git作 — 14.Git基本作(一)

git reset --hard

要对现有的某个项目开始使用Git管理,只需到此项目所在的根目录,执行 git init 命令即可。

git status查看一下,修改只是添加到了暂存区,还没有提交:

准备一个新的Git本地版本库:

说明:初始化Git仓库后,在当前目录下会出现一个名为 .git 的目录,所有Git需要的数据和资源都存放在这个目录中。

不过目前,仅仅是按照既有的结构框架,初始化好了Git仓库中所有的文件和目录,但我们还没有开始跟踪管理项目中的任何一个文件。

使用 git status 命令进行查看。

进入本地版本库查看工作区、暂存区中文件的状态。

1)创建文件后查看工作区、暂存区中文件的状态

说明:

2)将工作区的文件添加到暂存区

执行 git add 命令,将 readme.txt 文件添加到暂存区。

3)再次查看工作区、暂存区状态

执行 git status 命令查看工作区、暂存区状态。

说明:

总结:

只要在 "Changes to be此时,CONTRIBUTING.md文件同时出现在暂存区和非暂存区,是因为,git add文件只是暂存了上次执行git add命令时文件的暂存,如若继续暂存,需要继续运行git status committed" 这行下面显示的文件,就说明是已暂存状态。

如果此时提交,那么该文件此时此刻的版本,将被留存在历史记录中。

在 git add 命令后面可以指明要跟踪的文件或目录路径。

如果是目录的话,就说明要递归跟踪该目录下的所有文件。(其实 git add 命令的潜台词就是把目标文件快照放入暂存区域,同时未曾跟踪过的文件标记为已跟踪。)

并执行 git status 命令查看工作区、暂存区状态。

可以看到结果, readme.txt 文件又成为了一个未被Git的文件。

git checkout与git reset有啥区别吗

git checkout -- file;撤销对工作区修改;这个命令是以的存储时间(add和commit)为参照,覆盖工作区对应文件file;这个命令改变的是工作区

git reset用于撤销作。

git reset [--hard | --mixed | --soft] []查看文件夹,可以看到包含有 .git 子文件夹,说明创建版本库成功了。

--hard 会执行下图中作123,参数hard会同时改变版本库的HEAD引用指向,缓存区内的内容,以及工作空间的内容,执行之后HEAD引用会指向commit指向的版本,同时缓存区内的内容也会以版本库HEAD指向的版本进行刷新,工作空间内的内我们做出这样的修改:容也会以HEAD引用指向的代码版本进行替代。

--mixed 会执行下图中作12 在该参数的情况下,工作空间内的内容不会被刷新,只会更新HEAD引用的指向以及缓存区的内容

git checkout我们在仓库目录中创建一个 readme.txt 文件后,在执行 git status 命令。一般用于切换分支,也可以用来回退代码

git checkout branchName切换分支到指定的分支上,使用的时候,需要注意,使用该命令工作空间下的内容会被指定的分支内容覆盖,在之前分支上面所做的没有提交的变动会丢失。 如果需要新建一个分支并使用新的分支,我们可以使用git checkout -b dev,这样我们就新建了一个名为dev的分支,并切换到该分支下面。

该命令默认以HEAD引用来创建分支,需要需要使用指定的版本号来创建分支,可以在后面跟上版本号。

win7关机没反应怎么办_win7关机没反应怎么办

笔记本电脑win7系统关机没反应的处理措施? 1、检查一下电源管理是否正常 win7关机没反应怎么办_win7关机没反应怎么办 win7关机没反应怎么办_win7关机没反应怎么办 win7关机没反应怎么办_win7关机没···

iphone13壁纸尺寸 iphone13壁纸尺寸几比几

iphone13壁纸尺寸比例 3、聊天背景图尺寸比例为9:16,你可以到手机相册中或第三方编辑软件对进行裁剪设置,在再中将其设置为聊天背景提即可。(WeChat)是腾讯公司于2011年1月21日推出的一款面向···

柳州市柳江区(柳州市柳江区基隆开发区小学

乐乐今天给分享柳州市柳江区的知识,其中也会对柳州市柳江区基隆开发区小学进行解释,希望能解决你的问题,请看下面的文章阅读吧! 柳州市柳江区(柳州市柳江区基隆开发区小学) 柳州市柳江···