git --help
git --version
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
git init name-of-project
cd name-of-project
git init .
git add .gitignore
git commit -m "Commentary to commit"
git add .
git status
git commit -m "Another commentary"
git remote add origin https://github.com/.../blablabla.git
git push -u origin master
Добавление -> закрепление -> отправка:
git add .
git commit -m "It will be on github.com!"
git push
git reset
git reset --hard
git reset HEAD~1 --soft
Примечание: русский язык может не поддерживаться в вашем IDE.
git log
git checkout name_of_commit
git checkout -
git clone https://github.com/..../project.git
Часто пока вы работаете над одной частью вашего проекта и всё находится в беспорядке, у вас возникает желание сменить ветку и поработать над чем-то ещё. Сложность при этом заключается в том, что вы не хотите фиксировать наполовину сделанную работу только для того, чтобы иметь возможность вернуться к ней позже. Справиться с ней помогает команда git stash. Source
git stash
Можно также добавить сообщение с помощью save
-параметра:
git stash save "Ok here it is"
git stash list
git stash apply
git stash apply stash@{2}
git rm --cached another-file.txt
git rm --cached file.txt
Например, вот так можно удалить папку с конфигурацией проекта PyCharm (IDEA):
git rm --cached -r .idea
Не только Github, но и любого другого удаленного git-сервера. Вопрос решает авторизация с помощью генерации SSH-ключа на компьютере разработчика. Вначале проверьте, установлен ли у вас SSH-клиент (Windows 10 со сборки 1809, Ubuntu, OS X, etc
- все имеют предустановленный клиент):
ssh -V
Если есть, то отлично, генерируем ключ (вместо ed25519 можно выбрать другие алгоритмы шифрования ключа):
ssh-keygen -t ed25519
На все вопросы можете ответить Enter. Но моя рекомендация, когда будет запрос "Enter passphrase (empty for no passphrase)", ввести кодовую фразу для ключа. Да, каждый push/pull/fetch придется её вводить, но зато если вдруг кто-то украдёт приватную часть ключа, он не сможет без неё получить доступ ко всем вашим удаленным репозиториям. Да, вам не послышалось, ключ разделён на две части: приватная (private key) и публичная (private key). Как следует из названия, приватную никому передавать нельзя, жди беды, а вот публичную как раз и стоит загрузить на удаленный сервер с репозиториями, в твоём случае это, скорей всего github.com.
Последний этап: загрузить свой public key на сервер и поменять у локального сервера способ авторизации с HTTP на SSH.
Github: Клик по аватару / Settings / SSH and GPG keys / New SSH key. Расположение ключа смотрите в консоли, оно там уже распечаталось. Далее переходим в ваш репозиторий на Github и клацаем по большой зеленой кнопке "Code", после чего выбраем SSH, копируем ссылку и вводим ее в консоль проекта:
git remote set-url origin git@github.../project.git
Конфликты могут возникать, когда два разработчика работают над одним проектом (или один с двух устройств). Большинство конфликтов решаются автоматически инструментом git, но если в двух разных коммитах находятся разные изменения одного и того же участка кода, то подобные слияния (merge), может сделать только сам разработчик.
За основу взят код отсюда.
git fetch
git merge
Если возникнет необходимость ручного слияния, то выскочит что-то вроже:
Auto-merging tests/test_1.py
CONFLICT (content): Merge conflict in tests/test_1.py
Auto-merging tests/test_2.py
В примере выше test_2.py прощел автоматическое слияние, а test_1.py нет. Для того, чтобы это исправить, нужно открыть конфликтующий файл и решить, какую строку оставить и закоммитить проект:
<<<<<<< HEAD
x = 5
=======
x = 10
>>>>>>> master
Допустим, в своем проекте вы используете другой свой (или чужой, почему нет) репозиторий, вот вы его склонировали, но что дальше? Конечно, можно просто удалить папку .git
у только что склонированного подпроекта и дело с концом, но тогда не будет синхронизации с оригинальным репозиторием и все изменения придется применять руками. Это не очень удобно, лучше пометьте эту папку как подмодуль:
git submodule add [email protected]/.../blablabla.git blablabla
Отлично! Теперь пушьте и забудьте о варварстве с удалением .git
.
- Скорая помощь для тех, кто накосячил и потерял данные - Ё**ный Git!!! (цензурная версия)