• git修改commiter date


    GIT: change commit date to author date

     git filter-branch --env-filter 'export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"' 

    Short Answer:

    git filter-branch --env-filter 'export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"'
    

    Explanation:

    filter-branch lets you rewrite your git history. It can apply transformations to each commit or filter out commits based on certain criteria. See git filter-branch --help for a comprehensive description and usage instructions.

    --env-filter allows you to set the environment variables that are present during the creation of the new history. It is evaluated for each commit separately.

    https://git-scm.com/docs/git-filter-branch

    --env-filter <command>

    This filter may be used if you only need to modify the environment in which the commit will be performed. Specifically, you might want to rewrite the author/committer name/email/time environment variables (see git-commit-tree[1] for details).

    The --env-filter option can be used to modify committer and/or author identity. For example, if you found out that your commits have the wrong identity due to a misconfigured user.email, you can make a correction, before publishing the project, like this:

    git filter-branch --env-filter '
    	if test "$GIT_AUTHOR_EMAIL" = "root@localhost"
    	then
    		GIT_AUTHOR_EMAIL=john@example.com
    	fi
    	if test "$GIT_COMMITTER_EMAIL" = "root@localhost"
    	then
    		GIT_COMMITTER_EMAIL=john@example.com
    	fi
    ' -- --all

    To restrict rewriting to only part of the history, specify a revision range in addition to the new branch name. The new branch name will point to the top-most revision that a git rev-list of this range will print.

    Consider this history:

         D--E--F--G--H
        /     /
    A--B-----C

    To rewrite only commits D,E,F,G,H, but leave A, B and C alone, use:

    git filter-branch ... C..H

    To rewrite commits E,F,G,H, use one of these:

    git filter-branch ... C..H --not D
    git filter-branch ... D..H --not C



    Example

    git filter-branch ... origin/master..master --env-filter 'export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"'

    错误提示

    Cannot create a new backup.
    A previous backup already exists in refs/original/
    Force overwriting the backup with -f

     

    错误处理

    方法1 加上-f参数

    git filter-branch ... origin/master..master --env-filter 'export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"' -f
    fatal: ambiguous argument 'export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"': unknown revision or path not in the working tree.
    Use '--' to separate paths from revisions, like this:
    'git <command> [<revision>...] -- [<file>...]'

    把-f参数放前面更好,

    git filter-branch -f ... 67d9d9..f70bf4 --env-filter 'export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"'

    方法2 

    Use this command to remove original backup:

    git update-ref -d refs/original/refs/heads/master
    

    Here is gist I used to filter-branch my git repo: https://gist.github.com/k06a/25a0214c98bc19fd6817

     错误的详细信息

    $ git_trace=1 gcm_trace=1 git filter-branch -f ... 67d9d9..f70bf4 --env-filter 'export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"'
    23:57:28.715959 exec-cmd.c:236 trace: resolved executable dir: C:/Program Files/Git/mingw64/bin
    23:57:28.720945 git.c:676 trace: exec: git-filter-branch -f ... 67d9d9..f70bf4 --env-filter 'export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"'
    23:57:28.720945 run-command.c:643 trace: run_command: git-filter-branch -f ... 67d9d9..f70bf4 --env-filter 'export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"'
    23:57:29.016157 exec-cmd.c:236 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
    23:57:29.018152 git.c:419 trace: built-in: git hash-object -t tree nul
    23:57:29.159774 exec-cmd.c:236 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
    23:57:29.605584 exec-cmd.c:236 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
    23:57:29.610570 git.c:676 trace: exec: git-sh-i18n--envsubst --variables 'usage: $dashless $USAGE'
    23:57:29.610570 run-command.c:643 trace: run_command: git-sh-i18n--envsubst --variables 'usage: $dashless $USAGE'
    23:57:29.647472 exec-cmd.c:236 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
    23:57:29.755185 exec-cmd.c:236 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
    23:57:29.762166 git.c:676 trace: exec: git-sh-i18n--envsubst 'usage: $dashless $USAGE'
    23:57:29.762166 run-command.c:643 trace: run_command: git-sh-i18n--envsubst 'usage: $dashless $USAGE'
    23:57:29.803057 exec-cmd.c:236 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
    23:57:30.180050 exec-cmd.c:236 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
    23:57:30.182045 git.c:419 trace: built-in: git rev-parse --git-dir
    23:57:30.364558 exec-cmd.c:236 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
    23:57:30.366552 git.c:419 trace: built-in: git rev-parse --show-cdup
    23:57:30.644809 exec-cmd.c:236 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
    23:57:30.646804 git.c:419 trace: built-in: git rev-parse --git-path objects
    23:57:30.838293 exec-cmd.c:236 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
    23:57:30.840287 git.c:419 trace: built-in: git rev-parse --is-bare-repository
    23:57:30.981909 exec-cmd.c:236 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
    23:57:30.984902 git.c:419 trace: built-in: git rev-parse --verify HEAD
    23:57:31.134502 exec-cmd.c:236 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
    23:57:31.145474 git.c:419 trace: built-in: git update-index -q --ignore-submodules --refresh
    23:57:31.294076 exec-cmd.c:236 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
    23:57:31.307041 git.c:419 trace: built-in: git diff-files --quiet --ignore-submodules
    23:57:31.449662 exec-cmd.c:236 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
    23:57:31.460631 git.c:419 trace: built-in: git diff-index --cached --quiet --ignore-submodules HEAD --
    23:57:32.077983 exec-cmd.c:236 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
    23:57:32.088954 git.c:419 trace: built-in: git for-each-ref
    23:57:32.247530 exec-cmd.c:236 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
    23:57:32.250523 git.c:419 trace: built-in: git rev-parse --no-flags --revs-only --symbolic-full-name --default HEAD ... 67d9d9..f70bf4 --env-filter 'export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"'
    23:57:32.817010 exec-cmd.c:236 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
    23:57:32.819004 git.c:419 trace: built-in: git rev-parse --no-revs ... 67d9d9..f70bf4 --env-filter 'export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"'
    fatal: ambiguous argument 'export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"': unknown revision or path not in the working tree.
    Use '--' to separate paths from revisions, like this:
    'git <command> [<revision>...] -- [<file>...]'

    发现命令参数的位置有问题,做出如下调整(commits的范围要放在最后面)

    https://stackoverflow.com/questions/15250070/running-filter-branch-over-a-range-of-commits

    git_trace=1 gcm_trace=1 git filter-branch --env-filter 'export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"' ... 67d9d9..f70bf4

    https://github.com/git-for-windows/git/issues/2206

    git_trace=1 gcm_trace=1 git filter-branch --env-filter 'export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"'  origin/master..master

    git filter-branch -f --env-filter 'export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"' origin/master..master

     
     
     
  • 相关阅读:
    简单的三级联动练习
    JavaScript中定时器的暂停和继续
    关于ajax网络请求的封装
    关于JS历史
    KVC中setValuesForKeysWithDictionary:
    collectionView 中cell间距设置建议
    iOS中你必须了解的多线程
    iOS中关于动态Tableview中的cell数据传输的多线程问题解决之拙见
    Touch
    Filemanager 的使用
  • 原文地址:https://www.cnblogs.com/chucklu/p/10921684.html
Copyright © 2020-2023  润新知