>> От них легко избавиться, если следить за созданием красивой истории.
> ну то есть никогда ничего не push'ить в апстрим просто так.
> если его считать просто архивом на память - то можно и так,
> конечно.
> Можно ли работать с выдуманной историей вместо настоящей - я вот хз,
> потому что изменения делались тобой при одном состоянии репо, а подмененная
> история показывает другое.Задача истории -- документировать изменения.
> Но скорее всего эта история никому и никогда
> не потребуется, ни настоящая, ни поддельная. А для blame она не
> важна.
Зачем нужен blame, как ты думаешь?
Мне кажется, что некоторые считают, что blame нужен для того, чтобы найти виноватого и надрать ему задницу. Так вот, это ложное суждение. Это бюрократии он будет нужен для этого: она в случае любого косяка первым делом ищет стрелочников. Тебе же blame будет нужен для того, чтобы выяснить зачем нужна та или иная строчка кода. Зачем эта строчка кода была добавлена, были ли какая-то специальная причина, и если была, то остаётся ли она причиной и по сей день. Если нет причины для того, чтобы эта строчка кода была именно такой, какая она есть, то у тебя развязаны руки, чтобы переписать её так, как это будет удобно тебе. И ради этой цели ты будешь использовать blame для того, чтобы посмотреть контекст в котором строчка была добавлена в код или в котором она изменялась, ты почитаешь комментарии сопровождающие эти коммиты, с тем чтобы понять их. Если у тебя останутся сомнения, то ты свяжешься с автором коммита, чтобы понять лучше. Но если дело дошло до того, что тебе надо связаться с автором коммита, то скорее всего это говнокоммиты, которые недостаточно хорошо документированы, которые плохо описывают изменения, которые недостаточно хорошо структурированы и плохо разбиты на отдельные патчи.
И в этом случае, гораздо удобнее, если история изменений упорядочена и _вдумчиво_ документирована. В процессе многих изменений, с поиском не уродского способа решить проблему, тебе не до того, чтобы вдумчиво документировать каждое изменение, особенно если ты подозреваешь, что это изменение через полчаса отправится в мусор. Вот ты сейчас попробуешь, что из этого выйдет, через полчаса этот эксперимент закончится, и вся ветка пойдёт в расход. Некоторые из таких попыток выживают. Но документировать каждое такое изменение перед тем, как ты его сделаешь -- это убийственно, и скажется на производительности катастрофически. А если ты пишешь документацию задним числом, когда рефлексируешь над проделанным, то ты действительно можешь в комментарии к каждому коммиту писать о том, что ты делаешь и почему, не занимаясь ответами на вопрос как ты делаешь, потому что на вопрос "как" отвечают diff'ы.