在我提交所有内容后,我将.gitignore添加到我的项目中。现在我想运行如下命令:
git rm --cached *everything_listed_in_gitignore*
Run Code Online (Sandbox Code Playgroud)
如何做到这一点?先感谢您。
我正在设置我的第一个git存储库并执行以下操作,
git init
Run Code Online (Sandbox Code Playgroud)
按照一些git-config的东西来设置远程服务器.然后我做了
git add directory
git status
Run Code Online (Sandbox Code Playgroud)
哎呀,我添加了一些我不想要的文件.好的,所以我应该gm rm从提交列表中删除目录并重新开始
git rm directory
Run Code Online (Sandbox Code Playgroud)
此时我应该正确阅读控制台消息和文档....但没有.所以我跑了
git rm directory -r -f
Run Code Online (Sandbox Code Playgroud)
咦?我的目录在哪里?啊,好吧,git删除了它,所以它"不在那里"了.所以试试吧,
git status
git reset --hard
Run Code Online (Sandbox Code Playgroud)
在没有成功,一些错误消息和一堆网络搜索后,我意识到我的失礼.我应该用过
git rm -r --cached directory
Run Code Online (Sandbox Code Playgroud)
它会从提交列表中删除它,但不会从我的文件系统中删除它.哎呦.幸运的是没有什么严重丢失
似乎应该有一种方法可以从中恢复,但我的大多数搜索最终都指向"--cached"选项...而且这有点晚了.没有提交,所以我不能只恢复/拉取文件(只有本地副本).
是否可以取回这些文件?
尝试按照git book中的描述更改子模块
$ git rm -r vendor/html-minifier
$ git submodule add https://github.com/kangax/html-minifier.git vendor/html-minifier
Run Code Online (Sandbox Code Playgroud)
但它失败了以下
rm 'vendor/html-minifier'
fatal: git rm: 'vendor/html-minifier': Is a directory
Run Code Online (Sandbox Code Playgroud) 我试图让我的 .gitingore 工作(链接到问题:))。
我刚刚做完
git rm . -r --cached
Run Code Online (Sandbox Code Playgroud)
现在,当我输入时,我有一个已删除文件的完整列表:
git status -s
Run Code Online (Sandbox Code Playgroud)
这是正常的吗?我可以安全地提交所有更改吗?
或者也许有办法撤消这个命令?
PS:我试图理解这个命令的作用,但我只发现了这个: http: //brianloomis.wordpress.com/2009/08/10/git-rm-r-cached/ 而且我不太清楚。
PS 2:好的:)为了拯救我的皮肤,我进行了重置:
git reset HEAD *
Run Code Online (Sandbox Code Playgroud)
已删除的文件已经再见了:) git status -s 中不再可见。但执行命令仍然安全:
git rm . -r --cached and then add and commit it?
Run Code Online (Sandbox Code Playgroud) 假设这是我在 git status 中查看的内容:
Changes not staged for commit:
modified: Makefile.in
Untracked files:
../node_modules/somepath/inverter_packet.js
Run Code Online (Sandbox Code Playgroud)
我想做的是将 Makefile.in 从“未暂存提交的更改”移动到“未跟踪的文件”。
我知道我可以忽略使用 所做的更改git update-index --assume-unchanged Makefile.in,并使用命令将它们取回--no-assume-unchanged,但我不想让这些文件完全脱离视图,因为我偶尔会编辑/提交它们。
我想从“未暂存”部分中删除文件,但在输入 时仍会看到它git status。
或者,如果我可以(最好是简单地)在输入时停止显示未暂存文件的差异(例如,像我的 Makefile.in 一样)git diff,那也很好。
我已将.idea文件添加到我的.gitignore文件中,这似乎工作正常。但是,由于我的.idea文件已经被跟踪,因此之前的帖子建议使用以下代码,以将它们从版本控制中移除。
git rm -rf .idea
Run Code Online (Sandbox Code Playgroud)
或者
git rm -r --cached .idea
Run Code Online (Sandbox Code Playgroud)
但是,无论哪种情况,我都会收到以下消息:
致命:路径规范“.idea”与任何文件都不匹配。
但是,当我在此文件夹中列出我的文件时,.idea就在最前面。
我究竟做错了什么?
我遇到了以下三种方法来取消由命令 'git add' 暂存的文件
git rm --cached <file>
git restore --staged <file>
git reset <file>
Run Code Online (Sandbox Code Playgroud)
当我一一运行这些命令时,它们的行为看起来完全相同。它们之间究竟有什么区别?
我第一次使用git,我有一个目录,里面写着几个程序并执行了以下步骤
git add .git commit,我收到了一条消息Aborting commit due to empty commit message.git rm -r -fls我丢失了所有代码.有什么方法可以让他们回来,我的愚蠢我甚至没有备份副本.到目前为止我所遵循的事情
我用Google搜索了一些发现的命令,但是它们没有用
git stash 如果我输入这个命令我得到
致命:糟糕的修改'HEAD'致命:糟糕的修订'HEAD'致命:需要单一修订您还没有初始提交
git reset HEAD,如果我输入这个命令我得到
致命:模糊的论点'HEAD':未知的修订或路径不在工作树中.使用" - "将路径与修订分开
我真的需要把这些文件拿回来!
我创建GIT时遵循的步骤
mkdir BareRepo BareRepo目录我做git init,git status,git config --bool core.bare true git clone BareRepo/ Programs/Programs目录中我做了以上所说的所有事情我正在使用 Rubygems,它在 git 中缓存了很多文件。简单的解决方案就是运行git rm -rf . --cached,但是当我运行它时,会出现以下消息:
fatal: pathspec '' did not match any files
Run Code Online (Sandbox Code Playgroud)
即使我运行git rm -rf ./\* --cached,它仍然返回:
fatal: pathspec '*' did not match any files
Run Code Online (Sandbox Code Playgroud)
有什么解决办法吗?
我将本地文件添加到git repo(git add .)并提交。
然后使用删除文件git rm *并再次提交(第二次提交)。该删除了本地和远程文件。
是否热衷于将文件从git(从第一次提交)返回到相同的本地文件夹?
谢谢。
我正在使用 PHPstorm,我想从 git 索引中删除隐藏文件夹 .idea。当我使用$git status我得到
C:\Program Files (x86)\Ampps\www\1stenglish IS [master +1 ~0 -0 !]> git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .idea/
nothing added to commit but untracked files present (use "git add" to track)
Run Code Online (Sandbox Code Playgroud)
但是当我想用命令从 git index 中删除它时,git rm --cached .idea/我得到了错误
fatal: pathspec '.idea' did not match any files
Run Code Online (Sandbox Code Playgroud)
我尝试了不同的路径选项,但没有结果:
git rm --cached .idea
git rm --cached .idea/* …Run Code Online (Sandbox Code Playgroud) 如果我们想删除一个文件(比如file1.txt)并停止git repo来跟踪它,据说我们应该使用git rm file1.txt然后git commit -m "..." 它。但通过操作系统从工作目录中删除rm file1.txt,add .然后git commit -m "..."执行相同的操作。他们有什么区别?