За последние 24 часа нас посетили 18083 программиста и 1630 роботов. Сейчас ищут 1888 программистов ...

Git Bush

Тема в разделе "Прочее", создана пользователем Konstant1n, 19 мар 2019.

Метки:
  1. Konstant1n

    Konstant1n Активный пользователь

    С нами с:
    14 авг 2017
    Сообщения:
    273
    Симпатии:
    1
    Адрес:
    Волгоград
    Всем привет! Помогите, пожалуйста. разобрать с git bush.

    создаю репозиторий на github.com
    далее на логкалке запускаю git bush и набираю
    1 - git init
    создаю файл - index.php
    2 - git add .
    3 - git commit -a -m "Create project"

    Например, я добавил код в index.php. Как мне зафиксировать дальнейшие изменения?
    git add index.php и git commit -m "comment"?
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.589
    Симпатии:
    1.763
    https://git-scm.com/book/ru/v1/Основы-Git

    И если ты создаешь сначала репу на github, то лучше начинать не с git init, а с git clone, тогда автоматом установится удалённый репозиторий. Хотя, в принципе, это и сейчас не трудно сделать
     
  3. Konstant1n

    Konstant1n Активный пользователь

    С нами с:
    14 авг 2017
    Сообщения:
    273
    Симпатии:
    1
    Адрес:
    Волгоград
    как я понял, после внесения изменений в проект, надо проиндексировать эти файлы (или все),
    для этого я набираю git add .
    далее я сохраняю это - делаю commit.
    и так, несколько раз.
    а как мне откатиться к состоянию (или это ветками называется?) первому, второму. где эта нумерация ведется?
     
  4. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    это называется коммиты.
    набери git log и ты увидишь список созданных тобой коммитов.
    у каждого коммита есть хеш, 16-ричного вида типа f345ae576a7c87c66a8aa6252
    можно откатится к любому коммиту: git checkout {6 или 9 начальных символов хеша}

    чтоб не мучаться с хешами, можно давать метки(tags)

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

    кароч, читай доку.
     
  5. Konstant1n

    Konstant1n Активный пользователь

    С нами с:
    14 авг 2017
    Сообщения:
    273
    Симпатии:
    1
    Адрес:
    Волгоград
    т.е. коммиты содержатся в ветке. в одной ветке можно переходить на разные коммиты.
    также можно переходить между ветками.
    так?
     
  6. Konstant1n

    Konstant1n Активный пользователь

    С нами с:
    14 авг 2017
    Сообщения:
    273
    Симпатии:
    1
    Адрес:
    Волгоград
    тогда мне делать так:

    первый раз изменил проект
    проиндексировал
    коммит
    создал метку,

    второй раз изменил проект
    проиндексировал
    коммит
    создал метку,

    ...

    n раз изменил проект
    проиндексировал
    коммит
    создал метку
    ?
     
  7. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.589
    Симпатии:
    1.763
    Не надо создавать столько меток. Метки - для чего-то значимого, какой-то вехи. У коммитов есть номера, @runcore же описал. Прочитай книгу. Вот, кстати, на вторую версию ссылка https://git-scm.com/book/ru/v2
     
  8. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    - индексируй, когда собираешься добавить коммит, а не просто так.

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

    - метки для другого. например кодил неделю. добавил 5 запланированных фич. выпускаешь очередной релиз приложения. и вот тут добавляешь метку с номером релиза(напр 3.0.0).. те это будет как версия твоего ПО. далее, обнаружил баг, пофиксил, повысил минорную версию метки, получилось 3.0.1 (те релиз + один фикс бага) и т.д. ну это просто как пример.
    и потом можно по этим меткам(версиям) переключаться. не забивая голову хешами коммитов..
     
  9. Konstant1n

    Konstant1n Активный пользователь

    С нами с:
    14 авг 2017
    Сообщения:
    273
    Симпатии:
    1
    Адрес:
    Волгоград
  10. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    видимо указатель сдвинут на определенный коммит а не на 'голову' ветки.
    следовательно гит непонимает куда именно(в какую ветку) эти изменения надо толкнуть.

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