LINUX.ORG.RU

Магия GIT: отличия между коммитами

 


0

2

git show , показывает не всю разницу между коммитами. Если скопировать деревья проекта в разные папки и натравить на них meld, получается совсем другая разница.
Интересно, как увидеть все отличия при помощи git и понять, откуда эти отличия взялись?


Насуют опций в конфиги, а потом удивляются магии.

dmitry_malikov ★★
()

Как увидить разницу понял.

git diff <commit> - вроде показывает разницу.. но как узнать откуда она взялась?

naszar
() автор топика
Ответ на: комментарий от waker

Спасибо. А что за такая хитрость, что изменения внесенные коммитом исчезают, а потом неожиданно появляются. И самое главное - как это можно отследить?

naszar
() автор топика
Ответ на: Как увидить разницу понял. от naszar

но как узнать откуда она взялась?

накоммитил кто-то, вот и взялась
блин, ты кажется не понимаешь что тебе нужно

а вообще ещё есть:
git log - покажет кто коммитил
git blame - покажет построчно кто и где наговнокодил

q11q11 ★★★★★
()
Ответ на: комментарий от naszar

А что за такая хитрость, что изменения внесенные коммитом исчезают, а потом неожиданно появляются. И самое главное - как это можно отследить?

отсыпь и мне этой чудо-травы

q11q11 ★★★★★
()
Ответ на: комментарий от q11q11

отсыпь и мне этой чудо-травы

да пожалуйлста!!

а вообще ещё есть: git log - покажет кто коммитил git blame - покажет построчно кто и где наговнокодил

зинаю, но спасибо...

блин, ты кажется не понимаешь что тебе нужно

Есть коммит, git show пказывает 91 строка. git diff <предыдущий> показывает 894144 строк, включая то, что показывал git show. Мне нужно понять, какая магия так делает, и как это можно отследить.

naszar
() автор топика
Ответ на: комментарий от naszar

git show пказывает 91 строка. git diff <предыдущий> показывает 894144 строк

git show показывает содержимое последнего коммита

ты просто git diff делаешь?
оно же делает diff состояния всей репы по отношению к последнему коммиту в той ветке на которой находишься

делай git diff hash1..hash2
это намного точнее

q11q11 ★★★★★
()
Ответ на: комментарий от naszar

да пожалуйлста!!

я травы просил, а ты мне тяжёлые наркотики подсовываешь :)

q11q11 ★★★★★
()
Ответ на: комментарий от naszar

И да, я пока до git diff не догадался делел git checkout в подряд идущие коммиты и копировал их.. потом сравнивал meld'ом - оттуда и возник вопрос. Мысли в голову только глупые приходят: или в git log они идут не в том порядке как добавлялись, может он их двигает?.. или.. может, магия действительно.. в принципе с самой базой гита можно что угодно сделать.. но с другой стороны это гитхаб, и с ним можно только удаленно и только по правилам... а как такое по правилам замутить?

naszar
() автор топика
Ответ на: комментарий от naszar

у тебя по-ходу куча изменённых файлов и ты об этом не знаешь

ещё раз:
git show - показывает содержимое последнего коммита
git diff - показывает состояние всей репы по отношению к последнему коммиту, в той ветке на которой находишься

что показывает git status?

q11q11 ★★★★★
()
Ответ на: комментарий от naszar

может он их двигает?.. или.. может, магия действительно

никто ничего не двигает и магии никакой нет, ты просто не понимаешь / не знаешь что происходит

q11q11 ★★★★★
()
Ответ на: комментарий от naszar

Кое кому пора сделать микро репу и воспроизвести «странности». 90% каши уйдет.

anonymous
()
Ответ на: комментарий от q11q11

Спасибо за советы

Свою ошибку понял: git log эти коммиты написал друг за дружкой, а на самом деле между ними еще тысячи.. пойду вдумчиво читать man git-log ;).. толчек к просветлению дало

git rev-list --parents -n 1 <commit>

naszar
() автор топика
Ответ на: Спасибо за советы от naszar

советую использовать не просто git log, а


git log --decorate --graph --all --oneline

так оно красивее и понятнее,
и это не только дерево ветки на которой находишься, это вся репа

ну и до кучи прочитай как это засунуть в алиасы гита :)

q11q11 ★★★★★
()
Последнее исправление: q11q11 (всего исправлений: 1)
Ответ на: комментарий от naszar

git diff HEAD~1 показывает разницу текущего состояния репозитория с предпоследним коммитом, git show - разницу последнего и предпоследнего коммита

annulen ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.