您的位置:首页 > 本地本地

Git移除暂存区(index)文件

admin2024-05-31人已围观

一、Git移除暂存区(index)文件

例如,移除readme.txt

这个操作相皮物液当于将文件从Git和磁盘删除。

同样还是readme.txt文件,我们不想跟踪它,但是不小心用git add将它添加进了暂存区,此时可以使用下面的命令:

这将会使readme.txt文件变为untracked状态(无论它是否被提交过),但它仍在工作目录中(即不会从磁盘删除)。

使用这个命令移除暂存区的文件,要求这个文件必须是新增的,没有被提交过,这个命令不能对从仓库拉取的文件生效。

这个命令有2个作用:

1、当一个文件从没有被git跟踪过,首次add进入暂存区时,使用这个命令可以将这个文件移除暂存区。

2、如果是刚刚燃物pull的仓库下的蚂激文件或者一个已经commit的文件,使用这个命令可以丢弃对这个文件的修改。

二、gitlab删除远端or本地某个文件

删除本地分支

git branch -d 会在删除前检查merge状态(其与上游分支或者head)。

git branch -D 分支名 是 git branch --delete --force 的简写,它伍局冲会直腔歼接删除。

删除远程分支 git push origin –delete 分支名

删除暂存区: git rm --cached 文件名 (--cached 表示只删除缓存区中腊燃的内容)

三、git删除历史记录缩小存储

pyright © 1999-2020, CSDN.NET, All Rights Reserved

打开APP

[Git]删除git文件历史记录 原创

14:40:04

1点赞

加拉萨假期

码龄6年

关注

不小心把不想加入git的文件提交到了git仓库中,执行如下步骤,即可将指定文件从git的历史记录中永久举悄旦删除。

操作具有危险性,请自行将原仓库压缩备份,以防万一。

1、筛选感兴趣的文件,并将其从git历史记录缓存中删除。我这里是把历史中的所有.xz压缩文件给删了。如果正扰你的目标是个目录,那么需要在git rm --cached 后面加个 -r,懂的都懂。

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch *.xz' --prune-empty --tag-name-filter cat -- --all

2、删除git历史文件备份。

rm -rf .git/refs/original/

3、设置git历史记录的过期时间为此刻,这样放弃了所有历史的找回功能。

git reflog expire --expire=now --all

4、该删的都删完了,清空悬空对象。以下两条命令可以选一个执行,加了--aggressive之后,会更深度的进行垃圾回收,但是需要花费更多的cpu资源(又何妨?又不是天天执行。)

git gc --prune=now

git gc --aggressive --prune=now

5、最后更新远端仓库。至此,所有运渗的*.xz文件就从历史中永远消失了。。。

git push origin --force --all

四、修改.gitignore后,git冲突解决

首先贴一下我们项目里面的 .gitignore 文件内容:

在git 使用过程中,我们更新.gitignore文件,贺橘腊再提交的时候会发生冲突,使用以下git 命令可删除缓存伍毕,进行更新。禅滑

很赞哦! ()

上一篇:谁知道阳春市哪些建筑公司招人?'>谈谈自媒体、新媒体和融媒体

下一篇:返回列表'>返回列表

随机图文