Хорошая статья про устройство git - https://maryrosecook.com/blog/post/git-from-the-inside-out
Интерактивный тур - https://githowto.com/ru
Книга by Scott Chacon and Ben Straub - https://git-scm.com/book/en/v2
Базовые команды git
git --version
В файле .gitconfig — в нём хранятся глобальные настройки программы
git config --global user.name "My Name" # вводите латиницей и в кавычках
git config --global user.email my@email.com # здесь e-mail
git config --list #
вывели в окно командной строки список всех свойств конфига
Создание, отображение, добавление
# Сначала создаём папку для проекта, назовём её my-projects.
mkdir my-project # создали папку my-project в текущей директории
cd my-project # перешли в созданную папку my-project
git init # инициализировали git в папке my-project
Создание локального репозитория
в Git
любой файл репозитория находится в одном из четырёх состояний:
- неотслеживаемый (англ. untracked),
- добавленный в индекс, индексируемый (англ. staged, «выдвинутый на плацдарм»),
- изменённый (англ. modified),
- боевой, на жаргоне разработчиков «коммит» или «закоммиченный» (англ. committed, «брошенный в бой»).
Команды Git, выполняют одну из трёх задач:
- изменяют состояние файла;
- отображают информацию о файле;
- показывают разницу между его версиями.
git add название_файла # команда для добавления файлов в индекс Staging Area
git add --all # добавить все файлы к остлеживанию
git commit -m "My first commit" # сделали первый коммит
git clone [адрес, откуда копируем] [путь до папки, куда копируем]
git push -u origin master #origin - имя сервера, master - имя ветки, u - связывает локальную ветку с веткой удалённого репозитория. Этот ключ нужен, только если вы публикуете новые ветки.
git pull # получает изменения с удаленного репозитория, Выполнение этой команды может привести к конфликтам, так как все изменения при получении сразу сливаются с вашей веткой.
.gitignore
# комментарий — эта строка игнорируется
# игнорировать файлы с расширением
.pyc,
# * - любое количество символов (ноль и больше),
*.pyc
# НО отслеживать файл main.pyc
# несмотря на то, что мы игнорируем все .pyc файлы с помощью предыдущего правила
!main.pyc
# ? - ноль или один символ
# Исключить файлы text.txt, test.txt, tet.txt и т.д.
te?t.txt
# игнорировать только файл main.py находящийся в корневом каталоге
# не относится к файлам вида <папка>/main.py
/main.py
# игнорировать все файлы в каталоге .idea/
.idea/
# игнорировать файлы с расширением .txt, только в папке doc, но не в подпапках папки doc doc/*.txt
# игнорировать все .txt файлы в каталоге doc/ и всех его подкаталогах
doc/**/*.txt