小编Atr*_*tri的帖子

Git - 我们可以恢复已删除的提交吗?

我很惊讶,我在SO上找不到答案.

我们可以在git中恢复/恢复已删除的提交吗?

例如,这就是我所做的:

# Remove the last commit from my local branch
$ git reset --hard HEAD~1

# Force push the delete
$ git push --force
Run Code Online (Sandbox Code Playgroud)

现在,有没有办法找回被删除的提交?git是否在内部记录(记录)删除?

git restore git-commit

53
推荐指数
3
解决办法
3万
查看次数

如何在jq中选择多个字段

我的输入文件看起来像这样:

{
"login": "dmaxfield",
"id": 7449977,
...
}
{
"login": "dmaxfield",
"id": 7449977,
...
}
Run Code Online (Sandbox Code Playgroud)

我可以用这个得到所有的登录名: cat members | jq '.[].login'

但我无法破解语法来获取登录名和身份证?

jq

53
推荐指数
5
解决办法
4万
查看次数

向内螺旋树遍历

我遇到了一个有趣的问题:

给定二进制树以向内螺旋顺序打印它,即第一打印级别1,然后是级别n,然后是级别2,然后是n-1,依此类推.

For Ex:
1
2 3
4 5 6 7
8 9 10 11 12 13 14 15

Should Output:
1 15 14 13 12 11 10 9 8 2 3 7 6 5 4
Run Code Online (Sandbox Code Playgroud)

我想到了一个解决方案:

  • 将每个级别元素存储在列表
    列表中[0] = [1]
    列表[1] = [2,3]
    列表[2] = [4,5,6,7]
    列表[3] = [8,9,10 ,11,12,13,14,15]

  • 按所需顺序(0,n-1,1,n-2,...)循环列表列表并打印.以下n是在上述情况下为4的级别数.

它的空间复杂度为O(n).我相信可能有一个更好的解决方案,它有更好的空间复杂性,但我想不出它.任何人有任何指针?

java algorithm tree traversal tree-traversal

5
推荐指数
1
解决办法
685
查看次数

如何找到查询结果的大小

我在rails中有以下查询:

records = Record.select('y_id, source')
                .where(:source => source, :y_id => y_id)
                .group(:y_id, :source)
                .having('count(*) = 1')
Run Code Online (Sandbox Code Playgroud)

如果我得到以下输出puts records
[#<Record source: "XYZ", y_id: 10000009>, #<Record source: "XYZ", y_id: 10000070>]

看起来输出数组中有2个元素。但是当我尝试做时,records.size我得到:
{[10000009, "XYZ"]=>1, [10000070, "XYZ"]=>1}

  • 当记录是具有2个元素的数组时,为什么不records.size打印2group by查询结果是否由于某些原因而有所不同?

  • 我应该怎么做才能得到 records

arrays sqlite activerecord group-by ruby-on-rails

3
推荐指数
1
解决办法
1531
查看次数

修改非不可变对象,java

我对这个例子感到困惑:

StringBuilder a = new StringBuilder("abcde");
String subStr = a.substring( a.indexOf("a") , a.indexOf("c")  );
int leng = a.length();
char ch = a.charAt(4);
System.out.println( subStr + " " + leng + " " + ch);
//the result will be : subStr = abc  , leng = 5  ch = e
Run Code Online (Sandbox Code Playgroud)

我的问题是:为什么ch = e并且它不会创建异常?

我的想法:
我有一个 StringBuilder,一个非不可变的对象,如果我在该对象上使用一种方法,它将返回一个具有相同引用对象的对象的新值。

  • 为什么我使用时a.substring ( int a, int b ),没有修改StringBuilder对象?
  • 为什么如果我使用该方法,a.append("value")我会修改 StringBuilder 对象的值?

java stringbuilder substring

-5
推荐指数
1
解决办法
241
查看次数