该命令将删除系统中的文件.我的意思是它只从Git-repository中删除文件.
如何在不删除系统中的文件的情况下从Git存储库中删除该文件?
有没有办法使用命令git ls-files,只显示未跟踪的文件?
我问的原因是因为我使用以下命令来处理所有已删除的文件:
git ls-files -d | xargs git rm
Run Code Online (Sandbox Code Playgroud)
对于未跟踪的文件,我想要类似的东西:
git some-command --some-options | xargs git add
Run Code Online (Sandbox Code Playgroud)
我能够找到-o选项git ls-files,但这不是我想要的,因为它也显示了被忽略的文件.我还能够提出以下长而丑陋的命令:
git status --porcelain | grep '^??' | cut -c4- | xargs git add
Run Code Online (Sandbox Code Playgroud)
似乎我必须在这里使用更好的命令.如果没有,我如何创建自定义git命令?
有没有办法添加所有文件,无论你对它们做什么,是否删除,未跟踪等?喜欢提交.我每次提交时都不想拥有git add或git rm所有文件,特别是当我在处理大型产品时.
我删除了一些文件和git状态显示如下.
我承诺并推动.
GitHub仍然在存储库中显示已删除的文件.如何删除GitHub存储库中的文件?
# On branch master
# Changes not staged for commit:
# (use "git add/rm <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# deleted: modules/welcome/language/english/kaimonokago_lang.php
# deleted: modules/welcome/language/french/kaimonokago_lang.php
# deleted: modules/welcome/language/german/kaimonokago_lang.php
# deleted: modules/welcome/language/norwegian/kaimonokago_lang.php
Run Code Online (Sandbox Code Playgroud)
如果我使用git rm它,它给出以下.
usage: git rm [options] [--] <file>...
-n, --dry-run dry run
-q, --quiet do not list removed files
--cached only remove from the index
-f, --force override the …Run Code Online (Sandbox Code Playgroud) 当你使用
git rm --cached myfile
Run Code Online (Sandbox Code Playgroud)
它不会从本地文件系统中删除,这是目标.但是,如果您已经对文件进行了版本化并提交,将其推送到中央存储库,并在使用该命令之前将其拉入另一个存储库,它将从该系统中删除该文件.
有没有办法从版本控制中删除文件而不从任何文件系统中删除它?
编辑:澄清,我希望.
git rm将从暂存区域中删除条目.这与git reset HEAD"unstages"文件有点不同.通过"unstage"我的意思是它将暂存区域恢复到我们开始修改之前的状态.git rm另一方面,只需将文件完全从舞台上踢出,这样它就不会包含在下一个提交快照中,从而有效地删除它.默认情况下,a
git rm file将完全从暂存区域中删除文件,也将从磁盘>(工作目录)中删除.要将文件保留在工作目录中,您可以使用git rm --cached.
但究竟是什么区别git rm --cached asd和git reset head -- asd?
我有一个文件(config.php),已经提交给Git存储库,但我想在本地忽略,即我希望该文件保留在存储库中,但强制Git忽略对它的任何更改.
我将文件放入.gitignore,但它仍然标记为已更改,Git仍在尝试对其进行更改,每次我提交的内容.任何想法,我错过了什么或做错了什么?
可能重复:
如何恢复"git rm -r."?
Git SOS在这里.我在一个项目上工作了10个小时而没有提交(我知道,我知道)然后我git添加了太多文件,所以我尝试使用git rm并意外删除了所有内容.对我有希望吗?:(((
我不小心添加了一个图像文件夹并提交.然后,我又做了一次提交.然后我git rm -f ./images再次使用并提交了这些文件.
现在,我在那个分支(master)中做了很多提交.在我的HEAD中,我没有该./static/images文件夹.
因此,我的回购规模增加了很多.如何完全删除这些斑点?我想从我的远程GitHub仓库中删除它.
git ×10
git-rm ×10
gitignore ×3
git-add ×1
git-index ×1
git-ls-files ×1
git-remote ×1
git-reset ×1
git-stage ×1
git-status ×1