Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.09.2014, 12:49
Аватар для Duda.Ml1986@gmail.com
Профессор
Отправить личное сообщение для Duda.Ml1986@gmail.com Посмотреть профиль Найти все сообщения от Duda.Ml1986@gmail.com
 
Регистрация: 01.09.2011
Сообщений: 263

git и изменения
Всем привет, пока читаю про сею систему контроля версий возникли вопросы.

1. Допустим я сделал 3 коммита в мастере
2. Потом создал ветку SECOND , в ней коммит и потом смерджил обе ветки, c закрытием последней (SECOND).
3. потом я добавил новый коммит в мастере

Но увидел что в ветке SECOND в том единственном коммите я мог бы кое что изменить, вопрос в том , если я перейду на нее и изменю, отобразится это в текуйщей HEAD коммите изменения прошлого?

Нужно ли вообще закрывать ветки? или лучше пусть будут и легче добавить новый коммит и снова сделать слияние веток?
Ответить с цитированием
  #2 (permalink)  
Старый 05.09.2014, 12:56
Профессор
Отправить личное сообщение для WorM32 Посмотреть профиль Найти все сообщения от WorM32
 
Регистрация: 11.02.2014
Сообщений: 303

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

Если ветка не удалена, то можно в нее просто подмержить мастер и новые правки сделать отдельным коммитом.
Ответить с цитированием
  #3 (permalink)  
Старый 05.09.2014, 13:05
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

В гите для слияний есть 2 операции: merge (собственно слияние) и rebase (проецирование коммитов ветки на другую), а ещё есть chery-pick, который позволяет коммит или несколько коммитов зафигачить в другую ветку.

Цитата:
Нужно ли вообще закрывать ветки? или лучше пусть будут и легче добавить новый коммит и снова сделать слияние веток?
Под закрытием имеешь ввиду удаление? Я удаляю обычно, но некоторые рекомендуют не делать этого.

У меня сценарий работы обычно такой:

Допустим делают апдейт либы до версии 1.1.

1) Создаю бранч v1.1
2) Когда закончил работу, то мержу его с мастером
3) Убиваю бранч
4) Создаю тег v1.1
__________________
kobezzza
code monkey
Ответить с цитированием
  #4 (permalink)  
Старый 05.09.2014, 13:08
Аватар для Duda.Ml1986@gmail.com
Профессор
Отправить личное сообщение для Duda.Ml1986@gmail.com Посмотреть профиль Найти все сообщения от Duda.Ml1986@gmail.com
 
Регистрация: 01.09.2011
Сообщений: 263

теги для удобных checkout - ов, а вот если я хочу изменить этот старый коммит, он будет отображаться в HEAD - е? то есть добавится во все последующие коммиты? или его не будет в последней версии?
Ответить с цитированием
  #5 (permalink)  
Старый 05.09.2014, 13:10
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от Duda.Ml1986@gmail.com Посмотреть сообщение
теги для удобных checkout - ов, а вот если я хочу изменить этот старый коммит, он будет отображаться в HEAD - е? то есть добавится во все последующие коммиты? или его не будет в последней версии?
Что мешает попробывать и узнать? Я хз, т.к. не изменяю коммиты, а если нужно сделать изменение, то просто сделаю ещё один коммит.
__________________
kobezzza
code monkey
Ответить с цитированием
  #6 (permalink)  
Старый 05.09.2014, 13:33
Аватар для ixth
Профессор
Отправить личное сообщение для ixth Посмотреть профиль Найти все сообщения от ixth
 
Регистрация: 19.01.2010
Сообщений: 354

Если никуда не пушил, то пиши изменения в отдельный коммит, а потом делай git rebase -i <коммит, который надо исправить>. Появится список коммитов в редакторе, ты можешь тасовать его как хочешь, в т.ч. взять коммит исправление, поставить его после того коммита, который хочешь исправить и поменять директиву с pick на fixup. Тогда правки из нового коммита сольются с предыдущим.

Правда, если я не ошибаюсь, это изменить хэши всех последующих коммитов, а также может привести к конфликтам в ходе ребейза, но из легко разрешить при помощи git mergetool.


Еще есть альтернативный способ. Как я понимаю, по сути то же, но более автоматизированное: http://fle.github.io/git-tip-keep-yo...utosquash.html
Ответить с цитированием
  #7 (permalink)  
Старый 08.09.2014, 08:57
Профессор
Отправить личное сообщение для WorM32 Посмотреть профиль Найти все сообщения от WorM32
 
Регистрация: 11.02.2014
Сообщений: 303

Сообщение от ixth Посмотреть сообщение
Если никуда не пушил, то пиши изменения в отдельный коммит, а потом делай git rebase -i <коммит
Проще уж тогда git commit --amend.
Ответить с цитированием
  #8 (permalink)  
Старый 08.09.2014, 12:06
Аватар для ixth
Профессор
Отправить личное сообщение для ixth Посмотреть профиль Найти все сообщения от ixth
 
Регистрация: 19.01.2010
Сообщений: 354

Сообщение от WorM32 Посмотреть сообщение
Проще уж тогда git commit --amend.
Это если тебе нужно только последний коммит зафиксить, не?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сохранить изменения скрипта kosty@ jQuery 5 09.01.2014 19:56
git hub - клонировать репозиторий torsar Оффтопик 5 21.08.2013 23:49
Отлов изменения размера элемента. Какие способы есть? danik.js Events/DOM/Window 3 05.02.2013 11:00
Как с помощью PHP сохранить какие-либо изменения в HTML документе? FirstFrost Работа 6 06.09.2010 16:16