精华内容
下载资源
问答
  • 先忽略没引jquery.js的问题,这是一个案例。 当我们点击提交时,控制台输出两次e,在network里查看,可以看到我们的ajax传输了两次,造成了数据重复提交。 一种解释为button的type为submit,和type='button'不同,...

    如下一段代码:

    先忽略我没引jquery.js的问题,这是一个案例。

    当我们点击提交时,控制台输出两次e,在network里查看,可以看到我们的ajax传输了两次,造成了数据重复提交。

    一种解释为button的type为submit,和type='button'不同,submit有自己的默认行为,也就是说当你点击了他之后,他就会进行提交,从而导致重复提交,而type=button需要进行

    ajax的跳转才能实现提交功能。所以解决办法,就是将submit换成button。

    但是我是jquery创建的button,type=button,提交时点击一次提交一次,第二次提交两次,第三次提交三次,网上解释是append的导致的,我没用append,找不到其他原因。

    后来找到jquery的一个命令,

    即,每次点击button时,都清除该元素的所有绑定事件。然后就好了,代码如下:

    有一些确定按钮,比如当我们点击的时候,只需要他执行一次命令,但是当你双击,或者更快速的的点击的时候,他会重复执行一个命令,比如,重复请求ajax,比如定时器,当你没有清除的时候,他会重复定时,导致你的定时器已经紊乱了。jquery中,有一个one事件,请看他的描述:

    转载于:https://www.cnblogs.com/xuyan1/p/6256876.html

    展开全文
  • 查看用户曾经推送到GitHub的每个提交的提交哈希 未完成仍在努力使该存储库发挥全部功能。 为什么? 通常,您有一个提交哈希,然后将其粘贴到GH问题中,而GH不会自动链接它。 这仅表示提交哈希与问题本身不在同一...
  • 在一个flink任务提交后,去 WebUi去查看偏移量指标,发现值竟然是个负数(如下图): 这个指标官网上给出释义是:对于每个分区,最后一次成功提交到Kafka偏移量;所以不管怎么说,这个值都不是正常。 2....

    1.问题

    在一个flink任务提交后,我去 WebUi去查看偏移量的指标,发现值竟然是个负数(如下图):
    在这里插入图片描述
    这个指标官网上给出的释义是:对于每个分区,最后一次成功提交到Kafka的偏移量;所以不管怎么说,这个值都不是正常的。

    2.结论

    先给问题的结论(解决办法):之所以出现这样的值,是因为没有设置checkpoints的原因。

    3.详解

    但为什么不设置ck,这个指标就会变成负值呢?这就要我们深入源码去看啦

    首先,我们定位到这个类:

    org.apache.flink.streaming.connectors.kafka.internals.AbstractFetcher

    /**
     * For each partition, register a new metric group to expose current offsets and committed offsets.
     * Per-partition metric groups can be scoped by user variables {@link KafkaConsumerMetricConstants#OFFSETS_BY_TOPIC_METRICS_GROUP}
     * and {@link KafkaConsumerMetricConstants#OFFSETS_BY_PARTITION_METRICS_GROUP}.
     *
     * <p>Note: this method also registers gauges for deprecated offset metrics, to maintain backwards compatibility.
     *
     * @param consumerMetricGroup The consumer metric group
     * @param partitionOffsetStates The partition offset state holders, whose values will be used to update metrics
     */
    private void registerOffsetMetrics(
    		MetricGroup consumerMetricGroup,
    		List<KafkaTopicPartitionState<KPH>> partitionOffsetStates) {
    
    	for (KafkaTopicPartitionState<KPH> ktp : partitionOffsetStates) {
    		MetricGroup topicPartitionGroup = consumerMetricGroup
    			.addGroup(OFFSETS_BY_TOPIC_METRICS_GROUP, ktp.getTopic())
    			.addGroup(OFFSETS_BY_PARTITION_METRICS_GROUP, Integer.toString(ktp.getPartition()));
    
    		topicPartitionGroup.gauge(CURRENT_OFFSETS_METRICS_GAUGE, new OffsetGauge(ktp, OffsetGaugeType.CURRENT_OFFSET));
    		topicPartitionGroup.gauge(COMMITTED_OFFSETS_METRICS_GAUGE, new OffsetGauge(ktp, OffsetGaugeType.COMMITTED_OFFSET));
    
    		legacyCurrentOffsetsMetricGroup.gauge(getLegacyOffsetsMetricsGaugeName(ktp), new OffsetGauge(ktp, OffsetGaugeType.CURRENT_OFFSET));
    		legacyCommittedOffsetsMetricGroup.gauge(getLegacyOffsetsMetricsGaugeName(ktp), new OffsetGauge(ktp, OffsetGaugeType.COMMITTED_OFFSET));
    	}
    }
    

    我们可以看到registerOffsetMetrics这个方法中:

    topicPartitionGroup.gauge(COMMITTED_OFFSETS_METRICS_GAUGE, new OffsetGauge(ktp, OffsetGaugeType.COMMITTED_OFFSET));
    

    很明显,要提交的offset被封装到ktp的这个对象中;于是进入该对象,是个KafkaTopicPartitionState类型:

    public KafkaTopicPartitionState(KafkaTopicPartition partition, KPH kafkaPartitionHandle) {
    		this.partition = partition;
    		this.kafkaPartitionHandle = kafkaPartitionHandle;
    		this.offset = KafkaTopicPartitionStateSentinel.OFFSET_NOT_SET;
    		this.committedOffset = KafkaTopicPartitionStateSentinel.OFFSET_NOT_SET;
    	}
    
    /** Magic number that defines an unset offset. */
    	public static final long OFFSET_NOT_SET = -915623761776L;
    

    这里我们就可以看到我们要的指标committedOffset在一开始的时候,就会被初始化一个这样的负值;
    到这里我们似乎明白了在web ui中看到的负值是怎么来的了,但是为什么我们提交的偏移量没有赋值到committedOffset这个指标上呢?那我们就要把问题定位到提交offset的代码上了,我们继续往下看这个类:

    org.apache.flink.streaming.connectors.kafka.FlinkKafkaConsumerBase

    public final void notifyCheckpointComplete(long checkpointId) throws Exception {
    		if (!running) {
    			LOG.debug("notifyCheckpointComplete() called on closed source");
    			return;
    		}
    
    		final AbstractFetcher<?, ?> fetcher = this.kafkaFetcher;
    		if (fetcher == null) {
    			LOG.debug("notifyCheckpointComplete() called on uninitialized source");
    			return;
    		}
    
    		if (offsetCommitMode == OffsetCommitMode.ON_CHECKPOINTS) {
    			// only one commit operation must be in progress
    			if (LOG.isDebugEnabled()) {
    				LOG.debug("Consumer subtask {} committing offsets to Kafka/ZooKeeper for checkpoint {}.",
    					getRuntimeContext().getIndexOfThisSubtask(), checkpointId);
    			}
    
    			try {
    				final int posInMap = pendingOffsetsToCommit.indexOf(checkpointId);
    				if (posInMap == -1) {
    					LOG.warn("Consumer subtask {} received confirmation for unknown checkpoint id {}",
    						getRuntimeContext().getIndexOfThisSubtask(), checkpointId);
    					return;
    				}
    
    				@SuppressWarnings("unchecked")
    				Map<KafkaTopicPartition, Long> offsets =
    					(Map<KafkaTopicPartition, Long>) pendingOffsetsToCommit.remove(posInMap);
    
    				// remove older checkpoints in map
    				for (int i = 0; i < posInMap; i++) {
    					pendingOffsetsToCommit.remove(0);
    				}
    
    				if (offsets == null || offsets.size() == 0) {
    					LOG.debug("Consumer subtask {} has empty checkpoint state.", getRuntimeContext().getIndexOfThisSubtask());
    					return;
    				}
    
    				fetcher.commitInternalOffsetsToKafka(offsets, offsetCommitCallback);
    			} catch (Exception e) {
    				if (running) {
    					throw e;
    				}
    				// else ignore exception if we are no longer running
    			}
    		}
    	}
    

    上面的方法里有一个判断逻辑,然后当你的提交模式用了ck时,走了一个commitInternalOffsetsToKafka的方法:

     if (offsetCommitMode == OffsetCommitMode.ON_CHECKPOINTS)
    //......
    fetcher.commitInternalOffsetsToKafka(offsets, offsetCommitCallback);
    

    进入该方法后发现又调用了一个doCommitInternalOffsetsToKafka方法:

    public final void commitInternalOffsetsToKafka(
    			Map<KafkaTopicPartition, Long> offsets,
    			@Nonnull KafkaCommitCallback commitCallback) throws Exception {
    		// Ignore sentinels. They might appear here if snapshot has started before actual offsets values
    		// replaced sentinels
    		doCommitInternalOffsetsToKafka(filterOutSentinels(offsets), commitCallback);
    	}
    

    然后会跳到org.apache.flink.streaming.connectors.kafka.internal.Kafka09Fetcher 的 doCommitInternalOffsetsToKafka方法:

    protected void doCommitInternalOffsetsToKafka(
    			Map<KafkaTopicPartition, Long> offsets,
    			@Nonnull KafkaCommitCallback commitCallback) throws Exception {
    
    		@SuppressWarnings("unchecked")
    		List<KafkaTopicPartitionState<TopicPartition>> partitions = subscribedPartitionStates();
    
    		Map<TopicPartition, OffsetAndMetadata> offsetsToCommit = new HashMap<>(partitions.size());
    
    		for (KafkaTopicPartitionState<TopicPartition> partition : partitions) {
    			Long lastProcessedOffset = offsets.get(partition.getKafkaTopicPartition());
    			if (lastProcessedOffset != null) {
    				checkState(lastProcessedOffset >= 0, "Illegal offset value to commit");
    
    				// committed offsets through the KafkaConsumer need to be 1 more than the last processed offset.
    				// This does not affect Flink's checkpoints/saved state.
    				long offsetToCommit = lastProcessedOffset + 1;
    
    				offsetsToCommit.put(partition.getKafkaPartitionHandle(), new OffsetAndMetadata(offsetToCommit));
    				partition.setCommittedOffset(offsetToCommit);
    			}
    		}
    

    里面有个逻辑:

    partition.setCommittedOffset(offsetToCommit)

    在这里,发现offsetToCommit被重置了,至此真相大白;

    梳理一下的话是这样的:
    当flink提交offsetToCommit会判断当前的模式

    if (offsetCommitMode == OffsetCommitMode.ON_CHECKPOINTS)
    

    如果当前没用ck,offsetToCommit这个指标的值没有更新,是初始值-915623761776L;
    如果当前用了ck,那么最后会走到一个

    partition.setCommittedOffset(offsetToCommit)

    这样的逻辑来更新offsetToCommit的指标;所以没有设置ck时,webui上的该值为负数。

    展开全文
  • 昨天下午有个同事急急忙忙跑座位上,要帮忙,说他刚刚因为手误,将他本地某个project某个branch分支删除了,并且也将Gitlab上面分支也删除了。他本来是想发起merge request,但是后面他眼神不好以为已经...

    一、问题描述

    昨天下午有个同事急急忙忙跑我座位上,要我帮忙,说他刚刚因为手误,将他本地的某个project的某个branch分支删除了,并且也将Gitlab上面的远程分支也删除了。他本来是想发起merge request的,但是后面他眼神不好以为已经merged过了,就直接删了Gitlab上的远程分支并且将他本地的这个分支也直接删除了。

    现在他跑过来问我有没有办法恢复,不然他这一天的工作就白费了。

    看他急急忙忙不知所措的样子,我直接调侃他说恢复不了。要他以后小心点删除branch,不要眼神不好。后面才慢慢地然后使用了git reflog 查找了他所有的分支提交记录等,然后找到对应的git commit的sha1码,然后恢复过来了。他说居然还有这种操作,666!我去,这是常规操作好吗?

    所以 如何恢复本地和远程仓库都已经删除掉的分支呢??下面我来演示一下。

    二、复现问题

    现在我准备找一个测试的demo git 工程来进行演练一下,如何恢复以及被删除的分支。

    1、创建一个git仓库并且提交一个文件

    在这里插入图片描述

    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test
    $ git init
    Initialized empty Git repository in F:/git test/.git/
    
    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (master)
    $ vim test.txt
    
    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (master)
    $ cat test.txt
    11111111111111111111111111111111
    
    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (master)
    $ git add .
    warning: LF will be replaced by CRLF in test.txt.
    The file will have its original line endings in your working directory.
    
    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (master)
    $ git commit -m "first commit"
    [master (root-commit) 363a197] first commit
     1 file changed, 1 insertion(+)
     create mode 100644 test.txt
    
    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (master)
    $ git branch
    * master
    
    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (master)
    $
    
    

    2、再次编辑test.txt文件并且提交

    在这里插入图片描述

    3、切换分支并再次编辑test.txt文件并且提交

    创建并切换到 feature/test1分支
    在这里插入图片描述

    在feature/test1分支上继续编辑test.txt文件并且提交
    在这里插入图片描述

    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (master)
    $ git checkout -b feature/test1
    Switched to a new branch 'feature/test1'
    
    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (feature/test1)
    $ git branch
    * feature/test1
      master
    
    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (feature/test1)
    $ git log
    commit 77dfdffc87bde49a6361bbdf36a9b01a20c10a3b
    Author: ouyangpeng <ouyangpeng@oaserver.dw.gdbbk.com>
    Date:   Wed Nov 14 09:38:44 2018 +0800
    
        second commit
    
    commit 363a197ffb4236ec9d6ee5b7631ae326eae958f4
    Author: ouyangpeng <ouyangpeng@oaserver.dw.gdbbk.com>
    Date:   Wed Nov 14 09:36:32 2018 +0800
    
        first commit
    
    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (feature/test1)
    $ vim test.txt
    
    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (feature/test1)
    $ cat test.txt
    11111111111111111111111111111111
    
    
    22222222222222222222222222222222
    
    
    33333333333333333333333333333333
    
    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (feature/test1)
    $ git add test.txt
    warning: LF will be replaced by CRLF in test.txt.
    The file will have its original line endings in your working directory.
    
    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (feature/test1)
    $ git commit -m "third commit"
    [feature/test1 dab39f4] third commit
     1 file changed, 3 insertions(+)
    
    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (feature/test1)
    $ git log
    commit dab39f4808f6553e57a0551f44044919a31dc76b
    Author: ouyangpeng <ouyangpeng@oaserver.dw.gdbbk.com>
    Date:   Wed Nov 14 09:42:17 2018 +0800
    
        third commit
    
    commit 77dfdffc87bde49a6361bbdf36a9b01a20c10a3b
    Author: ouyangpeng <ouyangpeng@oaserver.dw.gdbbk.com>
    Date:   Wed Nov 14 09:38:44 2018 +0800
    
        second commit
    
    commit 363a197ffb4236ec9d6ee5b7631ae326eae958f4
    Author: ouyangpeng <ouyangpeng@oaserver.dw.gdbbk.com>
    Date:   Wed Nov 14 09:36:32 2018 +0800
    
        first commit
    
    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (feature/test1)
    $
    
    

    现在我们有两个分支了,一个 feature/test1分支,一个 master分支。 feature/test1分支比master分支多了一次提交记录。

    在这里插入图片描述

    4、删除删除 feature/test1 分支

    现在我们模拟刚才那位同事之间删除了 feature/test1 分支。我们先checkout到master分支,然后删除 feature/test1 分支
    在这里插入图片描述

    feature/test1分支因为没有合并到master分支,就被删除了。所以此时master分支没有feature/test1分支上做的新的修改记录。
    在这里插入图片描述

    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (feature/test1)
    $ git checkout master
    Switched to branch 'master'
    
    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (master)
    $ git branch
      feature/test1
    * master
    
    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (master)
    $ git branch -d feature/test1
    error: The branch 'feature/test1' is not fully merged.
    If you are sure you want to delete it, run 'git branch -D feature/test1'.
    
    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (master)
    $ git branch
      feature/test1
    * master
    
    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (master)
    $ git branch -D feature/test1
    Deleted branch feature/test1 (was dab39f4).
    
    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (master)
    $ git branch
    * master
    
    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (master)
    $ git log
    commit 77dfdffc87bde49a6361bbdf36a9b01a20c10a3b
    Author: ouyangpeng <ouyangpeng@oaserver.dw.gdbbk.com>
    Date:   Wed Nov 14 09:38:44 2018 +0800
    
        second commit
    
    commit 363a197ffb4236ec9d6ee5b7631ae326eae958f4
    Author: ouyangpeng <ouyangpeng@oaserver.dw.gdbbk.com>
    Date:   Wed Nov 14 09:36:32 2018 +0800
    
        first commit
    
    
    

    三、恢复feature/test1分支

    如何恢复feature/test1分支呢??

    3.1 找到feature/test1分支的最后一次提交记录

    我们使用 git reflog 来看下git的提交记录,可以发现 dab39f4这次提交记录描述是 third commit 。

    区别:如果在回退以后又想再次回到之前的版本,git reflog 可以查看所有分支的所有操作记录(包括commit和reset的操作),包括已经被删除的commit记录git log则不能察看已经删除了的commit记录

    在这里插入图片描述

    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (master)
    $ git branch
    * master
    
    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (master)
    $ git log
    commit 77dfdffc87bde49a6361bbdf36a9b01a20c10a3b
    Author: ouyangpeng <ouyangpeng@oaserver.dw.gdbbk.com>
    Date:   Wed Nov 14 09:38:44 2018 +0800
    
        second commit
    
    commit 363a197ffb4236ec9d6ee5b7631ae326eae958f4
    Author: ouyangpeng <ouyangpeng@oaserver.dw.gdbbk.com>
    Date:   Wed Nov 14 09:36:32 2018 +0800
    
        first commit
    
    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (master)
    $ git reflog
    77dfdff HEAD@{0}: checkout: moving from feature/test1 to master
    dab39f4 HEAD@{1}: commit: third commit
    77dfdff HEAD@{2}: checkout: moving from master to feature/test1
    77dfdff HEAD@{3}: commit: second commit
    363a197 HEAD@{4}: commit (initial): first commit
    
    
    

    我们再来看看之前的截图,在feature/test1分支第三次提交的值为 dab39f4808f6553e57a0551f44044919a31dc76b

    dab39f4 和 dab39f4808f6553e57a0551f44044919a31dc76b 不就是提交记录的简写和完整的写法,一模一样。

    因此我们找到了这次提交的SHA1校验和,因此我们就可以恢复feature/test1分支了。

    3.2 根据feature/test1分支的最后一次提交记录来恢复feature/test1分支

    在这里插入图片描述

    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (master)
    $ git reflog
    77dfdff HEAD@{0}: checkout: moving from feature/test1 to master
    dab39f4 HEAD@{1}: commit: third commit
    77dfdff HEAD@{2}: checkout: moving from master to feature/test1
    77dfdff HEAD@{3}: commit: second commit
    363a197 HEAD@{4}: commit (initial): first commit
    
    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (master)
    $ git branch
    * master
    
    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (master)
    $ git checkout -b feature/test1 dab39f4
    Switched to a new branch 'feature/test1'
    
    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (feature/test1)
    $ git branch
    * feature/test1
      master
    
    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (feature/test1)
    $ git log
    commit dab39f4808f6553e57a0551f44044919a31dc76b
    Author: ouyangpeng <ouyangpeng@oaserver.dw.gdbbk.com>
    Date:   Wed Nov 14 09:42:17 2018 +0800
    
        third commit
    
    commit 77dfdffc87bde49a6361bbdf36a9b01a20c10a3b
    Author: ouyangpeng <ouyangpeng@oaserver.dw.gdbbk.com>
    Date:   Wed Nov 14 09:38:44 2018 +0800
    
        second commit
    
    commit 363a197ffb4236ec9d6ee5b7631ae326eae958f4
    Author: ouyangpeng <ouyangpeng@oaserver.dw.gdbbk.com>
    Date:   Wed Nov 14 09:36:32 2018 +0800
    
        first commit
    
    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (feature/test1)
    $
    
    

    我们可以看到,我们恢复了 feature/test1分支,并且feature/test1分支之前的提交记录都完整的还原回来了,和原来一样,比master分支多了一次提交记录。如下所示:
    在这里插入图片描述

    3.3 在Gitlab上根据commit SHA直接新建branch来恢复被删除的分支

    当然也可以在Gitlab上根据commit SHA直接新建branch来恢复被删除的分支,操作如下所示:

    在这里插入图片描述

    选择【Create from】,然后输入刚才查找到的commit SHA

    在这里插入图片描述

    然后点击回车
    在这里插入图片描述

    接着在【Branch name】写上分支名即可恢复了。

    四、git reflog 简介

    官方介绍地址 https://git-scm.com/docs/git-reflog

    在这里插入图片描述

    在这里插入图片描述

    具体的操作以及选项可以去上面的官网查看具体的用法,下面我就将刚才我们使用的git reflog 稍微讲下即可。

    4.1 查看历史版本记录

    命令:git reflog
    作用:查看提交版本历史记录
    执行命令后如图:
    在这里插入图片描述

    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (feature/test1)
    $ git reflog
    dab39f4 HEAD@{0}: checkout: moving from master to feature/test1
    77dfdff HEAD@{1}: checkout: moving from feature/test1 to master
    dab39f4 HEAD@{2}: commit: third commit
    77dfdff HEAD@{3}: checkout: moving from master to feature/test1
    77dfdff HEAD@{4}: commit: second commit
    363a197 HEAD@{5}: commit (initial): first commit
    

    从图中可以看到,执行git reflog 命令后,显示出来了很多行记录。

    每行记录都由版本号(commit id SHA),HEAD值和操作描述三部分组成。版本号在第一列,HEAD值在第二列,操作描述信息在第三列。

    • 版本号
      在之前都有提到,标识着每一次提交、合并等操作时的版本,相当于唯一标识
    • HEAD值
      同样用来标识版本,但是不同于版本号的是,Head值是相对的。
      当HEAD值为HEAD时,表示为提交的最新版本;HEAD^ 表示为最新版本的上一个版本;HEAD^^表示为最新版本的上上个版本;HEAD~100表示为最新版本的往上第100个版本。

    HEAD值越小,表示版本越新,越大表示版本生成时间越久。

    在上面图中,我们发现HEAD值的展示形式为HEAD@{0}、HEAD@{1}、HEAD@{2}…同样HEAD值的数字越小,表示版本越新,数字越大表示版本越旧。

    • 操作描述
      记录了本次是哪种操作,以及操作时编写的描述信息。

    4.2 查看历史版本记录–指定显示条数

    同时,与git log相同的是,git reflog也提供了控制显示条数的选项:
    命令:git reflog -n
    执行命令后如图:
    在这里插入图片描述

    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (feature/test1)
    $ git reflog -3
    dab39f4 HEAD@{0}: checkout: moving from master to feature/test1
    77dfdff HEAD@{1}: checkout: moving from feature/test1 to master
    dab39f4 HEAD@{2}: commit: third commit
    
    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (feature/test1)
    $
    
    

    如图所示,这里设置显示条数为3条,执行命令后,显示的条数为指定的条数3条。

    在这里插入图片描述

    DH207891+OuyangPeng@DH207891 MINGW32 /f/git test (feature/test1)
    $ git reflog -6
    dab39f4 HEAD@{0}: checkout: moving from master to feature/test1
    77dfdff HEAD@{1}: checkout: moving from feature/test1 to master
    dab39f4 HEAD@{2}: commit: third commit
    77dfdff HEAD@{3}: checkout: moving from master to feature/test1
    77dfdff HEAD@{4}: commit: second commit
    363a197 HEAD@{5}: commit (initial): first commit
    
    

    如图所示,这里设置显示条数为6条,执行命令后,显示的条数为指定的条数6条。


    作者:欧阳鹏 欢迎转载,与人分享是进步的源泉!
    转载请保留原文地址:https://blog.csdn.net/qq446282412/article/details/84061662
    如果本文对您有所帮助,欢迎您扫码下图所示的支付宝和微信支付二维码对本文进行打赏。

    展开全文
  • 今天查看系统时,发现手机端系统提交的数据中存在一些日期特别离谱的数据。比如创建时间为1978年和2019年的数据都出现了。 果真是穿越了半个世纪了。于是马上将问题提交出来,安排同事处理,并分析产生数据的原因...

             今天查看系统时,发现手机端系统提交的数据中存在一些日期特别离谱的数据。比如创建时间为1978年和2019年的数据都出现了。

    果真是穿越了半个世纪了。于是我马上将问题提交出来,安排同事处理,并分析产生数据的原因,并且寻找解决方案。

             经过一番验证终于发现了其中的蹊跷,原来手机系统只是在应用系统登录时会验证时间,而且如果是断网状态是不会验证的。由于

    在断网状态下可以编辑保存数据,而且上传手机端系统的数据到服务器时也不会验证创建时间,那么这些数据产生也不足为奇了。

            而且以前的系统是不会将创建时间差的离谱的数据显示在前台,所以一直也没有人关注。而且业务员在手机上提交数据如果发现没

    有显示到PC系统上时也会以为是网络问题没有传送成功,因此这个问题一直没有暴露并引起关注。所以难怪手机系统上线了1年多都没有

    发现这个问题的存在,只是这次由于新增了需求要求将没有审核的数据,不论什么时候创建的都要显示出来,这样才将这个问题暴露出来

    了。

            虽然我们也很快找到问题的原因并有了应对方案和解决方法,但是我也不得不考虑一个问题,对于以后移动端的系统,提交数据的

    时间一定要加强验证或者直接使用提交时服务器上的时间为标准,这样可以避免问题产生,同时对于手机的创建时间可以记录下来作为

    一个参考值。其实该问题对于PC端系统也同样适用,就是我们在设计和开发系统时,不要取客户端的时间来作为记录标准,要记录最好

    以一个比较准确的时间来记录,而且这个时间一定要能实时更新,保证准确性。

    转载于:https://www.cnblogs.com/kevinGao/p/3589972.html

    展开全文
  • ajax提交 这是的提交方式,在提交过程中报错,在浏览器中查看状态码为415,返回值和后台都显示...没问题,接下来在浏览器控制台查看提交的数据格式 也是没有问题的,然后我查看了浏览器控制台中的请求信息看...
  • 方法小长,不过大部分我们不关心,直捣黄龙,直接查看completeTransactionAfterThrowing 方法(PS:emmmm…,别问怎么找到它,这命名已经很亲切了) 该方法部门片段如下: 稍微调试下,不难
  • 最近在linux下写代码想着提交到github上面,在github库上面已经提交上去了,但是没有出现绿点,没有显示任何活动信息。 检查自己邮箱 (1)登录自己Github,点击Settings; (2)点击Emails,查看自己...
  • 活动2包含用户回答并提交的问题(5个问题)。 然后,活动3显示结果(有多少个正确的问题),并允许用户查看答案(绿色的正确答案,红色的错误所有者)。 单击“确定”将用户带到应用程序的第一页。 这是Google云端...
  • hadoop版本是CDH5.3.3,安装了伪分布模式,一直以来程序运行好好,突然间运行...之前还以为是我的内存不够 ,把内存设置成6G了 ,没跑别应用 ,查看内存使用情况   [ehp@hadoop-ehp hadoop-2.5.0-cdh5....
  • 给 GitHub 提交代码可以获取响应的贡献绿色瓷片,但是之前怎么提交都不显示,后来发现你提交的用户名和邮箱要和项目创建的用户名和邮箱一致就可以显示绿色瓷片了。 查看当前 git 用户名和邮箱 git config user....
  • 接下来把遇到的问题和解决方案提交,一来记录经验,今后忘了也还可以再查看,二来希望和我有类似经历的人可以不用走走过的弯路。 首先你要弄清楚这几个概念: 提交(commit),指将本地的更改让 Git 记录在本地...
  • 今天转到IE6下面测试,发现了一个问题,在iframe里面提交,无论是否通过,另外一个iframe即titleframe却丢失了,起初查看代码,的是通过document.location.href提交过去,以为是这个问题,可又发现form提交的代码...
  • 昨天下午有个同事急急忙忙跑座位上,要帮忙,说他刚刚因为手误,将他本地某个project某个branch分支删除了,并且也将Gitlab上面远程分支也删除了。他本来是想发起merge request,但是后面他眼神不好以为...
  • 在检查了页面和action发现并没有错误之后,查看我的配置文件,由于我的提交页面和我action执行成功后跳转页面是同一个页面,我想可能这个是导致一个请求执行2次原因。 于是发现我跳转配置中是这样配置: ...
  • 点击提交本地变动,提交的操作与上面讲述的。初始(第一次)提交一样 错误信息:如果本地Version低于服务器,直接提交则会报错,此时需要先更新,在提交 2,解决 提交的时候,你的代码版本不能低于...
  • 查看其他2021年提交的作品! 屏幕截图 介绍 定位方式 距离 角度 完成的应用程序 想制作自己的游乐场书吗? 对而言,制作运动场书比常规的Xcode项目难得多。 这是在学习过程中获得的一些技巧和窍门。 发展 ...
  • 转战了macbook ,使用cvs 做版本控制,遇到了提交注释乱码的问题,之前在windows 上做的时候,也没有任何问题,说明肯定是哪里配置出了问题。查询资料,发现CVS分为客户端编码与服务器编码,然后去windows 查看下...
  • 最近在研究AJAX是,自己做了一个程序测试,发现在使用get方式提交时,如果参数中有中文的话,会...于是自己通过查看别人的文章,下来后自己调试,解决了get方式提交中文参数乱码的问题的环境是表单页面index.ht...
  • git 中提交代码时注释乱码问题

    千次阅读 2019-03-14 09:39:37
    git 中提交代码时注释乱码问题 ... 上一节课学习了,我们如何在linux下使用git。在通过git进行远程下载...上网查看了一下原因,发现这是由于跨平台下载时候,windows和linux使用编码方式不同缘故。Windows系统...
  • git reflog 命令来查看历史提交记录

    千次阅读 2018-11-15 20:15:59
    昨天下午有个同事急急忙忙跑座位上,要帮忙,说他刚刚因为手误,将他本地某个project某个branch分支删除了,并且也将Gitlab上面远程分支也删除了。他本来是想发起merge request,但是后面他眼神不好以为...
  • master分支代码想删除某个版本之后所有提交: 这里删除指定版本后所有提交记录,区别于回滚代码到指定版本,是删除,不是回滚,注意、注意! 参考:https://www.jianshu.com/p/335e5ac0a823 查看提交日志 ...
  • phpstorm打开或者表单提交显示404问题解决方法 将自己网上找到方法和自己发现方法一一写出来。 方法一 1、File->Settings->Deployment:添加一个新服务器地址 注意:phpstorm默认端口号63342(自己...
  • 昨天下午有个同事急急忙忙跑座位上,要帮忙,说他刚刚因为手误,将他本地某个project某个branch分支删除了,并且也将Gitlab上面远程分支也删除了。他本来是想发起merge request,但是后面他眼神不好以为...
  • 查看数据库也是前者是乱码,后者是正常。 所以认为应不是数据库配置问题,是mantis配置出错了 在config_default_inc.php 和config_inc.php里面都改了语言设置为chinese_simplified 我的mantis是在...
  • 查看资料得知,是因为使用tomcat是8原因,调整到6就可以了。但没有改变Tomcat版本,不知道该怎么解决这个问题。 转载于:https://www.cnblogs.com/liaoxiaolao/p/9951500.html...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,539
精华内容 615
热门标签
关键字:

查看我提交的问题