- git checkout中的-dry-run选项

Kar*_*ose 14 git git-checkout

git checkout --<dir_name(or)file_name>用来丢弃特定目录或文件中的所有更改.每当我这样做时,GIT都会从存储库中检出目录(或)文件.

有没有办法告诉GIT?" 不要覆盖变化,只要告诉我会发生什么. "

git clean -n(或)类似git clean --dry-run.

更新: 在执行之前git checkout --src/,我想看看哪些文件会被覆盖.我知道我们可以使用git status src/.但是,拥有它不是很好git checkout -n --src/吗?对用户的命令更改不多.

Dan*_*ruz 6

Git checkout命令没有dry-run(或类似)选项.但是,您可以使用Git ls-files命令查看哪些工作目录文件与以下内容不同HEAD:

git ls-files -dm -- src/
Run Code Online (Sandbox Code Playgroud)

这将列出已删除或修改的所有文件,通常由a覆盖的文件checkout.

另一种选择是使用Git diff命令:

git diff --name-only HEAD -- src/
Run Code Online (Sandbox Code Playgroud)

这将列出与HEAD不同的所有文件,并将替换为a checkout.

如果这是经常做的事情,您可能想要创建一个alias:

git config --global alias.lco "diff --name-only HEAD"
Run Code Online (Sandbox Code Playgroud)

然后你可以使用:

git lco -- src/
Run Code Online (Sandbox Code Playgroud)


ver*_*nzt 5

你可以跑

$ git checkout --patch -- <files>
Run Code Online (Sandbox Code Playgroud)

并询问每个差异是否要“签出”该差异。如果您对每个提示都说“否”,那么它会保持不变。