при том, что в ветке я работаю один, и все commit'ы\push'ы делаю последовательно, на одной машине.
При этом почему-то регулярно происходит мерж. Это как? Я должен делать pull даже когда строго работаю один?
Как то это странно...
S>При этом почему-то регулярно происходит мерж. Это как?
Посмотри git log (из командной строки), там должно быть сразу понятно, что откуда мержится. Может там какая-нибудь тулза шибко продвинутая, автоматически создает и мержит что-нибудь.
Re: Дурацкий вопрос по git. Странные мерджи в ветке.
S>при том, что в ветке я работаю один, и все commit'ы\push'ы делаю последовательно, на одной машине.
Значит не последовательно. S>При этом почему-то регулярно происходит мерж. Это как? Я должен делать pull даже когда строго работаю один?
Не должен. S>Как то это странно...
Пропиши в .gitconfig-е
[merge]
ff = only
[pull]
ff = only
Тогда у тебя не будет неожиданых мерджей (если пользуешься консольным гитом или если твоя программа не игнорирует настройки в этом файле). Я всегда так делаю.
Re[2]: Дурацкий вопрос по git. Странные мерджи в ветке.
Здравствуйте, SkyDance, Вы писали:
S>>При этом почему-то регулярно происходит мерж. Это как? SD>Посмотри git log (из командной строки), там должно быть сразу понятно, что откуда мержится. Может там какая-нибудь тулза шибко продвинутая, автоматически создает и мержит что-нибудь.
Ага, тут обнаружил, что у меня удалился важный код. Я этого, разумеется, не делал. Какой-то бред творится.
Кодом людям нужно помогать!
Re: Дурацкий вопрос по git. Странные мерджи в ветке.
Здравствуйте, Sharov, Вы писали:
S>при том, что в ветке я работаю один, и все commit'ы\push'ы делаю последовательно, на одной машине. S>При этом почему-то регулярно происходит мерж. Это как? Я должен делать pull даже когда строго работаю один? S>Как то это странно...
А что в коммитах-то, которые мержатся?
Re: Дурацкий вопрос по git. Странные мерджи в ветке.
Здравствуйте, Sharov, Вы писали:
S>При этом почему-то регулярно происходит мерж. Это как? Я должен делать pull даже когда строго работаю один? S>Как то это странно...
Это возможно когда меняешь историю. Например, сделал коммит, потом пуш. А потом сделал commit --amend. При следующем push потребуется мерж.
В общем у тебя же есть вся история, погляди что в каждом коммите, время и т.п. reflog ещё погляди.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Здравствуйте, ·, Вы писали:
·>Здравствуйте, Sharov, Вы писали:
S>>При этом почему-то регулярно происходит мерж. Это как? Я должен делать pull даже когда строго работаю один? S>>Как то это странно... ·>Это возможно когда меняешь историю. Например, сделал коммит, потом пуш. А потом сделал commit --amend. При следующем push потребуется мерж.
Такого не делал. amend -- это вроде изменить незапушенный коммит.
·>В общем у тебя же есть вся история, погляди что в каждом коммите, время и т.п. reflog ещё погляди.
В том то и дело, что судя по логам, при мержах только один родитель. Это как?
Кодом людям нужно помогать!
Re[3]: Дурацкий вопрос по git. Странные мерджи в ветке.
Здравствуйте, Sharov, Вы писали:
S>В том то и дело, что судя по логам, при мержах только один родитель. Это как?
Этого просто не может быть. При мерже всегда два родителя. Иначе это мерж чего с чем?
Если ты сам ничего "странного" не делал из того что переписывает историю (--amend, rebase, и т.п.),
то скорее всего у тебя какая-то интеграция настроена, которая это делает. Посмотри, что у тебя в папке .git/hooks
А что в коммитах-то, которые мержатся (содержимое)?
Без ознакомления с историей сложно понять.
Но ты можешь прогнать репозиторий или его кусочек через анонимайзер и выложить результат в публичный доступ.
Возможно это поможет.
См. https://www.git-scm.com/docs/git-fast-export#_anonymizing
Re[3]: Дурацкий вопрос по git. Странные мерджи в ветке.
Здравствуйте, Sharov, Вы писали:
S>·>Это возможно когда меняешь историю. Например, сделал коммит, потом пуш. А потом сделал commit --amend. При следующем push потребуется мерж. S>Такого не делал. amend -- это вроде изменить незапушенный коммит.
Ну squash например ещё: Сделал коммит, запушил. сделал ещё один коммит — потом сделал squash|fixup с предыдущим, потом опять пытаешься пушить.
S>·>В общем у тебя же есть вся история, погляди что в каждом коммите, время и т.п. reflog ещё погляди. S>В том то и дело, что судя по логам, при мержах только один родитель. Это как?
Не понял. Лог на картинке показывает два родителя.
Мерж с одним родителем невозможен. Мерж, по определению, это коммит, у которого более одного родителя.
git reflog в студию.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[4]: Дурацкий вопрос по git. Странные мерджи в ветке.
Здравствуйте, ·, Вы писали:
S>>·>В общем у тебя же есть вся история, погляди что в каждом коммите, время и т.п. reflog ещё погляди. S>>В том то и дело, что судя по логам, при мержах только один родитель. Это как? ·>Не понял. Лог на картинке показывает два родителя. ·>Мерж с одним родителем невозможен. Мерж, по определению, это коммит, у которого более одного родителя. ·>git reflog в студию.
Картинка
Я использую черепаху и git ammend я использовал сл. образом -- когда надо сделать новый коммит, жму галку
ammend, копирую текст сообщения (номер задачи+ Semantic Commit Messages), убираю галку amend, пояляется
текущий коммит, вставляю скопированный текст + какие-то еще сообщения, commit & push. Собственно,
я так делаю практически всегда, но вот пару раз ammend каким-то образом появился. Может это глюк в черепахе?
Т.е. я не пушил ammend, а просто брал пред. сообщение, после чего отжимал галку ammend. М-да.
Кодом людям нужно помогать!
Re[5]: Дурацкий вопрос по git. Странные мерджи в ветке.
Здравствуйте, Sharov, Вы писали:
S>Я использую черепаху и git ammend я использовал сл. образом -- когда надо сделать новый коммит, жму галку S>ammend, копирую текст сообщения (номер задачи+ Semantic Commit Messages), убираю галку amend, пояляется S>текущий коммит, вставляю скопированный текст + какие-то еще сообщения, commit & push. Собственно, S>я так делаю практически всегда, но вот пару раз ammend каким-то образом появился. Может это глюк в черепахе? S>Т.е. я не пушил ammend, а просто брал пред. сообщение, после чего отжимал галку ammend. М-да.
Нафик эту черепаху
В gitgraph предыдущее сообщение нажатием кнопки "стрелочка вверх" получается в поле ввода коммента для коммита.
Re[5]: Дурацкий вопрос по git. Странные мерджи в ветке.
Здравствуйте, Sharov, Вы писали:
S>Я использую черепаху и git ammend я использовал сл. образом -- когда надо сделать новый коммит, жму галку S>ammend, копирую текст сообщения (номер задачи+ Semantic Commit Messages), убираю галку amend, пояляется S>текущий коммит, вставляю скопированный текст + какие-то еще сообщения, commit & push. Собственно,
Контекстное меню в текстовом редакторе вызовите. Там есть команды вставить последнее или некоторое определённое сообщение из истории и не нужны будут да снова.
Help will always be given at Hogwarts to those who ask for it.
Re[5]: Дурацкий вопрос по git. Странные мерджи в ветке.
S>текущий коммит, вставляю скопированный текст + какие-то еще сообщения, commit & push. Собственно, S>я так делаю практически всегда, но вот пару раз ammend каким-то образом появился. Может это глюк в черепахе?
Интересно, а зачем? Почему просто не добавлять коммиты сверху, а потом, уже перед push, делать squash? Даже GitHub предлагает примерно такой вариант работы. Это действительно удобнее, до окончания работы над веткой иметь историю изменений в виде коммитов.
Re[6]: Дурацкий вопрос по git. Странные мерджи в ветке.
Здравствуйте, SkyDance, Вы писали:
S>>текущий коммит, вставляю скопированный текст + какие-то еще сообщения, commit & push. Собственно, S>>я так делаю практически всегда, но вот пару раз ammend каким-то образом появился. Может это глюк в черепахе? SD>Интересно, а зачем? Почему просто не добавлять коммиты сверху, а потом, уже перед push, делать squash? Даже GitHub предлагает примерно такой вариант работы. Это действительно удобнее, до окончания работы над веткой иметь историю изменений в виде коммитов.
У меня это такой способ получить сообщение коммита. Я не делаю ammend, т.е. думал что не делаю.
Черепаха как-то странно себя ведет.