从使用“git”跟踪的文件夹中删除文件夹,但在另一台主机上执行“git pull”时不要从文件系统中删除该文件夹



我使用以下命令从git跟踪中删除了一个文件夹:

git rm -r --cached path_to_your_folder/

之后,我把路径放进我的.gitignore,做了一个git commit.我预计在我执行git pull后,path_to_your_folder将在另一台主机上保持不变,但整个文件夹已从文件系统中删除。如何防止这种情况并将文件夹保留在执行git pull的主机的文件系统上?

我找不到任何仅使用标志或其他命令完全适合的东西,但是经过一些研究,我找到了一种解决方法,即使在从git pull中删除后也可以恢复它。

它使用一些命令,如下所示:

git pull && git checkout <last-commit-with-folder> path_to_your_folder/ && git reset

这行得通,但并不漂亮。

首先它执行git pull,然后它使用 git checkout 从 git 历史记录中恢复文件或文件夹,然后由于结帐的行为而删除对 git 索引的添加,使用 git reset ,离开存储库就像没有删除任何东西一样。

如果最后一个带有文件夹的提交是上一个,那么您可以使用这个:

git pull && git checkout HEAD^ path_to_your_folder/ ** git reset

最新更新