我在git中遇到了stash
命令,我真的不明白这种命令的好处。
假设我在foo_branch
中创建了一些临时更改,我想在bar_branch
结帐。我通常的做法是在temp commit
中使用foo_branch
消息创建提交,然后在bar_branch
上执行结帐。然后,如果我想回到foo_branch
,我会执行结帐并丢弃foo_branch
的上次提交(保留更改),然后我继续工作。
在我看来,stash
命令只是做这种事情的另一种方式。
stash
命令的真正好处是什么?也许这只是这种情况的捷径?
答案 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)