我需要从源代码库中拉取更改,但是有一个库更新到了最新版本,并且导致了我的应用程序崩溃。我想拉取最近的更改,然后只回到包含问题库的一个文件夹的以前(或指定的)版本。有什么办法可以做到这一点吗?
我需要从源代码库中拉取更改,但是有一个库更新到了最新版本,并且导致了我的应用程序崩溃。我想拉取最近的更改,然后只回到包含问题库的一个文件夹的以前(或指定的)版本。有什么办法可以做到这一点吗?
git checkout LAST_WORKING_COMMIT -- vendor/library/in/question
这将检出版本为LAST_WORKING_COMMIT
的文件夹。不过,git status
命令会显示文件已被修改:
这会检出LAST_WORKING_COMMIT
版本下的文件夹。但是,git status
指令会提示文件已被修改:
$ git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: vendor/library/in/question/file.exe
#
no changes added to commit (use "git add" and/or "git commit -a")
git update-index --assume-unchanged vendor/library/in/question
做的就是这个。不是一个非常直观的命令 :-(。要撤销:git update-index --no-assume-unchanged vendor/library/in/question
。 - BoldewynLAST_WORKING_COMMIT
之后添加的文件将不会被删除。 - luatorrm -fr vendor/library/in/question
以获得该结果。 - Boldewyn使用额外的参数来执行git checkout
命令:
git checkout REV -- folder
git show 19bf5f6:someFile.java
。 - Sridhar Sarnobat