На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> GIT и конфликты
    Читаю документацию по ГИТ в виде мастера и тут не могу воссоздать конфликт http://githowto.com/resolving_conflicts

    Что бы не делать все те 30 шагов что в руководстве опишу на пальцах:
    Шаг 1. имеем файл 1.txt с таким содержанием (две пронумерованные строки)
    Цитата
    1.
    2.

    Шаг 2. делаем отдельную Ветку "тест" и правим строку 1 пишем туда слово first , комитим
    Шаг 3. возвращаемся в ветку "мастер" и правим файл дописывая во вторую строку слово second и коммитим
    Шаг 4. возвращаемся в ветку "Тест" и делаем
    ExpandedWrap disabled
      git merge master


    Вопрос: ГИТ стал такой умный что разные строки в файле сам совмещает и нет конфликта или я делаю что-то не так?
      в книге этой тут аналогичный конфликт
      Цитата
      <<<<<<< HEAD
      <!-- Author: Marina Pushkova (marina@githowto.com) -->
      <html>
      <head>
      <link type="text/css" rel="stylesheet" media="all" href="style.css" />
      </head>
      <body>
      <h1>Hello, World!</h1>
      </body>
      </html>
      =======
      <!-- Author: Marina Pushkova (marina@githowto.com) -->
      <html>
      <head>
      </head>
      <body>
      <h1>Hello,World! Life is great!</h1>
      </body>
      </html>
      >>>>>>> master
      Конфлик в разных строках и ГИТ слил файлы без конфликта
        Если в первом случае я бы ещё засомневался можно-ли их безопасно совместить, то во втором даже у банального patch проблем не возникнет.

        Добавлено
        Цитата orb @
        git merge master
        Никогда не понимал, зачем сливать мастер к другой ветке.
          Цитата Dark Side @
          то во втором даже у банального patch проблем не возникнет.
          почему тогда http://githowto.com/resolving_conflicts есть конфиликт?
          у автора старая версия ГИТа?
            или это просто пример

            Добавлено
            на самом деле там увидеть проблему нереально. Надо смотреть как минимум вывод различий

            Добавлено
            Смоделировал первый пример - выдал конфликт, как я и ожидал.

            Кстати, про то что написано про разрешение конфликтов по той ссылке - забудь и не вспоминай. git mergetool - наше всё. Только настроить надо - не у всех хватает нервов работать с дефолтным vimdiff.
              Цитата Dark Side @
              Кстати, про то что написано про разрешение конфликтов по той ссылке - забудь и не вспоминай
              а что там не так?
                Для тех, кому нравится именно такой способ разруливать конфликты - ничего. А любителям vimdiff, tortoisediff и прочих интерактивных такой метод может показаться вполне себе через опу. Для меня всё в большинстве случаев сводится к git mergetool (запускается сравнивалка из tortoise), del /s *.orig и далее по интересам: commit, rebase --continue и т.п. Я даже не особо смотрю, какие файлы файлы просили слить.

                Добавлено
                Пробежался по этому howto - как-то уж совсем сухо и без пояснений, хотя местами это очень критично.
                  Цитата Dark Side @
                  Пробежался по этому howto - как-то уж совсем сухо и без пояснений, хотя местами это очень критично.
                  а можешь критику сделать подробнее
                  Это проект знакомого я как раз его изучаю детально.
                  Я уже нашел пару неточностей мелких. и вот с этим не могу разобраться почему в примере есть конфликт, а у меня не выходит :(
                    orb, в том примере изменённые строки достаточно далеко друг от друга и алгоритму вполне может хватить этого чтобы понять, что это изменения в разных блоках кода. Если надо 100% конфликт, то лучше всё-таки менять одни и теже строки, либо соседние.

                    По критике:
                    лучше подробнее остановиться на описании параметрах reset: --hard, --soft, --mixed. Стандартная справка бывает не всем понятна.

                    Не нашел ни слова о fast-forward и вообще описании вывода команд. Всё-таки читателю стоит понимать, что значит behind, ahead и diverged, а также, почему push отказывается работать.

                    Смущает, что описание bare-репозиториев находится довольно далеко от начала работы с удалёнными вообще.

                    Отсутствие авторизации git-server иногда приводит к тому, что сервер по дефолту закрыт для записи. ИМХО, стоит бегло упомянуть об альтернативных транспортах работы с удалёнными репами.
                    Здесь кратко о ssh: Если у человека есть опыт работы с ssh-сервером, то ему достаточно обеспечить доступ к катологу с репозиториями через протокол (т.е. примерно как с sftp) и (желательно, но необязательно) проходить авторизацию через пользователя у которого в качестве оболочки установлена git-shell.

                    Последний пукнт (51) вообще не понял.
                      спасибо
                        Теперь проблема тут http://githowto.com/pulling_shared_changes
                        Цитата
                        C:\Program Files\Git/libexec/git-core/git-pull cannot be used without a working tree
                          Не все операции выполняются из bare-репозитория. pull в их числе.
                            комбинация git fetch и git merge — работает
                            git pull — не работает?!?!!

                            в консоле все работает (в линуксе)
                              Цитата orb @
                              в консоле все работает (в линуксе)
                              Репозиторий - "чистый", без working tree ?

                              Добавлено
                              ExpandedWrap disabled
                                yuri@jureth /home/git/reps/achromate.git $ git fetch .
                                From .
                                 * branch            HEAD       -> FETCH_HEAD
                                yuri@jureth /home/git/reps/achromate.git $ git merge
                                fatal: This operation must be run in a work tree
                                yuri@jureth /home/git/reps/achromate.git $ git pull
                                fatal: /usr/libexec/git-core/git-pull cannot be used without a working tree.
                                yuri@jureth /home/git/reps/achromate.git $
                                Цитата Dark Side @
                                без working tree ?
                                не знаю
                                делал по инструкции
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0349 ]   [ 15 queries used ]   [ Generated: 28.04.24, 10:13 GMT ]