Переименование файла Git. История доступна в cmd-строке, но не в интерфейсе github?

Было много отлично сообщения о том, как сохранить историю при переименовании файлов и папок в Git.


Это работает в интерфейсе командной строки git:

#if you don't modify oldname.cpp or newname.cpp, git will understand your rename

git mv old.cpp new.cpp
git commit -am "renamed old.cpp -> new.cpp"

git log new.cpp #only shows the new commit
git log --follow new.cpp #shows ALL the history of old.cpp and new.cpp

Отлично, поэтому команда --follow позволяет нам получить всю историю new.cpp после его переименования. Это отлично работает в интерфейсе командной строки для git.


Но в веб-интерфейсе github история old.cpp не отображается для new.cpp. Это проблема, потому что многие члены моей команды видят свои учетные записи github как часть своих резюме. Если их коммиты не отображаются в github после переименования файлов, они теряют очки возобновления. После серьезной реструктуризации имени файла / каталога у участника может не оказаться ни одной видимой фиксации в репо.

Как мне отобразить полную историю файлов в веб-интерфейсе github (например, git log --follow) после переименования файлов?

Или я застрял, никогда ничего не переименовываю, если только я не хочу, чтобы случайные пользователи github никогда не видели старые коммиты?

возможный дубликат github отслеживает историю по умолчанию?   —  person solvingPuzzles    schedule 01.10.2013

также связано: Просмотр истории в GitHub после переименования папки   —  person solvingPuzzles    schedule 18.09.2015

(Сбоку) Примечание: git log --follow был немного глючным до git 2.9 (июнь 2016 г.): см. stackoverflow.com/a/36615639/6309</ а>.   —  person solvingPuzzles    schedule 14.04.2016

См. также:  не удалось загрузить phonegap с github
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 1
  1. solvingPuzzles

    Как вы, вероятно, знаете из этих трех связанных вопросов, в Git нет ничего, что отслеживало бы перемещение файла. Для Git это просто удаляемый файл и добавление другого файла. Только интерфейс распознает перемещение файлов на основе схожести содержимого. Итак, если GitHub не обеспечивает отслеживание изменений в файле, который мог быть перемещен раньше, вы мало что можете с этим поделать, кроме как попросить GitHub поработать над этим.

    При этом ваше утверждение о том, что перемещение файла приведет к тому, что участник останется без видимых коммитов, является ложным. Да, если я посмотрю на историю одного файла, который был удален ранее, то это может показаться так, но, как и сейчас, Git не забывает ничего, что произошло в репозитории. И журнал репозитория по-прежнему будет содержать каждую фиксацию, которая видна из данной ветки. И это, очевидно, также включает в себя коммиты, которые произошли до того, как файлы были перемещены (потому что Git отслеживает контент, а не изменения). Обычно вы можете получить журнал фиксации по адресу https://github.com/<user>/<project>/commits/<branch>.

    И вот еще один момент: в журнал попадают только те коммиты, которые видны из данной ветки. Так что, если вы работаете с несколькими ветвями, все это в любом случае довольно глупо. Если вы хотите получить некоторое представление о том, сколько участник работает над проектом, вам следует использовать графики проекта на https://github.com/<user>/<project>/graphs/contributors.

    Но, конечно, измерение количества фиксаций — это не лучший показатель в любом случае (то же самое с такими вещами, как соотношение LOC).

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: