我使用以下命令从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