如何隐藏工作树的完整状态,包括被忽略,未跟踪,已暂存和/或未暂存的文件?

问题描述 投票:-2回答:1

我有一个客户,要处理一堆杂乱的事情,我想把它们藏起来,以便保持原始状态,但是以后可以回到混乱状态。我想藏起来然后恢复的东西可能包括:

  • .gitignore范围内的事物
  • 新的未跟踪文件
  • 新的,已跟踪但未暂存的文件(即git add -N
  • 暂存但未提交的文件。

简而言之,我希望通过使用git clone创建一个新客户端并在那里进行工作而获得相同的效果,但是全部都在同一客户端中。


编辑:在特定情况下,诸如git stash -a之类的东西无法完成我想要的事情:

touch new_file
git add -N new_file
git stash -a

导致错误并使stash完全不执行任何操作。

git git-stash
1个回答
1
投票

可以用git stash -a存储所有已跟踪,未跟踪和忽略的文件。这是git stash可用的最完整的选项。

如果需要更复杂的功能,或者需要其他功能,例如保留可执行位以外的权限,那么您就只能将文件复制到另一个目录或使用tar

您还可以使用git branch创建具有相同历史记录的另一个分支,并使用git worktree将其检出到其他位置,然后将文件复制过来。

© www.soinside.com 2019 - 2024. All rights reserved.