考虑以下工作流程:我在对类进行更改之后为类创建了新的(未跟踪)测试,这使得测试成为必要,然后意识到我需要更改另一组测试的逻辑,我认为这些测试会有所不同提交,所以我运行了git stash save -u
。然后,我意识到我需要进行藏匿测试。如何让它们尽可能简单?
我的方法是git stash branch
并检查未跟踪的测试文件(如How to get just one file from another branch中所述),但仅在应用存储时不发生冲突时才有效(警告:git stash branch
无论如何都会弹出存储并弄乱你的工作目录,尽管失败时会出现详细的错误信息,这就是去这里的方法。)
我只想要藏匿的未跟踪文件,而不是其余文件。
我在Ubuntu 17.10上使用git 2.14.1。
答案 0 :(得分:1)
以下是我根据评论解决这个问题的方法。
git checkout -b <clean branch, before changes>
git stash apply
在这里,您已经跟踪过&amp;未跟踪的文件。然后您可以使用:
git reset HEAD <tracked files>
git checkout <clean branch> -- <"tracked files">
这应该将它们重置为干净的分支状态。然后你只需要:
git add <untracked files>
git commit -m "Tests"
git checkout <old, dirty branch>
继续进行更改,直到准备好提交。
git commit -m "More Tests"
git merge <clean branch, before changes>
这里可能有一些错误,但我希望你能理解我想说的话。在这一点上,你可能会遇到冲突,但是你可以处理冲突。
编辑:当然,根据您拥有的更改次数,合并和处理冲突可能不是最佳/最快的方式。如果它像一个文件已更改,我会执行相同的流程,但在删除跟踪的文件后,我只会将<old, dirty branch>
中的更改引入{ {1}}。