Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Все валят с TFS и Azure Devops?

5524  1 2 3 4 5 6 7 8 все
AlexNek патриот17.05.23 20:10
AlexNek
NEW 17.05.23 20:10 
в ответ alex445 17.05.23 09:09
можно склонировать снова в то же место.
а потом хочу другую в ту же папку на локальной машине.

не понял - это же то что хочется..

#81 
AlexNek патриот17.05.23 20:13
AlexNek
NEW 17.05.23 20:13 
в ответ alex445 17.05.23 09:09

Вот тут "переключение" веток

#82 
alex445 коренной житель17.05.23 22:54
NEW 17.05.23 22:54 
в ответ AlexNek 17.05.23 20:13

Я уже нашёл, как их переключать. Я думал, там для каждой ветки своя папка локально заводится, и надо скачивать всю ветку снова. Ветки могут весьма немало отличаться. У нас так в моей ветке у меня свой отдельный проект.

#83 
AlexNek патриот17.05.23 23:41
AlexNek
NEW 17.05.23 23:41 
в ответ alex445 17.05.23 22:54
для каждой ветки своя папка локально заводится

нет. Один репозиторий -- одна папка. А новые ветки или обновы, да нужно скачивать, но опять таки не всё с нуля при обновлении.


Есть ещё удобная операция stash. Это когда все локальные изменения сохраняются в отдельном локальном хранилище и ветка переходит в состояние последнего коммита. После этого можно переключать ветки без опаски потери незакоммиченных изменений.

#84 
alex445 коренной житель18.05.23 14:44
NEW 18.05.23 14:44 
в ответ AlexNek 17.05.23 23:41

А как просмотреть версии файлов из других веток? Всё через сравнение (по датам, номерам чекинов, веткам) делается?


Мне иногда нужны некоторые файлы в последних версиях из основной ветки, но не вся обновлённая основная ветка, т.к. туда мои изменения ещё не закоммичены. Как обновить себе только часть файлов?

#85 
AlexNek патриот18.05.23 16:13
AlexNek
NEW 18.05.23 16:13 
в ответ alex445 18.05.23 14:44
А как просмотреть версии файлов из других веток?

Особо так часто и не нужно было. Поэтому, как лучше всего или правильнее не знаю.

Обычно, если ломит делать лишние движения, то идём в репо веб интерфейс и смотрим прямо там.

Или можно сделать еще одну локальную копию и там переключать или сравнивать что хочется.

#86 
alex445 коренной житель22.05.23 15:14
NEW 22.05.23 15:14 
в ответ AlexNek 18.05.23 16:13

А как удалить файлы ветки с локальной машины правильно? Если я что-то делал с проектом, но не закоммитил и не запушил, то можно просто закрыть IDE и стереть папку с проектом с диска? Я ещё для верности делаю revert changes на весь проект, и тогда закрываю и удаляю. Этого достаточно?


Я к тому, что может там система контроля версий требуют какую-то команду для удаления, а не просто в файловой системе самому шуровать. Как ветки переключать ок - понял, а как удалить вообще...

#87 
AlexNek патриот22.05.23 19:15
AlexNek
NEW 22.05.23 19:15 
в ответ alex445 22.05.23 15:14
и стереть папку с проектом с диска

Зачем?

Если есть мусорные изменения, то просто "делаю revert changes на весь проект".

А вот в студии сделать Build/Clean Solution не помешает.

#88 
alex445 коренной житель22.05.23 20:13
NEW 22.05.23 20:13 
в ответ AlexNek 22.05.23 19:15

Не понял. Сначала revert changes, потом очистить решение, а потом перестроить?

#89 
AlexNek патриот22.05.23 20:46
AlexNek
NEW 22.05.23 20:46 
в ответ alex445 22.05.23 20:13

Важно, что бы в ветке не было "мусорных" изменений, всё остальное опционально.

Можно ещё и студию перезапустить, благо для этого и плагин есть.

Хотя иногда и куки сайта приходится удалять и кэш.

#90 
alex445 коренной житель24.05.23 13:26
NEW 24.05.23 13:26 
в ответ AlexNek 22.05.23 20:46

А что за пулл реквест такой? Я работаю в своей ветке, а есть ещё куча других и главная (мастер) ветка. Но я коммичу лишь в свою. И на каждый коммит и затем пуш мне Гит предлагает сделать пулл реквест. Я прочитал, что это типа запрос добавить мой код репу. Но ведь я уже добавил его через пуш?

#91 
AlexNek патриот24.05.23 17:43
AlexNek
NEW 24.05.23 17:43 
в ответ alex445 24.05.23 13:26
Но ведь я уже добавил его через пуш?

Вот именно для любителей делать прямой пуш в мастер и сделано.

Обычно, просто запрещают прямой пуш в мастер, только через ПР.

После создания ПР, как правило, проверяются начальные условия - типа всё компилится без ошибок и все тесты прошли успешно. Можно добавить ещё, что нибудь, по желанию

Затем кто то должен глянуть предлагаемые изменения, согласится с ними или добавить комментарии.

На следующем шаге можно закрыть ПР, после этого все изменения станут активными.


Дискутировать по этому поводу можно также до бесконечности, нужно оно или нет в конкретном проекте. Но многие решают что нужно.

#92 
alex445 коренной житель24.05.23 22:27
NEW 24.05.23 22:27 
в ответ AlexNek 24.05.23 17:43

