предисловие
недавно в网易
В свободное время я столкнулся с некоторыми проблемами с Git и воспользовался этой возможностью, чтобы восполнить базовые знания Git.
Нет публикиИнтерфейс UpUp, ответьте Git, вы можете получить карту мозга.
Обращайтесь в 👉TianTianUp, вас ждут сюрпризы ❤️
Карта мозга👇
Эта статья больше про общие команды Git, не принципиальные главы.Кому нужна эта часть знаний, могут посмотреть вниз.
В первую очередь разбираемся в обычном процессе работы Git, хорошая картинка популярная в интернете👇
основная концепция
Основываясь на приведенной выше диаграмме, мы имеем следующие понятия👇
-
Репозиторий 👉
.git
- Когда мы используем git для управления такими файлами, как
git init
Когда же на этот раз будет еще один.git
файл, мы называем этот файл репозиторием. -
.git文件
Другая функция заключается в том, что при его создании автоматически создается главная ветка и указывается указатель HEAD на главную ветку.
- Когда мы используем git для управления такими файлами, как
-
Рабочее пространство
- Место, где локальный проект хранит файлы
- Его можно понимать как рабочую область на карте
-
Промежуточная область (Индекс/Этап)
- Как следует из названия, это место для временного хранения файлов.Добавление файлов рабочей области в буфер с помощью команды add
-
Местный склад (Репозиторий)
- Обычно мы используем команду фиксации для добавления файлов из промежуточной области в локальный репозиторий.
- Вообще говоря, указатель HEAD указывает на основную ветку.
-
Удаленный склад (Удаленный)
- Например, когда мы используем GitHub для размещения нашего проекта, это удаленный репозиторий.
- Обычно мы используем команду clone для копирования кода удаленного склада, а после обновления локального кода отправляем его на удаленный склад через push-уведомление.
Статус git-файла
- Обычно нам нужно проверить статус файла
git status
-
Changes not staged for commit
- Это означает, что в рабочей области есть содержимое, а в кеше нет, нам нужно
git add
- Это означает, что в рабочей области есть содержимое, а в кеше нет, нам нужно
-
Changes to be committed
- Вообще говоря, в это время файл помещается в область кеша, нам нужно
git commit
- Вообще говоря, в это время файл помещается в область кеша, нам нужно
-
nothing to commit, working tree clean
- В это время мы можем отправить локальный код на удаленный
Общие команды
git настроить команду
- Список текущей конфигурации
git config --list
- Получение списка конфигураций репозитория
git config --local --list
- Список глобальной конфигурации
git config --global --list
- Список конфигураций системы
git config --system --list
С помощью приведенной выше команды, если вы обнаружите, что не настроили информацию о пользователе, настройте ее дальше👇
- Настроить имя пользователя
git config --global user.name "your name"
- Настройка почтовых ящиков пользователей
git config --global user.email "youremail@github.com"
управление филиалом
- Посмотреть местный филиал
git branch
- Просмотр удаленных веток
git branch -r
- Просмотр локальных и удаленных филиалов
git branch -a
- Из текущей ветки перейти в другую ветку
git checkout <branch-name>
// 举个例子
git checkout feature/tiantian
- Создать и переключиться на новую ветку
git checkout -b <branch-name>
// 举个例子👇
git checkout -b feature/tiantian
- удалить ветку
git branch -d <branch-name>
// 举个例子👇
git branch -d feature/tiantian
- Текущая ветка объединяется с указанной веткой
git merge <branch-name>
// 举个例子👇
git merge feature/tiantian
- Посмотрите, какие ветки были объединены в текущую ветку
git branch --merged
- Посмотрите, какие ветки не объединены в текущую ветку
git branch --no-merged
- Просмотр информации о последнем объекте фиксации каждой ветки
git branch -v
- удалить удаленную ветку
git push origin -d <branch-name>
- переименовать ветку
git branch -m <oldbranch-name> <newbranch-name>
- Потяните удаленную ветку и создайте локальную ветку
git checkout -b 本地分支名x origin/远程分支名x
// 另外一种方式,也可以完成这个操作。
git fetch origin <branch-name>:<local-branch-name>
// fetch这个指令的话,后续会梳理
получить инструкцию
Я так понимаю обновить содержимое удаленного склада на локальный.В процессе разработки проекта с сестрой недавно эта команда используется.
Конкретно вот так 👇
получить рекомендуемое письмо
git fetch origin <branch-name>:<local-branch-name>
- Вообще говоря, этот источник — это имя удаленного хоста, которое обычно является источником по умолчанию.
-
branch-name
ветка, из которой вы хотите извлечь -
local-branch-name
Вообще говоря, вы создаете новую ветку локально и загружаете код исходной ветки в локальную ветку.
Например👇
git fetch origin feature/template_excellent:feature/template_layout
// 你的工作目录下,就会有feature/template_layout
// 一般情况下,我们需要做的就是在这个分支上开发新需求
// 完成代码后,我们需要做的就是上传我们的分支
Другие способы написать выборку
- Все обновления удаленного хоста извлекаются локально.
git fetch <远程主机名>
- В этом случае извлекаются все обновления ветки.Если вы хотите получить конкретную ветку, вы можете указать имя ветки👇
git fetch <远程主机名> <分支名>
- Когда вы хотите получить содержимое ветки обратно в локальную ветку, выполните следующие действия:
git fetch origin :<local-branch-name>
// 等价于👇
git fetch origin master:<local-branch-name>
причудливая отмена
-
отозватьРабочее пространствоИсправлять
- git checkout --
-
Отмена файла промежуточной области (не перезаписывает рабочую область)
- git reset HEAD
-
откат версии
-
git reset --(soft | mixed | hard ) < HEAD ~(num) > |
-
инструкция Объем --hard Отменить все, включая HEAD, индекс, рабочее дерево --mixed Резервная часть, включая HEAD, индекс --soft откат только HEAD
-
Запрос состояния
- Посмотреть статус
- git status
- Посмотреть историю операций
- git reflog
- Просмотр журналов
- git log
запрос документа
- Показать структуру команды Git
- git help (--help)
- Показывает полный список схем команд Git.
- git help -a
- Показать руководство по конкретным командам
- git help
постановка файла
-
Добавить изменения в тайник
- git stash save -a "сообщение"
-
удалить постановку
- git stash drop <stash@{ID}>
-
Посмотреть список тайников
- git stash list
-
удалить весь кеш
- git stash clear
-
отменить изменения
- git stash pop <stash@{ID}>
Сравнение различий
- Сравнение рабочей области и кэша
- git diff
- Сравните область кеша с содержимым последней фиксации локальной библиотеки.
- git diff -- cached
- Сравните содержимое рабочей области и последний коммит локального
- git diff HEAD
- Сравните различия между двумя коммитами
- git diff
именование ветвей
главная ветвь
- Основная ветвь, ветвь, используемая для развертывания рабочей среды для обеспечения стабильности.
- Основная ветвь обычно объединяется с ветвями разработки и исправления, и код не может быть изменен напрямую ни при каких обстоятельствах.
развивать филиал
- develop — это ветка разработки, которая обычно сохраняет последний завершенный код с исправленными ошибками.
- При разработке новых функций ветки функций создаются на основе ветки разработки.
функциональная ветвь
- Чтобы разработать новые функции, в основном создайте ветку функций на основе develop.
- Именование веток: ветки функций, начинающиеся с feature/, правила именования: feature/user_module, feature/cart_module.
**У меня есть глубокое понимание этого.Я в Netease, и ментор научил меня этому.**Обычно строится фиче-ветка.
выпускная ветвь
- релиз является веткой перед запуском, и на этапе тестирования релиза код ветки релиза будет использоваться в качестве эталонного теста.
ветвь исправлений
- Именование веток: hotfix/ начинается с ветки исправления, и ее правила именования аналогичны ветвям функций.
- Когда в сети возникает срочная проблема, ее необходимо вовремя исправить.Ветка master используется в качестве основы для создания ветки исправления.После завершения исправления ее необходимо объединить в ветку master и ветку разработки.
Для справки:дядя соломинка
Основная операция
Имея изложенное выше основное понимание, давайте посмотрим на общий процесс.
-
Создайте локальный репозиторий git init
git init
-
Свяжите локальные и удаленные репозитории
git remote add origin
URL-адрес псевдонима удаленного склада по умолчанию может бытьВы можете использовать https или ssh для создания нового
-
Проверить информацию о конфигурации
- git config --list
-
Имя пользователя и адрес электронной почты Git
git config --global user.name "yourname"
git config --global user.email "your_email"
-
Сгенерировать SSH-ключи
ssh-keygen -t rsa -C "сменить адрес электронной почты здесь"
В cd ~/.ssh есть файл с именем id_rsa.pub, скопируйте содержимое в мои SSHKEYs в библиотеке git.
-
Часто вижу информацию об удаленном складе
- git remote -v
-
Переименование удаленного репозитория
- git remote rename old new
-
отправить в кеш
- git add .Загрузить все в кеш
- git добавить указанный файл
-
Отправить в локальный репозиторий
- git commit -m 'some message'
-
Отправить в удаленный репозиторий
- git push :
-
Посмотреть ветку
- git branch
-
Создать новую ветку
- git branch
-
переключить ветку
- git checkout
-
Создайте ветку и переключитесь
- git checkout -b
-
удалить ветку
- git branch -d
-
удалить удаленную ветку
- git push -d
-
переключить ветку
- git checkout
игнорировать файл .gitignore
Роль этого файла заключается в том, чтобы игнорировать некоторые из них, которые не нужно включать в управление Git, и мы не хотим, чтобы они отображались в списке неотслеживаемых файлов.
Итак, давайте посмотрим, как настроить информацию о файле.
# 此行为注释 会被Git忽略
# 忽略 node_modules/ 目录下所有的文件
node_modules
# 忽略所有.vscode结尾的文件
.vscode
# 忽略所有.md结尾的文件
*.md
# 但README.md 除外
!README.md
# 会忽略 doc/something.txt 但不会忽略doc/images/arch.txt
doc/*.txt
# 忽略 doc/ 目录下所有扩展名为txt文件
doc/**/*.txt
Ссылаться на
- Для базовых операций с git достаточно одной статьи!
- Сводка общих операций Git
- Спецификация ветвления Git, которую вы должны знать
- Как изящно использовать Git
- Изящно зафиксируйте сообщение Git Commit Message
- Объясните разницу между git pull и git fetch.
- Вооружите свою кодовую базу за десять минут
- "Memo" 60+ стандартных командных строк Git
❤️ Всем спасибо
Если вы считаете этот контент полезным:
- Поставьте лайк и поддержите его, чтобы больше людей увидело этот контент
- Обратите внимание на публичный аккаунтИнтерфейс UpUp, регулярно публиковать хорошие статьи для вас.
- Если вы считаете, что это хорошо, вы также можете прочитать последние статьи TianTian (спасибо за вашу поддержку и поддержку 🌹🌹🌹):
- 48 маленьких картинок «Раз и навсегда» покажут вам красоту гибкой верстки.(690+👍)
- «Поиск вакансий и заполнение упущений» — мои читы на предварительном собеседовании 2020 года, чтобы сопровождать ваш осенний набор(460+👍)
- «Мяньцзин» Три раунда фейсбуков NetEase, которые вам могут понадобиться(320 + 👍)
- «Раз и навсегда» настроить webpack4 от поверхностного к глубокому(930+👍)
- «Поиск и заполнение пробелов» для консолидации вашей системы знаний HTTP(1010+👍)
- «Однажды и навсегда» отправит вам 21 высокочастотный рукописный вопрос JavaScript для интервью.(620+👍)
- «Найти недостатки и утечки наполнения» отправит вам 18 вопросов собеседования браузера(820+👍)
- «Поиск недостатков и устранение утечек» дает вам 54 вопроса для собеседования по JavaScript.(660+👍)