Ответы пользователя по тегу Git
  • Папка .git занимает 200гб?

    Decadal
    @Decadal
    как и любая другая директория, .git хранит то что вы туда когда-либо положили. Не напрямую, конечно, а посредством утилиты git.

    если удалить эту папку, вы потеряете: 1) локальную историю коммитов, бранчей, сташи и тд - всё что связано с разработкой и гитом, если коротко. 2) потеряете origin, если он не указан в гите глобально или в конфигах в ide. Т.е. будет непонятно какой удалённый репозиторий у этого проекта.
    Проект будет работать, но переключиться на другую ветку будет нельзя (тоже думаю очевидно), да и не будет никаких других веток.
    Ответ написан
    Комментировать
  • Git: как игнорировать файл при пуше?

    Decadal
    @Decadal
    как игнорировать файл при пуше?

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

    В обоих файлах должны отслеживаться изменения при коммите.


    оффтоп: если должны отслеживаться, значит, должны и попадать в гит. Вы делаете что-то странное. Будет лучше, если вы опишете, какую проблему решаете.
    Ответ написан
  • Как обновить файлы в мастере?

    Decadal
    @Decadal
    git reset --hard origin/master
    Но учтите что эта команда сломает все незакомиченные изменения которые трекаются гитом. Выполняйте ее на копии исходников прода
    *Мастер - ветка на которую смотрит прод обычно. Если у вас не так, укажите нужную ветку
    Ответ написан
  • Есть возможность откатить и слить изменения в Git?

    Decadal
    @Decadal
    Так вы не откатились. Вы переключились.
    Чтобы откатить ветку до определенно коммита, нужно делать reset.

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

    нет, не сработает. Вам нужно делать либо реверт, либо ресет
    Ответ написан
  • Как группировать измененные файлы в git?

    Decadal
    @Decadal
    Если вам не подходит с этой целью gitignore, то вы делаете что-то не так.
    Заметки в коде или попадают в гит или не нужны вовсе. Для заметок для себя вы можете использовать средства IDE, там вроде есть возможность оставлять заметки не в основном файле с кодом.
    Если вам нужно протестировать какой-то пакет, протестируйте его, не коммитя, а потом откатите или добавьте под гит.
    Другого способа нет - представьте что файл, в котором вы сделали изменения, не добавленные под гит, поменял другой разработчик и при пулле эти данные пришли. Что будет в таком случае? Гит скажет "у вас незакоммичены какие-то изменения, закоммите их или откатите, иначе не сможете сделать пул".
    Ответ написан
    Комментировать
  • Правильно ли я комичу ветку?

    Decadal
    @Decadal
    Создать ветку: git checkout -b your_branch_name
    После внесения изменений проверьте что они отслеживаются гитом: git status должен показать что-то красное (untracked files or modified files)
    Если есть что-то красное - вы на правильном пути.
    git add .- отметит все файлы в текущем репозитории как подготовленные к коммиту. В git status они будут зелёного цвета.
    git commit -m "some commit message"- вот теперь вы закоммитили.
    Если просто написать git push и ваша ветка перед этим не была на ориджин, в консоль выдаст сообщение вроде "такой ветки на ориджин не найдено. Чтобы запушить на ориджин, выполните команду ....(команда)."

    Копируйте команду которую вам предлагают и выполняйте.
    После этих действий в вашей ветке на ориджин гарантированно будет ваш коммит с изменениями
    Ответ написан
    Комментировать
  • Какую ветку клонировать?

    Decadal
    @Decadal
    клонируйте мастер
    Обычно мастер это ветка со стабильным, проверенным кодом, принятым на прод. Разработки других разработчиков ведутся в их ветках, и вам нет необходимости беспокоиться о самом последнем коммите куда-либо кроме мастера - потому что любой код в итоге либо попадет в мастер, либо будет отброшен.
    Ответ написан
    Комментировать
  • Почему не работает .gitignore?

    Decadal
    @Decadal
    gitignore работает немного не так. В нём указываются файлы, которые вы бы хотели менять локально, но не хотели бы их загружать в гит.
    А если в гите что-то изменилось, вы обязаны это получить к себе при git pull
    Ответ написан
    2 комментария
  • Как правильно добавить файлы миграций в gitignore?

    Decadal
    @Decadal
    Пустые папки гит по умолчанию не индексирует. Разместите в папке миграций файл .gitkeep или .gitignore с контентом
    *
    !.gitignore
    Ответ написан
    Комментировать
  • Как правильно обновлять ветку с мастером?

    Decadal
    @Decadal
    Зависит от того, нужна ли вам branch-1. Если b1 и b2 будут проводиться на мастер обе, а b2 отколота от b1, то рекомендуется мерджить мастер в b1, а b1 в b2

    если b1 будет выкинута, просто мерджите мастер в b2
    Ответ написан
    Комментировать
  • Как пользоваться Git в php stotm если сайт уже опубликован на хостинге (не гитхаб)?

    Decadal
    @Decadal
    Все просто, сударь
    https://git-scm.com/book/ru/v2

    Если вы прочтёте это и у вас останутся вопросы по гиту в шторме, приходите.
    Ответ написан
    Комментировать
  • Как иметь две версии файла, что бы 1 видел git, а другую сервер?

    Decadal
    @Decadal
    Так как описано - не выйдет, при пуле изменений с репы файла который локально тоже изменён, будет конфликт вида 'сначала закоммитьте изменения'
    Только разделением на config.local.php.example и config.local.php который будет под гит игнором

    Если суть в том чтобы мерджились какие-то конфиги, то будет хорошим решением сделать два файла, подключать оба, один будет с настройками с гита, другой будет с локальными, и локальные будут переопределять гитовские
    Ответ написан
    1 комментарий
  • Git отменить закомиченные изменения?

    Decadal
    @Decadal
    git reset --hard origin/master - если вы не пушили ничего из того, что нужно отменить
    иначе git revert и учтите что коммиты которые были в реверте, потом фиг зайдут в ветку, аж пока не сделают реверт реверта
    Ответ написан
    Комментировать
  • Как работать с git/github и своим проектом?

    Decadal
    @Decadal
    Другой человек должен запушить свою ветку на гитхаб. До того, как он это сделает, его ветка недоступна для вас, поскольку он ведёт локальную работу.
    Далее у человека, который вносит изменения в ветку adaptive, есть два способа дать вам знать о своей работе. Первый - простой пуш ветки, второе - создание мердж-реквеста. Первый метод создаст в вашем репозитории на гитхабе еще одну ветку в списке веток (по умолчанию ветка там одна, называется master).
    Вы сможете затянуть такую ветку к себе и переключиться на неё - git fetch && git checkout origin/adaptive. Эти команды следует выполнять в терминале, стоя прямо в той папке, с которой работали вы. Не нужно создавать никакую другую папку для чужой ветки. Всё хранится в пределах одной папки.
    Второй способ(между прочим, он включает в себя первый) означает запрос на добавление ветки adaptive в ветку master. Вы должны будете посмотреть "разницу" между веткой мастер и веткой адаптив, после чего одобрить этот запрос или отклонить его (это можно проделать прямо в интерфейсе гитхаба).

    После этого все его изменения из ветки "адаптив" применятся к ветке мастер, и вы сможете работать с веткой мастер дальше.

    Это только базовые знания в виде моего потока сознания. Вам следует постараться понять первые десять глав учебника гита.
    Ответ написан
    4 комментария
  • Опять начал работать не в той ветке?

    Decadal
    @Decadal
    Предед началом работы над новой таской
    git checkout master
    git pull
    git checkout -b task_number_and_task_name
    Выглядит как будто это ещё сложнее запомнить, до тех пор пока вы не представите что сотня условных разработчиков могла уже напушить в мастер кучу кода, и на ветке девелоп куча кода которому уже три года но его не одобрили в мастер.

    Тогда вы будете работать каждый раз над новой задачей в новой ветке. Потом будете мерджить эту ветку в develop, для демонстрации своей таски. А потом если все ок то мерджите в мастер(или кидаете мердж реквест) свою ветку (не develop)

    Страх конфликтов заставит вас запомнить работу с ветками, и git status вы будете набирать уже по привычке везде и всюду)

    И да, желательно три сервера. Демо, стейдж и прод.
    Демо содержит мусорную develop ветку. Стейдж содержит мастер ветку. И прод тоже мастер ветку. Хорошая работа вашей таски в мусорной ветке ещё не гарантирует таковую в мастере
    Ответ написан
  • Как восстановить локальную историю git в PhpStorm?

    Decadal
    @Decadal
    изменения прав на файлы исходников даёт подобный эффект.
    чтобы увидеть проблему:
    git diff
    показывает изменения незакоммиченных файлов по отношению к последнему коммиту.
    git checkout <filename>
    откатывает файл к состоянию, в котором он был при последнем коммите.
    Ответ написан
    1 комментарий
  • Git - объясните, пожалуйта, зачем придумали add? Почему нельзя было сразу делать commit (Без add)?

    Decadal
    @Decadal
    потому что вы не всегда будете хотеть добавить все файлы, которые изменились. Часто нужно добавить некоторые.
    Пример: вы просматривали какой-то файл, поставили там случайно пробел. При git status вывело 4 измененных файла, хотя вы уверены только в трех. Тогда вы добавляете три файла и свободно их коммитите, после чего разбираетесь с четвертым.
    Особенно жизненно для хотфиксов, когда нет времени разбираться с чем-то, нужно просто залить один файл с фиксом.
    Ответ написан
    Комментировать
  • Как посмотреть все назначенные псевдонимы в Git?

    Decadal
    @Decadal
    Ответ написан
    Комментировать