Т.е. пулл реквест это пуш в мастер? А если в мою локальную ветку, то можно копить пуши без пулл реквеста? Правда, может набраться слишком много изменений...


Или пулл реквест в любую ветку можно сделать, не обязательно в мастер?

#93 
AlexNek патриот24.05.23 23:12
AlexNek
NEW 24.05.23 23:12 
в ответ alex445 24.05.23 22:27
Т.е. пулл реквест это пуш в мастер

ну не совсем так, вот тут есть пример

https://blog.skillfactory.ru/glossary/github/


А если в мою локальную ветку

В локальной ветке можно делать что хошь - главное состояние перед слиянием.


может набраться слишком много изменений

Нужно тогда разбивать на подзадачи.


Или пулл реквест в любую ветку можно сделать,

конечно. Но это не операция - это процесс. Процесс слияния веток. В каждом конкретном случае он разный, хотя есть и стандартные шаги.

Для одного единственного разработчика он не нужен вообще.

#94 
alex445 коренной житель25.05.23 01:47
NEW 25.05.23 01:47 
в ответ AlexNek 24.05.23 23:12

А если в мою локальную ветку

В локальной ветке можно делать что хошь - главное состояние перед слиянием.

У меня иногда подобная ситуация происходит, что здесь на картинке слева, только всё в пределах моей ветки. Я не помню, что нажал - вроде сначала коммит и пуш, затем пулл, и затем снова пуш. И там прямо от моей ветки появилась параллельная с одним пунктом, и затем тут же слилась с моей основной. Я так понимаю, где-то рассинхрон произошёл удалённой репы с моей веткой и моей локальной репой с моей веткой, а после принудительного пуша они слились.

#95 
MrSanders коренной житель25.05.23 09:55
NEW 25.05.23 09:55 
в ответ alex445 25.05.23 01:47, Последний раз изменено 25.05.23 09:56 (MrSanders)
вроде сначала коммит и пуш, затем пулл, и затем снова пуш

Правильно не помнишь. От такой последовательности действий никаких мержей не будет.

"внезапные" ответвления от локальной ветки появляются когда у тебя есть различия между локальной веткой и ремоут (удалённая звучит как будто её кто-то удалил), с которой ты свою локальную ветку синхронизируешь. Если эти изменения нельзя разрешить простым fast-forward мержем.


Примеры.

Локальная          Ремоут           git push             git pull
A-B-C             A-B              добавит C в ремоут    ничего не сделает
A-B               A-B-C            ничего не сделает     добавит C в локальную
A-B-C             A-B-D            пошлёт делать пулл    замержит D с C, содаст E в локальной

     C
   /   \
A-B--D--E - так будет выглядеть локальная ветка после git pull

Многим не нравится видеть такую ветвистую историю. На помощь спешит параметр --rebase (git pull --rebase) ну или настройки. Можно настроить что все pull по умолчанию делаются с --rebase, можно для конкретной ветки. В третьем примере после git pull --rebase у нас в локальной ветке появится такое:

A-B-D-C' где C' это изменённый C. Ну, про rebase ты же в курсе, да?

#96 
Simple Nothing is f*cked25.05.23 17:19
Simple
NEW 25.05.23 17:19 
в ответ MrSanders 25.05.23 09:55

нп

В новом проекте только что перешли с ClearCase на git. Я так рад, что (почти) не застал этот ужос.

Тоже предпочитаю консоль, но в IntelliJ очень удобная поддержка git. Я аж был удивлен.

#97 
alex445 коренной житель25.05.23 17:55
NEW 25.05.23 17:55 
в ответ MrSanders 25.05.23 09:55, Последний раз изменено 25.05.23 17:55 (alex445)
вроде сначала коммит и пуш, затем пулл, и затем снова пуш
Правильно не помнишь. От такой последовательности действий никаких мержей не будет.

Вроде, сейчас точнее вспомнил - я пытался поправить коммент в уже запушенном коммите. Или ещё не запушенном, но уже закоммиченном - вот тут точно не помню. Вобщем, образовалась бранча, которая тут же смёрджилась после запушивания коммита с исправленным комментом. Вроде как-то так.

#98 
alex445 коренной житель25.05.23 17:57
NEW 25.05.23 17:57 
в ответ Simple 25.05.23 17:19, Последний раз изменено 25.05.23 17:59 (alex445)
Тоже предпочитаю консоль

Консоль-консоль... А сравнение файлов смотрится тоже в консоли, или в нормальном окне с редактором и подсветкой? ))

#99 
alex445 коренной житель25.05.23 17:59
NEW 25.05.23 17:59 
в ответ alex445 24.05.23 22:27

Т.е. пулл реквест это пуш в мастер? А если в мою локальную ветку, то можно копить пуши без пулл реквеста? Правда, может набраться слишком много изменений...

Или пулл реквест в любую ветку можно сделать, не обязательно в мастер?

Вобщем, попробовал согласиться на предлагаемый пулл реквест - из Студии открылся веб интерфейс Гита на Azure DevOps, где по-умолчанию предложили смёрджить мою ветку с мастером. При этом в выпадающих списках можно выбирать, какую ветку с какой мёрджить.


Короче, как я понял, пулл реквест это всегда мёрдж двух веток.

1 2 3 4 5 6 7 8 все