问题标签 [git-rm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - Git - 如何删除上游仓库中的文件,而不是从我的 fork 中删除文件
我已经分叉了一个 repo(称为原始 repo upstream
),因为必须进行一些清理,但我想保留johannes
我使用的文件夹。
所以我继续删除了那个特定的文件夹
我认为通过在我的推送中声明上游仓库,该文件夹应该仍然可以在我自己的 fork 中使用。然而它也在那里消失了......
删除原始 repo 上的文件而不在 fork 上删除它们的最佳方法是什么?这甚至可能吗?
如何在我的 fork 存储库中恢复已删除的文件夹?(我在本地仍然有它,但如果我再次推动它,所有的历史都会消失)
git - GIT 从当前 HEAD 中删除特定提交的更改
认为
我最近添加或未添加到索引中的更改。现在我正在挑选一个特定的提交而不在我的 HEAD 上创建一个新的提交......
如何从索引中删除精选更改?我可以做一个
但我必须重做我之前添加的所有更改。
目的
如果一个人进行了存储,则无法将存储推送到遥控器。当前的 WIP 无法从另一个系统上的远程拉出以进行处理。所以我编写了 shell 函数来模拟 git-stash,除了我为每个存储使用分支。
apply
或通常会将隐藏的pop
更改应用于 WIP,但不会应用于当前索引。当我使用樱桃挑选来应用存储分支中的更改时,所有这些更改都将添加到索引中,之后我需要将它们从索引中删除。
编辑 (2018-01-29)
我阅读了@torek 的回答并理解了它。尽管如此,我还是喜欢分享我之前已经使用过的 bash 函数。
这还不是一个合适的解决方案,更不用说stash pop
.
git - git rm 和 git rm -f 有什么区别?
我正在阅读《Git Pro》一书,它说:
要从 Git 中删除文件,您必须将其从跟踪的文件中删除(更准确地说,将其从暂存区域中删除)然后提交。该
git rm
命令会执行此操作,并且还会从您的工作目录中删除该文件,这样您下次就不会将其视为未跟踪的文件。
下一段谈到git rm -f
:
如果您已修改文件并将其添加到暂存区域
-f
,则必须使用该选项强制删除。这是一项安全功能,可防止意外删除尚未记录在快照中且无法从 Git 恢复的数据。
我不明白的是在这两段中,他们都在谈论从同一区域删除文件(我猜是暂存git
,在之后添加屏幕截图的地方git add .
)。
如果这两个命令都用于从暂存区删除文件,那么有什么区别?
git-merge - Git替换整个目录
我在 git 中有一个目录,需要用新目录替换。新目录几乎没有修改、删除的文件,也很少有相同的文件。
例如:
我无法在不替换的情况下推送,因为我在存储库上执行了本地测试
我目前正在这样做,
即使我删除了 DirA 下的文件,我也会遇到合并冲突 (DU)。我假设它是由于“推动”没有完成。
有解决方法吗?或者,如果我要在合并冲突中选择新文件,即复制的文件,我该怎么做?
提前致谢。
维奈
git - 从整个 git 历史记录中删除文件
我知道这个问题已经被问过了,但是在每个答案中,我发现情况与我的情况略有不同,我不知道如何适应它。
所以这里是问题:
我克隆了一个存储库并添加了一个文件夹以在其中工作。在这个文件夹中,我添加了 .csv 文件和使用 csv 文件的 .py 文件。我试图推动这一点,但意识到这需要很长时间,因为 2 个 csv 文件非常大。所以我
然后提交。我尝试再次推送,然后才意识到删除文件不会将其从 git 历史记录中删除。// 所以现在,从上次完成的推送中,我有 2 个提交:1 个我添加文件的地方,1 个我删除的地方一些.csv。
我希望您能帮助我删除最后 2 次提交。这可行吗?谢谢
git - Git 恢复文件
我将本地文件添加到 git repo ( git add .
) 并提交。
然后删除文件git rm *
并再次提交(第二次提交)。这在本地和远程都删除了文件。
很想从 git (从第一次提交)将文件返回到同一个本地文件夹中?
谢谢。
git - 为什么 git rm --cached 不删除本地曾经跟踪的文件而是其他文件
在 git 存储库中取消跟踪文件时,使用git rm -r --cached .
. 这不会删除本地存储中曾经跟踪过的文件,但是当其他开发人员使用 获取此提交时git pull
,曾经跟踪过的文件将在他们的机器存储中删除。
您可以通过以下方式重现它:
- 保存当前工作。(机器 A )
- 创建一个新文件并提交它。(机器A)
- 从另一台机器(或另一个目录)拉取(机器 B)
立即显示文件
- 取消跟踪文件。(机器A)
立即显示文件
- 获取代码(机器 B)
立即显示文件
正如它显示的那样,git rm -r --cached .
删除其他仓库中曾经跟踪过的文件,但不在当前仓库中。
git - 停止在本地跟踪文件,但让其他 repo 用户继续跟踪它?
我正在使用 Git 和 GitHub 合作开发一个 IntelliJ IDEA 项目。repo 的原始创建者将 IntelliJ.idea
文件夹添加到 repo 中,我发现在提交对话框中不断弹出对 IDE 文件的更改很烦人。该.idea
文件夹实际上已添加到.gitignore
,但这是在它们已经被跟踪之后发生的。
我使用从本地存储库中删除了该文件夹,据git rm --cached -r -f .idea/
我了解,它从存储库中删除了文件。
但是,其他协作者仍然希望能够提交并将他们的更改推送到.idea
文件夹。所以我只想忽略.idea
本地的文件夹。
该文件夹及其内容现在会显示在提交对话框中deleted
,我担心如果我现在提交并推送,它也会影响其他协作者 - 对吧?我应该怎么做才能在本地忽略此文件夹但不影响仍然希望能够提交并将更改推送到文件夹的其他人?这甚至可能吗?
git - 如何从“git rm -rf”中恢复。并且仍然保留未提交的更改?
我在暂存索引中添加了一堆更改git add *
,但尚未提交,我想删除它们,撤消添加,所以令git rm -rf .
我惊讶的是,它从我的硬盘驱动器中删除了它们,我想要一种方法让它们回来; 然而,我已经做出了巨大的改变,我想把这些改变拿回来。
TLDR:我删除了我的整个项目git rm -rf .
,我需要一些方法来重置删除,以便我保留未提交的更改并取回我的文件。请我太害怕我可能会失去我的整个项目。
回答:我的存储库基本上是一个包含很多内容的网站,根据下面的答案,我制作了我的存储库的 2 个副本,我们称它们为副本 A 和副本 B,因为 AI 确实git reset --hard
回到了最新的提交,我得到了我的文件回来了,但丢失了我对它们所做的更改。所以对于副本 BI 做了git fsck --lost-found
并进入 .git/lost-found/other/ 目录,其中包含我的文件的多个哈希命名版本,我一直打开它们,顺便说一句,它们是 60 多个文件,我认识的每个文件我都将其重命名为它的实际名称,然后将它而不是旧版本放在副本 A 中,最后我删除了我的原始存储库,我现在使用副本 A 作为我的网站。就像现在什么都没有发生一样。一个小小的愚蠢错误 => 5 小时的痛苦。不要重复我所做的,永远不要。
现在git status
将我的所有文件显示为“已删除:”,并且显示为绿色。
git - 在 git pull 上保留已删除的文件
在我需要拉的几个提交中,有几个删除。这些文件属于一些不应该出现在 git 存储库中的基本项目文件(这首先是我们的错误,是的)。所以我担心删除这些文件可能会导致一些故障,我不想花时间修复它。
我正在寻找类似的东西
从远程仓库中删除文件但留在本地
我需要类似的东西
不会删除本地文件,但会将它们从跟踪的文件中删除