Имя: Пароль:
IT
 
Как переместить файлы внутри гит репозитория через GUI, сохраняя их историю?
0 TormozIT
 
гуру
17.09.21
08:01
Как переместить файлы и папки внутри гит репозитория https://i.imgur.com/4Hukeex.png , сохраняя их историю? В каких гит клиентах это можно сделать?
Тут https://stackoverflow.com/questions/10915858/where-is-git-mv-in-sourcetree пишут, что в SourceTree в меню "Действия" есть команда "Переместить". Но я ее там не вижу https://i.imgur.com/NhoBbWm.png
Если я их просто перемещу в файловой системе, то сохранится ли история? Как я понимаю, нет.
1 Вафель
 
17.09.21
08:02
Обычно гит понимает что файл перемещен
2 TormozIT
 
гуру
17.09.21
08:05
(1) Да, че то такое читал, но там используются эвристические алгоритмы для понимания этого, а значит нет гарантии.
У консольного гита есть команда "move", которая вроде делает это надежно. Но я не нашел ее в GUI клиентах.
3 ДенисЧ
 
17.09.21
08:10
Черепашка запросто умеет.
Только в русском варианте (что у меня) это не переместить, а переименовать.
4 TormozIT
 
гуру
17.09.21
08:22
(3) А слоник умеет?
5 TormozIT
 
гуру
17.09.21
08:22
Я видимо не в теме. Где прочитать про жаргонные обозначения всех гит клиентов?
6 ДенисЧ
 
17.09.21
08:24
(5) TortoiseGIT - как на русский перевести?
7 TormozIT
 
гуру
17.09.21
08:28
(6) Ну я же не переводил SourceTree на русский, как и авторы локализации на моей картинке. Жаргонные обозначения использовать тогда, когда есть высокая уверенность, что читатель их знает.
Можешь сделать картинку?
8 ДенисЧ
 
17.09.21
08:32
9 TormozIT
 
гуру
17.09.21
09:04
Набрался смелости и переместил в файловой системе. Вроде бы все файлы при отправке коммита он связал со старыми (обнаружил перемещение).
https://i.imgur.com/RqaDVeA.png

Но теперь у меня для всех модулей перестала отображаться всплывающая подсказка по изменениям строки модуля
https://i.imgur.com/jHLRrJq.png

А вот как это было
https://i.imgur.com/w5XTf57.png
10 TormozIT
 
гуру
17.09.21
09:05
(9) Перестала отображаться подсказка в Visual Studio Code с расширением GitCodeLens.
11 TormozIT
 
гуру
17.09.21
09:11
(10) ОШибка. Расширение называется GitLens, а не GitCodeLens
12 Вафель
 
17.09.21
09:36
(10) git blame то работает?
13 TormozIT
 
гуру
17.09.21
09:37
(12) только GUI умею. Вроде в заголовке написано.
14 Вафель
 
17.09.21
09:42
(13) ну так учись
15 fisher
 
17.09.21
10:12
Пишут что есть два основных способа:
1. git mv
2. Можно переместить и мимо гита, но в гите это потом надо оформить как git add <куда> и git rm <откуда>
Соответственно в гуе скорее всего  должна быть гуевая опция перемещения, которая под капотом сделает git mv
Но раз ты уже сделал это мимо гуя, то попробуй сделать git rm <откуда>. Думаю, что git add <куда> гуй уже сделал сам.
16 fisher
 
17.09.21
10:24
Короче, народ пишет что это боль. git не отслеживает переименования/переносы в части сохранения сквозной истории. И Линус отвечал в том духе что "и не должно, идите нахрен".
Якобы использование опции --follow для git log может догадаться показать общую историю, но т.к. оно работает через костыли, то соответственно работает не всегда.
17 fisher
 
17.09.21
10:26
Так что скорее всего твой гуй отработал как мог, но сквозная история не подтягивается потому что а кому сейчас легко
18 fisher
 
17.09.21
10:39
--follow
Continue listing the history of a file beyond renames (works only for a single file)

Если гуй развесистый, то можно попробовать поискать где-то соответствующую "птичку".
19 TormozIT
 
гуру
20.09.21
08:27
20 fisher
 
20.09.21
09:39
(19) Вероятно, "Open line changes with previous version" в GUI это и есть аналог вызова git log --follow в CLI