Как изменить автора коммита для одного конкретного коммита?

Это работало для меня на сайте ASP.NET. Чтобы включить проверку в некоторых скрытых полях, используйте этот код

$("form").data("validator").settings.ignore = ":hidden:not(#myitem)";

Чтобы включить проверку для всех элементов формы, используйте эту $("form").data("validator").settings.ignore = "";

. Обратите внимание: используйте их в $(document).ready(function() { })

1784
задан Ciro Santilli 新疆改造中心996ICU六四事件 24 June 2018 в 07:59
поделиться

4 ответа

Интерактивный rebase с более ранней точки в истории, чем коммит, который вам нужно изменить (git rebase -i ). В списке ребайтируемых коммитов измените текст с pick на edit рядом с хэшем того коммита, который вы хотите изменить. Затем, когда git предложит вам изменить коммит, используйте следующее:

git commit --amend --author="Author Name <email@address.com>"

Например, если ваша история коммитов имеет вид A-B-C-D-E-F с F в качестве HEAD, и вы хотите изменить автора C и D, то вы должны...

  1. указать git rebase -i B (вот пример того, что вы увидите после выполнения команды git rebase -i B)
    • если вам нужно отредактировать A, используйте git rebase -i --root
  2. измените строки для C и D с pick на edit
  3. После того, как начнется rebase, он сначала приостановится на C
  4. Вы git commit --amend --author="Имя автора "
  5. Затем git rebase -- continue
  6. Он снова приостановится на D
  7. Затем вы git commit --amend --author="Author Name " снова
  8. git rebase --continue
  9. Перезапись завершится.
  10. Используйте git push -f для обновления исходного кода обновленными коммитами.
3258
ответ дан 22 November 2019 в 20:02
поделиться

Для сообщения о фиксации слияния я нашел, что не могу исправить его при помощи rebase, по крайней мере, на gitlab. Это показывает слияние фиксацией, но я не могу повторно основывать на это #sha. Я нашел этот , сообщение полезно.

git checkout <sha of merge>
git commit --amend # edit message
git rebase HEAD previous_branch

Это три строки кода сделали задание для изменения сообщения о фиксации слияния (как автор).

0
ответ дан Jason Liu 4 October 2019 в 07:24
поделиться

Шаги для переименования имени автора после фиксации продвинули

  1. Первый тип «журнал мерзавца» получать идентификатор фиксации и больше подробных данных
  2. , мерзавец повторно базируется, i HEAD~10 (10 общее количество, передают для отображения на переоснове)

    If you Get anything like below

    fatal: It seems that there is already a rebase-merge directory, and I wonder if you are in the middle of another rebase. If that is the case, please try

    git rebase (--continue | --abort | --skip) If that is not the case, please rm -fr ".git/rebase-merge" and run me again. I am stopping in case you still have something valuable there.

  3. Тогда тип, «перебаза мерзавцев - продолжается» или «перебаза мерзавцев - аварийное прекращение работы» согласно потребности

    • теперь Ваш будет повторно основывать открытое окно, нажать «i» ключ с клавиатуры
    • тогда, Вы доберетесь, список соглашается 10 [потому что мы передали 10 фиксаций выше] Как ниже

    pick 897fe9e simplify code a little

    pick abb60f9 add new feature

    pick dc18f70 bugfix

  4. Теперь, необходимо добавить ниже команды чуть ниже фиксации, как которая Вы хотите отредактировать, ниже

    pick 897fe9e simplify code a little exec git commit --amend --author 'Author Name <author.name@mail.com>' pick abb60f9 add new feature exec git commit --amend --author 'Author Name <author.name@mail.com>' pick dc18f70 bugfix exec git commit --amend --author 'Author Name <author.name@mail.com>'

    1. Вот именно, теперь просто нажать ESC: wq и Вы все установлены

    2. Тогда HEAD:BRANCH NAME источника нажатия мерзавца-f [заботьтесь о нажатии Силы-f]

    как git push -f или git push origin HEAD: dev -f

1
ответ дан 22 November 2019 в 20:02
поделиться

Ответы на вопрос, на который вы указали ссылку, являются хорошими ответами и охватывают вашу ситуацию (другой вопрос является более общим, поскольку он включает в себя переписывание нескольких коммитов).

В качестве предлога попробовать git filter-branch я написал сценарий для перезаписи имени автора и / или электронной почты автора для данной фиксации:

#!/bin/sh

#
# Change the author name and/or email of a single commit.
#
# change-author [-f] commit-to-change [branch-to-rewrite [new-name [new-email]]]
#
#     If -f is supplied it is passed to "git filter-branch".
#
#     If <branch-to-rewrite> is not provided or is empty HEAD will be used.
#     Use "--all" or a space separated list (e.g. "master next") to rewrite
#     multiple branches.
#
#     If <new-name> (or <new-email>) is not provided or is empty, the normal
#     user.name (user.email) Git configuration value will be used.
#

force=''
if test "x$1" = "x-f"; then
    force='-f'
    shift
fi

die() {
    printf '%s\n' "$@"
    exit 128
}
targ="$(git rev-parse --verify "$1" 2>/dev/null)" || die "$1 is not a commit"
br="${2:-HEAD}"

TARG_COMMIT="$targ"
TARG_NAME="${3-}"
TARG_EMAIL="${4-}"
export TARG_COMMIT TARG_NAME TARG_EMAIL

filt='

    if test "$GIT_COMMIT" = "$TARG_COMMIT"; then
        if test -n "$TARG_EMAIL"; then
            GIT_AUTHOR_EMAIL="$TARG_EMAIL"
            export GIT_AUTHOR_EMAIL
        else
            unset GIT_AUTHOR_EMAIL
        fi
        if test -n "$TARG_NAME"; then
            GIT_AUTHOR_NAME="$TARG_NAME"
            export GIT_AUTHOR_NAME
        else
            unset GIT_AUTHOR_NAME
        fi
    fi

'

git filter-branch $force --env-filter "$filt" -- $br
55
ответ дан 22 November 2019 в 20:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: