我和队友讨论了git。我试图说服他,他应该使用amend,rebase -i并使用有意义的提交消息。他只是问“为什么”,嗯……这是一个很好的问题。我尝试使用干净的历史记录之类的参数,更易于阅读和查找错误,而且看起来不错。他只是说,地狱读git commit或检出树的人,每个人都只是提交-推送,当时间到时将其合并。何必?
老实说,我不知道该说些什么。最糟糕的是,团队中其他成员的想法相似。有人可以帮我吗,我怎么能说服他们做更多的工作以保持git干净?
最糟糕的是,我是团队中的新人,比其他人年轻得多,所以我不能只使用经验更丰富的开发人员卡。
编辑
由于对rebase的含义存在误解:我尝试说服团队在进行本地更改时在未推送的本地分支上使用rebase -i。如果您没有及时修改,只是为了清理。
我试图理解 JVM 字节码,但我遇到了以下代码:
58: invokeinterface #5, 1 // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;
63: invokedynamic #6, 0 // InvokeDynamic #0:test:()Ljava/util/function/Predicate;
68: invokeinterface #7, 2 // InterfaceMethod java/util/stream/Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
Run Code Online (Sandbox Code Playgroud)
似乎计数值总是nargs + 1(在 58 中:应该是 0 但为 1,在 68 中:应该是 1 但为 2)。
根据JVM 文档:
计数操作数是一个不能为零的无符号字节
这就是为什么一些参数似乎是nargs + 1 的原因吗?
我想这是一个基本问题,但是为什么没有sload指令?为什么您可以加载除short之外的所有基元?(有saload,但仍然...)
对于:
public class ShortTest {
public void test() {
short i = 1;
System.out.print(i);
}
}
Run Code Online (Sandbox Code Playgroud)
编译器仍使用iload_1。是因为16位类型短而处理器能处理更好的32位(因为所有现代处理器都是32/64位)?