开发的时候有时候需要对已经提交的文件做忽略处理,这时候直接添加到.gitignore中是不行的。...需要忽略已跟踪文件的变动: git update-index --assume-unchanged 撤销忽略跟踪 git update-index --no-assume-unchanged
git 如何删除已经 add 的文件 ( 如何撤销已放入缓存区文件的修改) 使用 git rm 命令即可,有两种选择: 一种是 git rm --cached "文件路径",不删除物理文件,仅将该文件从缓存中删除...; 一种是 git rm --f "文件路径",不仅将该文件从缓存中删除,还会将物理文件删除(不会回收到垃圾桶)。...git --如何撤销已放入缓存区(Index区)的修改 修改或新增的文件通过 git add --all命令全部加入缓存区(index区)之后,使用 git status 查看状态 (git status...-s 简单模式查看状态,第一列本地库和缓存区的差异,第二列缓存区和工作目录的差异), 提示使用 git reset HEAD 来取消缓存区的修改。...不添加参数,撤销所有缓存区的修改。 另外可以使用 git rm --cached 文件名 ,可以从缓存区移除文件,使该文件变为未跟踪的状态, 同时下次提交时从本地库中删除。
使用Git管理代码工程,着实方便了很多,但是当做完feature分支或者完成hotfix之后,总是忘记删除这些无用的分支,一个一个地删除着实麻烦,重复手工劳动不符合程序员的风格,于是写了一个简单的脚本。...一键删除那些不需要的分支,让多余的干扰信息离开视线。 删除哪些分支? 删除的为Merge(合并)操作的源分支。...如果工程正在处于分支A(HEAD为A分支),分支B已经合并到了分支A,即A分支包含了B分支的内容,则会删除B分支。 代码 1 2 3 4 5 6 7 #!...branch system("git branch -d #{branch}") end 使用方法 1 ruby removeMergedBranches.rb your_git_project...If you are sure you want to delete it, run 'git branch -D develop_rtl'. 链接 在Github上的脚本
今天上传代码的时候忘记写 gitignore 了,一不小心把 node_modules 也传上去了,这破玩意体积巨大,所以要从上面删除。...执行命令: git rm -r --cached admin/node_modules git commit -m "删除node_modules" ? 下次 push 代码的时候就会发现已经删掉了。
git update-index --assume-unchanged 的真正用法是这样的: 你正在修改一个巨大的文件,你先对其 git update-index --assume-unchanged,...这样 Git 暂时不会理睬你对文件做的修改; 当你的工作告一段落决定可以提交的时候,重置改标识:git update-index --no-assume-unchanged,于是 Git 只需要做一次更新...,这是完全可以接受的了; 提交+推送。
刚接触 git 的时候,当碰到之前删除某个文件(比如图片)后面开发又需要恢复的时候,会采取非常笨的方法。从某一个文件存在的 commit 切换出一个新的分支,再将需要的某个文件拷贝出来。...git 其实本身就可以恢复被删除的文件。几个命令就可以了。 大多数我们是不知道在何时删除了某个文件,通过下面这个命令我们可以查看在哪个 commit 中删除了哪些文件。...比如我想恢复 ic_selected.png 这个文件,我们可以看到删除该文件对应的 commit id :f541888b0e7255cc6aa22a277f3dd9fe5502e5e2。...接下来我们执行下面这个命令 git checkout $commit~1 filename 这个命令会检出该 commit 的上一个提交中的文件,因为我们是在该 commit 中删除的文件,所以需要在上一个...执行该命令后的效果 ? 可以看到,执行完我们已经恢复了我们需要的文件。
,或者用rm命令删了: $ rm test.txt 这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了,git status命令会立刻告诉你哪些文件被删除了: $ git status On...小提示:先手动删除文件,然后使用git rm 和git add效果是一样的。...注意:从来没有被添加到版本库就被删除的文件,是无法恢复的! 小结 命令git rm用于删除一个文件。...如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。...,现在,撤销修改就回到和版本库一模一样的状态; 一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
最近因为公司项目的需要在研究学习git,碰到个问题,我将远程分支直接删除了,在本地并有删除于是我用 git branch -a 还可以可以看到远程存在此分支。...remotes/origin/newcarapi-test remotes/origin/test remotes/origin/newcarapi-test (其实是已经删除的,...master pushes to master (fast-forwardable) test pushes to test (up to date) 根据提示我们可以看到远程的已经不存在了.../product_library/newcar-api * [pruned] origin/newcarapi-test 执行完命令后在次用 git branch -a 查看,可以看到已经被删除...(git branch -r 只查看远程的分子) $ git branch -a master * test remotes/origin/HEAD -> origin/master
但是如果不小心将某个文件加入到Git的缓存区后,不管后面怎么删除这个大文件,Git始终都保存有这个文件的历史记录,因此项目会很大。...即使使用git rm命令删除当前的cnn.model文件,.git目录中还是记录有这个大文件的记录,因此后面别人clone这个项目后,项目还是很大。...因此这里需要使用git filter-branch命令来删除.git目录中的文件记录: $ git filter-branch --index-filter 'git rm -r --cached -...-ignore-unmatch ' -- --all 这是在你已知大文件的名字和目录情况下的删除过程。...data/model-400M.caffemodel' -- --all 删除引用并重新打包 这里需要删除.git/refs目录下的一些引用文件并重新打包,具体命令如下,比较固定: $ rm -Rf
git移除已经追踪的文件 有时候新增一个文件,会自动追加到git的版本控制当中,但是又不想提交到仓库。...,但是现在已经进入到版本控制当中了。...那么可以通过rm删除当前的控制状态: ml-py git:(master) ✗ git rm --cached work-testing/01-sex-predict/data.tg rm 'work-testing.../01-sex-predict/data.tg' 再次查看就发现已经到了未加入版本控制状态列表里面 ➜ ml-py git:(master) ✗ git status On branch master...有时候工程初始化并没有.gitignore文件,可以自己创建一个: touch .gitignore 然后手动编辑即可: # 敏感数据 *.tg # 排除工程文件 .idea/ 提交后,以后再创建的xxx.tg
将文件加入到忽略文件中 使用命令,已提交的文件如何恢复忽略 git rm –cached 文件 git rm –cached -r 文件夹 git rm –cached .
删除已经提交的.idea文件夹 git pull origin master # 将远程仓库里面的项目拉下来 //--cached不会把本地的test删除 git...rm -r --cached .idea # 删除.idea文件夹 git commit -m '删除.idea' # 提交,添加操作说明 git push -u...origin master # 将本次更改更新到github项目上去 git忽略某个目录或文件不上传 在.gitignore文件加调用文件夹/文件 node_modules...# 忽略文件夹 *.map # 忽略所有以.map结尾文件 .DS_Store /node_modules /dist /unpackage /.hbuilderx /tests/e2e/videos
可以使用以下方式删除仓库中的 .idea 文件。 1....删除项目重新 push(不推荐) 仓库里面的应用删除掉 本地应用中的 .git 文件删除掉 先添加 .gitignore 文件,然后 push 代码到仓库 这种方式比较适合在最开始的时候,如果有了很多...2. git 删除本地暂存区文件 修改 .gitignore 文件内容,添加 .idea 删除本地暂存区中的 .idea 文件 git rm --cached -r .idea 推到远端 git commit...-m 'delete .idea' git push 很多时候,只修改了 .gitignore,但是没有删除本地缓存中的 .idea 文件,总是觉得这个文件目录怎么每次都带上去,其实就是这个原因。...同样,除了 .idea 文件,其他文件都可以使用这种方式删除。 补充 关于 .gitignore 可以使用 IDEA 的插件 .ignore,可以在创建 .ignore 文件时勾选相关配置。
文章目录 一、报错信息 二、解决方案 一、报错信息 ---- 之前已经执行 git push origin --delete feature1 命令 , 删除了 feature1 远程分支 , 删除操作成功...-a 查询远程分支 , 发现仍然能查询到 remotes/origin/feature1 远程分支 ; D:\Git\git-learning-course>git branch -a * master...push origin --delete feature1 命令 , 是无用的 , 只会提示错误信息 ; 二、解决方案 ---- 执行 git remote show origin 命令 , 可以列出在本地分支中对应的远程分支..., 也就是本地分支执行 git push 命令 , 代码会被推送到哪个远程分支 ; D:\Git\git-learning-course>git remote show origin warning:...pushes to master (up to date) 然后 , 执行 git remote prune origin 命令 , 可以同步本地远程分支 , 也就是删除 feature1 分支 ;
参考文章: 解决.gitignore文件忽略规则无效git依然跟踪修改的问题
有时候gitignore没做好,一不小心就又进来一个二进制文件 在重复了N次Google之后,还是记一下吧 首先通过rev-list来找到仓库记录中的大文件: 1 git rev-list --objects...--all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}...')" 然后通过filter-branch来重写这些大文件涉及到的所有提交(重写历史记录): 1 git filter-branch -f --prune-empty --index-filter '...git rm -rf --cached --ignore-unmatch your-file-name' --tag-name-filter cat -- --all 再删除缓存的对象,顺便瘦身一下:...1 2 3 git for-each-ref --format='delete %(refname)' refs/original | git update-ref --stdin git reflog
删除文件 src/file-to-delete.txt 替换为要删除的文件路径 git filter-branch --force --index-filter 'git rm --cached --...ignore-unmatch src/file-to-delete.txt' --prune-empty --tag-name-filter cat -- --all 控制台输出,已经完成删除 WARNING...: git-filter-branch has a glut of gotchas generating mangled history rewrites....Hit Ctrl-C before proceeding to abort, then use an alternative filtering tool such as ‘git filter-repo...’ (https://github.com/newren/git-filter-repo/) instead.
那么如何把这个压缩包彻底从 git 删除? 如果需要删除 git 的历史记录,使用方法很简单,请看 Git如何永久删除文件(包括历史记录) - shines77 - 博客园 。...如果你不小心把大文件提交其它的分支,记得切换的就是你提交的分支。 如果提交大文件只是在自己的分支,并且放到了远程分支,那么合并到远程开发分支,那么只需要删除自己远程分支就好了,不需要继续往下做。...接下来是如果在开发之前已经拉下存在大文件的开发分支并且在他之后有提交,那么需要创建一个新的分支在合并之前。 ? ? 然后把提交 pick 到新分支 ?...删除原来分支,这样就好 最后的命令是使用 gc 清掉这个提交 这时候查看自己的git 文件夹,如果文件夹还是那么大,那么说明还有一个分支是引用提交大文件,需要自己去看一下是哪个分支。...需要说明,git 如果提交一个文件,然后删除他,继续提交,那么这个文件是存在 git 中,需要使用特殊的命令才可以删除。
git项目中有时候会在本地增加或者删除了一些文件或者文件夹,但是又不想提交,一般情况下,我们取消本地所有修改: git checkout ....取消指定文件修改: git checkout filename 取消指定文件删除: git checkout filename 恢复到上一个版本,则可以解决整个文件夹删除的修改: git reset...--hard HEAD^ 取消本地增加的文件和所有修改: git checkout . && git clean -df
部分场景中,我们会希望删除远程仓库(比如GitHub)的目录或文件。...具体操作 拉取远程的Repo到本地(如果已经在本地,可以略过) $ git clone xxxxxx 在本地仓库删除文件 $ git rm 我的文件 在本地仓库删除文件夹 $ git rm -r...我的文件夹/ 此处-r表示递归所有子目录,如果你要删除的,是空的文件夹,此处可以不用带上-r。...提交代码 $ git commit -m"我的修改" 推送到远程仓库(比如GitHub) $ git push origin xxxxxx 补充: git rm 查看git rm的说明文档: $ git...-n, --dry-run 演习 -q, --quiet 不列出删除的文件 --cached 只从索引区删除 -f, --force 忽略文件更新状态检查 -r 允许递归删除 --ignore-unmatch
领取专属 10元无门槛券
手把手带您无忧上云