GIT - 编译和测试暂存区

10

我正在使用GIT,并且同时在处理两个任务:任务1和任务2。 现在,我想要将任务1推送到服务器上。因此,我将与任务1 (T1) 相关的所有文件提交到暂存区。

我的暂存区已经准备好推送到服务器了,但在执行此操作之前,我认为检查一下暂存区是否正在编译并通过测试是安全的。

如何获取一个工作目录与暂存区编译所需的唯一更改及运行自动化测试

注意:我不想运行工作目录的测试,仅想测试暂存区... 因为工作目录有来自 T1 和 T2 的变更。

3个回答

7
您可以使用git stash save将所有与当前任务无关的更改保存到一个存储区,然后运行测试,并使用git stash pop恢复这些更改。(如果是我,我会先阅读man git-stash以确保正确按顺序执行所有步骤。)

4
准确来说,在这种情况下,您需要使用 git stash save --keep-index 命令,它可以在暂存代码的同时只藏匿本地修改。 - musiphil
1
但是如果您有未跟踪的文件,即尚未添加到Git的文件,请小心。这些文件将不会被隐藏,因此您将无法意识到编译所需的新文件尚未添加到版本控制中。使用--include-untracked开关来隐藏它们:git stash save -k -u - Florian

3
这对我来说听起来像是你应该使用git分支。每个任务都应该在一个单独的分支上开发,你可以先推送一个分支,再合并从第一个完成的分支(任务)到第二个分支。
更多详情请参见这里

是的,我知道。但我只是想知道我所提到的情况会发生什么... - user1990009
是的,有些情况下使用分支是正确的答案,但并非总是如此。例如,您可能希望排除某些调试代码被列入暂存和提交,并测试暂存的代码是否构建和运行良好。 - musiphil

0
我有一个类似的项目。我使用分支来实现这个目标。我创建了一个src分支并在那里编写代码。一旦一切看起来都没问题,我就提交然后从那个点分支到一个bin分支。如果编译工作正常,我就提交它。然后我将src分支合并到master中。这种方法可以保持master分支干净,只有已知的可工作代码。并且将开发代码和编译文件保留在它们自己的独立分支中(我从不推送)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接