stash命令的真正好处是什么?

时间:2016-11-23 12:33:54

标签: git

我在git中遇到了stash命令,我真的不明白这种命令的好处。

假设我在foo_branch中创建了一些临时更改,我想在bar_branch结帐。我通常的做法是在temp commit中使用foo_branch消息创建提交,然后在bar_branch上执行结帐。然后,如果我想回到foo_branch,我会执行结帐并丢弃foo_branch的上次提交(保留更改),然后我继续工作。

在我看来,stash命令只是做这种事情的另一种方式。

stash命令的真正好处是什么?也许这只是这种情况的捷径?

5 个答案:

答案 0 :(得分:2)

function getAllIDs(datain) { var MAX_SIZE = typeof(datain.size) == 'undefined' ? 200 : datain.size; var INDEX = 0; if (typeof(datain.index) !== 'undefined') { INDEX = datain.index * MAX_SIZE; MAX_SIZE += INDEX; } /*** Define search filters ***/ var NS_filters = new Array(); var columns = new Array(); columns[0] = new nlobjSearchColumn('lastmodifieddate').setSort(1); var search = **nlapiCreateSearch(datain.recordtype, NS_filters, columns)** var results = search.runSearch(); var records = results.getResults(INDEX, MAX_SIZE); return records; } 命令可以保存索引的当前状态,工作目录和未跟踪文件。运行stash比确定要添加到暂存区域的哪些更改并使用提交消息提交要快得多。

此外,存储可以应用于与最初创建的位置不同的位置。您可以通过暂时提交当前分支,切换到另一个分支,挑选您的提交,然后将其从最初创建的位置删除来实现。

如果您需要做其他事情,这只是获得干净工作目录的快捷方式。

答案 1 :(得分:2)

您的工作流程没有任何问题。在git中,您可以使用不同的命令集来实现许多功能。

IMO您可以将存储视为本地提交,而不会附加到特定分支。也就是说,在您开始工作的情况下,您可以存储更改,获取新更改,更新分支,进行一些更改,提交它们并自由地使用git存储库,然后从存储中弹出已保存的工作。或者你甚至可以把你的工作推向另一个分支。

答案 2 :(得分:1)

我通常会隐藏我经常需要的更改,而且我不想每次都手动重做。

用例:硬编码的api凭证供内部使用。我想使用我的用户的凭据,所以我更改它们一次并存储更改。下次我检查一个分支并需要做一些api查询,我只是应用存储。 (是的 - 是的,凭据应该在env vars中,我知道)。

或者你也可以在某些地方调试打印。他们永远不会让你承诺。但是很有可能,你再次需要它。

答案 3 :(得分:0)

提交分为暂存和实际提交两个步骤

暂存就像在提交更改之前保存更改并将其存储在 Git 中

暂存非常重要,以防万一你做了一些更改,但你现在仍然不想提交它并想签出到特定的分支,所以这些更改将被删除,然后我们必须暂存它(本地存储在 Git 中以提交稍后)

答案 4 :(得分:-1)

以下是文件生命周期状态的可视化图表:

Git file lifecycle