Правильная поза для открытия Git

Git
Правильная поза для открытия Git

@Git-заметки

create by db on 2018-12-25 12:10:36
Recently revised in 2019-1-4 15:08:40

Привет друзья, если вы считаете, что эта статья неплохая, пожалуйста, поставьте лайк или звездочку, ваши лайки и звездочки - это движущая сила для меня, чтобы двигаться вперед!Адрес GitHub

  Ознакомьтесь с большим количеством информации в Интернете и объедините свой собственный учебный опыт, чтобы записать эту учебную заметку Git, чтобы записать свой учебный опыт. Теперь поделитесь им с вами для справки.

 Как новичок во фронтенде, это первая статья, которой я поделился с Nuggets, и я надеюсь начать с нее 2019 год. Если есть какие-либо недостатки, пожалуйста, дайте мне больше советов, спасибо.

предисловие

использованная литература:

контроль версий

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

В соответствии с текущей средой разработки проекта проект часто имеет несколько разработчиков для разработки обслуживания, это означает, что им нужно работать в одном и том же файле проекта, нам нужно изменить текстовый код и проектный код управления записями, эти изменения представляют собой репозиторий для Репозиторий управления является контроль версий.

  Инструмент, который может управлять программным кодом или отслеживать его, часто называют системой контроля версий (VCS). Сейчас существует много популярных инструментов контроля версий.Конечно, далее мы поговорим о Git, который называют первым братом в мире VCS.Это мощная, гибкая и недорогая VCS, которая может превратить совместную разработку в весело .

Рождение Git

На самом деле, до git на рынке уже было много VCS, таких как босс мира VCS: SVN (сейчас на рынке еще небольшая доля). Тогда зачем мне создавать новый инструмент для git?

 Это, конечно, должно начаться с его основателя Линуса Торвальдса, человека, которым восхищаются тысячи людей в мире технологий! Для управления разработкой ядра Linux необходима надежная и заслуживающая доверия система контроля версий.Однако CVS и SVN, которые Линус всегда ненавидел, являются централизованными системами контроля версий, а Git — распределенной системой контроля версий. между распределенной системой контроля версий и распределенной системой контроля версий?

Централизованный против распределенного

Позвольте мне рассказать о централизованной системе контроля версий, репозиторий централизованно хранится на центральном сервере, в то время как рабочее время используется на вашем компьютере, он должен сначала получить последнюю версию с центрального сервера, а затем начать работать, это сделал live, то его задание на центральный сервер. Центральный сервер как библиотека, книгу, которую хочешь переделать, надо взять сначала из библиотеки, а потом вернуться домой, чтобы переодеться самому, переодеться, потом обратно в библиотеку.

Самая большая проблема централизованной системы контроля версий заключается в том, что для работы она должна быть подключена к Интернету.Если в локальной сети все в порядке, пропускная способность достаточно велика, а скорость достаточно высока, но если скорость сети медленный в интернете, может понадобиться отправить файл размером 10M.5 минут, этого недостаточно, чтобы задушить людей.

  В чем разница между распределенной системой контроля версий и централизованной системой контроля версий? Во-первых, распределенная система контроля версий вообще не имеет «центрального сервера», у каждого компьютера есть полная библиотека версий, так что при работе не нужно подключаться к интернету, потому что библиотека версий находится на вашем компьютере. собственный компьютер. . Поскольку у каждого на компьютере есть полный репозиторий, как могут сотрудничать несколько человек? Например, вы изменили файл А на своем компьютере, а ваш коллега также изменил на своем компьютере файл А. В это время вам двоим нужно только передать свои изменения друг другу, и вы можете видеть файлы друг друга. , отредактировано.

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

Правильный способ открыть git

Чтобы использовать Git, первым шагом, конечно же, является установка Git.

  • Установите Git в Linux
  • Установите Git в Windows
  • Установите Git на Mac

Для получения подробной информации, пожалуйста, перейдитеОфициальный сайт Ляо Сюэфэна

текст

Git рабочий процесс

Первая картинка:

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

  • Рабочая область : Рабочая область
  • Индекс/Этап: промежуточная область
  • Репозиторий: складская зона (или местный склад)
  • Удаленный: удаленный склад

Рабочее пространство

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

 Обычная разработка заключается в копировании ветки в удаленный репозиторий и разработке на основе этой ветки. В процессе разработки находится эксплуатация рабочего пространства.

Зона временного хранения (Индекс/Этап)

  Индексный файл в каталоге git будет записан в область временного храненияgit addИнформация о добавленном файле (имя файла, размер...), сущность файла не сохраняется. можно использоватьgit statusПроверьте состояние промежуточной области. Промежуточная область отмечает, каким контентом управляет Git в вашей текущей рабочей области.

 Когда вы выполняете функцию и вам нужно отправить ее в удаленный репозиторий, первым шагом является передача изменений черезgit addЗафиксируйте в промежуточной области, управляемой Git.

Местный склад (Репозиторий)

  Сохраняет зафиксированные версии объекта, которые старше, чем содержимое рабочей области и промежуточной области.

git commitПосле синхронизации дерева каталогов индекса с локальным хранилищем удобно перейти к следующему шагуgit pushСинхронизируйте локальные репозитории с удаленными репозиториями.

Удаленный склад (Удаленный)

  Содержимое удаленного репозитория может быть изменено локальным репозиторием в рамках отношений сотрудничества, распределенных в нескольких местах, поэтому оно может быть синхронизировано с локальным репозиторием, а может и не быть. нам нужно перед фиксациейgit pullЗаставьте локальный репозиторий вытащить код.

HEAD

  Прежде чем осваивать конкретные команды, изучите HEAD.

 HEAD, который всегда указывает на последнюю точку фиксации текущей ветки. Ветка, в которой вы находитесь, изменяется, или создается новая точка фиксации, и HEAD соответственно изменится.

Нет картинок, нет правды!

резюме

  1. Любой объект создается и модифицируется в рабочей области;
  2. Любые изменения из области в индекс начинаются под контролем версий;
  3. Только отправив модификацию на локальный склад, модификация может оставить след на складе;
  4. Поделитесь локальными изменениями с соавторами, вам нужно отправить изменения в удаленный репозиторий

Общие команды Git

Продолжай в том же духе!

1. Новая кодовая база

  • Создайте новый репозиторий git в текущем новом каталоге.

$ git init

  • Создайте новый каталог и инициализируйте его как первую базу кода.

$ git init [project-name]

  • Скачать проект и всю его историю кода

$ git clone [url]

2. Конфигурация

Файл настроек Git — .gitconfig, который может находиться в домашнем каталоге пользователя (глобальная конфигурация) или в каталоге проекта (конфигурация проекта).

  1. Показать текущую конфигурацию Git

$git config --list

  1. Отредактируйте файл конфигурации Git.

$ git config -e [--global]

  1. Установить информацию о пользователе при отправке кода

$ git config [--global] user.name "[name]"

$ git config [--global] user.email "[email address]"

3. Добавить/удалить файлы

  • Добавить указанный файл в промежуточную область

$ git add [file1] [file2] ...

  • Добавить файлы указанного типа (отправлять пакетами с использованием подстановочных знаков) в промежуточную область

$ git add *.html

  • Добавить указанный каталог в промежуточную область

$ git add [dir]

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

$ git add .

  • Добавьте файлы, которые были добавлены и изменены (все файлы ниже корневого пути Git) в промежуточную область.
  • (Отправить измененные и удаленные файлы, за исключением новых файлов)

$ git add -u

  • Добавьте все изменения (все файлы ниже корневого пути Git) во временную область.
  • (включая отправку новых файлов, измененных файлов и удаленных файлов)

$ git add --all

$ git add -A // сокращение

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

$ git add -p

  • Удалите файл рабочей области и поместите это удаление в промежуточную область.

$ git rm [file1] [file2] ...

  • Остановить отслеживание указанного файла, но файл останется в рабочей области

$ git rm -cached [file]

  • Переименуйте файл и поместите его в промежуточную область.

$ git mv [file-origin] [file-rename]

  • Переименуйте папку и загрузите это изменение

git mv -f oldfolder newfolder

git add -u newfolder (опция -u обновит отслеживаемые файлы и папки)

git commit -m "changed the foldername whaddup"

  • удалите папку и загрузите это изменение

$ git rm -r --cached [dir]

$ git commit -m 'удаленный каталог'

$ git push -u origin master

4. Отправка кода

  • Отправить промежуточную зону в складскую зону

$ git commit -m [message]

  • Отправить указанный файл из промежуточной области в область склада

$ git commit [file1] [file2] ... -m [message]

  • Отправьте изменения в рабочей области с момента последней фиксации непосредственно в область склада.

$ git commit -a

  • Отображать всю информацию о различиях при отправке

$ git commit -v

  • Используйте новый коммит для замены предыдущего коммита. Если в коде нет изменений, он будет использоваться для перезаписи информации коммита предыдущего коммита.

$ git commit --amend -m [message]

  • Повторить последнюю фиксацию и включить новые изменения в указанный файл

$ git commit -amend [file1] [file2]...

5. Филиалы

  • Список всех местных филиалов

$git branch

  • Список всех удаленных филиалов

git branch -r

  • Список всех локальных и удаленных филиалов

$ git branch -a

  • Создайте новую ветку, но оставайтесь в текущей ветке

$ git branch [branch-name]

  • Создайте новую ветку и переключитесь на эту ветку

$ git branch -b [branch-name]

  • Создайте новую ветку, указывающую на указанный коммит

$ git branch [branch] [commit]

  • Создайте новую ветку и установите отношения отслеживания с указанной удаленной веткой.

$ git branch --track [branch] [remote-branch]

  • Переключитесь на указанную ветку и обновите рабочую область

$ git checkout [branch-name]

  • переключиться на предыдущую ветку

$ git checkout -

  • Установите отношения отслеживания между существующей ветвью и указанной удаленной ветвью.

$ git branch --set-up-tream [branch] [remote-branch]

  • Объединить указанную ветку с текущей веткой

$ git merge [branch]

  • Выберите фиксацию для слияния с текущей веткой

$ git cherry-pick [commit]

  • удалить ветку

$ git branch -d [branch-name]

  • удалить удаленную ветку

$ git push origin --delete [branch-name]

$ git branch -dr [remote/branch]

6. Этикетка

  • перечислить все теги

$ git tag

  • Создать новый тег в текущем коммите

$ git tag [tag]

  • Создать новый тег в указанной фиксации

$ git tag [tag] [commit]

  • удалить локальный тег

$ git tag -d [tag]

  • удалить удаленный тег

$ git push origin :refs/tags/[tagName]

  • Просмотр информации тега

$ git show [tag]

  • +Отправить указанный тег

$ git push [remote] [tag]

  • отправить все теги

$ git push [remote] --tages

  • Создайте новую ветку, указывающую на тег

$ git checkout -b [branch] [tag]

7. Просмотр информации

  • Показать файлы с изменениями

$ git status

  • Показать историю версий текущей ветки

$ git log

  • Отображение истории фиксации и файлов, которые изменились для каждой фиксации

$ git log [tag] HEAD --grep feature

  • Отображает все изменения после фиксации, чье «Описание фиксации» должно соответствовать критериям поиска.

$ git log [tag] HEAD --grop feature

  • Отображает историю версий файла, включая переименованный файл.

$ git log --follow [file]

$ git whatchanged [file]

  • Показать последние 5 коммитов

$ git log -5 --pretty --oneline

  • Показать всех пользователей, которые представили, отсортированных по количеству представлений

$ git shortlog -sn

  • Отображает, кто изменил указанный файл и когда

$ git blame [file]

  • Показать различия в коде между промежуточной и рабочей областью

$ git diff

  • Показать разницу между промежуточной областью и последней фиксацией

$ git diff -cached [file]

  • Показать различия между рабочей областью и последней фиксацией текущей ветки

$ git diff HEAD

  • Показать различия между двумя коммитами

$ git diff [first-btanch]...[second-branch]

  • Отображение данных элемента и изменений содержимого для фиксации

$ git show [commit]

  • Отображает содержимое файла при фиксации

$ git show [commit]:[filename]

  • Показать несколько последних коммитов текущей ветки

$ git reflog

  • Извлеките код из локального мастера, чтобы обновить текущую ветку: ветка обычно является мастером

$ git rebase [branch]

Восемь, удаленный филиал

  • Обновить удаленный репозиторий

$ git remote update

  • Показать все удаленные склады

$ git remote -v

  • Отображение информации об удаленном репозитории

$ git remote show [remote]

  • Добавьте новый удаленный репозиторий и назовите его

$ git remote add [shortname] [url]

  • Получить изменения из удаленного репо и объединить с локальной веткой

$ git push [remote] [branch]

  • Загрузить локальную ветку в удаленный репозиторий

$ git push [remote] [branch]

  • Принудительно отправить текущую ветку в удаленный репозиторий

$ git push [remote] --force

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

git push [remote] --all

9. Отмена

  • Восстановить указанный файл из промежуточной области в рабочую область

$ git checkout [commit] [file]

  • Восстановить указанный файл коммита в промежуточной и рабочей области

$ git chechout .

  • Сбросить указанный файл в промежуточной области, что соответствует последнему коммиту, но рабочая область остается неизменной

$ git reset [file]

  • Сбросьте промежуточную область и рабочее пространство, чтобы они соответствовали последнему коммиту.

$ git reset --hard

  • Сбросить указатель текущей ветки на указанный коммит и сбросить промежуточную область, но рабочая область останется неизменной

$ git reset [commit]

  • Сбросьте HEAD текущей ветки на указанный коммит и сбросьте промежуточную и рабочую области, чтобы они соответствовали указанному коммиту.

$git reset --hard [commit]

  • Сбросить текущий HEAD на указанный коммит, но оставить без изменений промежуточную и рабочую области.

$ git reset --keep [commit]

  • Создать новый коммит, который используется для отзыва указанного коммита.Изменения последнего компенсируются первым и применяются к текущей ветке

$ git revert [commit]

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

$ git stash

$ git stash pop

10. Другие

  • Создайте готовый к выпуску архив

$ git archive

версия шаттла

Опять таки:Версия, на которую указывает HEAD, является текущей версией!

вернуться в прошлое

Для Git вернуться в прошлое проще, чем положить слона в холодильник, в два шага:

  1. Если вам нужно переключить версии, первое, что нужно сделать, это проверить, какие версии доступны!

    • Показать журналы коммитов от самого последнего до самого дальнего

    $ git log

    • Если вы чувствуете ослепление, вы можете выбрать однострочный дисплей

    $ git log --pretty=oneline

  2. Видетьcommit fcef4ce4280229e2d4a9c914677f6e94e3539edeВы закончили? Это наш commit_id, адрес, по которому нужно перейти. Конечно, нам не нужно использовать такой большой период, просто возьмите пятерку.

    Теперь давайте начнем трансфер времени!

    $ git reset --hard commit_id

назад в будущее

Возвращение в будущее также делится на два этапа:

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

    • Посмотреть историю команд

    $ git reflog

  2. Видеть989d9ce HEAD@{……}: commit:……Вы закончили? Выберите желаемое будущее и вперед!

    $ git reset --hard commit_id

Создайте проект, используя Git в локальном процессе

  1. $ makdir ~/hello-world//Создаем проект hello-world
  2. $ cd ~/hello-world//Открываем этот проект
  3. $ git init//Инициализация
  4. $ touch README
  5. $ git add README// Обновляем файл README
  6. $ git commit -m 'first commit'//Отправить обновление и прокомментировать "первый коммит"
  7. $ git remote add origin git@github.com:dedsf/hello-world.git//Подключаемся к удаленному проекту github
  8. $ git push -u origin master// Обновляем локальный проект в проект github

GitHub

Что такое Гитхаб

 github — это платформа для размещения кода на основе git. Платные пользователи могут создавать частные репозитории. Наши обычные бесплатные пользователи могут использовать только общедоступные репозитории, то есть код должен быть общедоступным.

Сам Git может полностью реализовать контроль версий, но все его содержимое и записи версий могут быть сохранены только на локальном компьютере.Если вы хотите одновременно сохранить содержимое файла и записи версий на удаленном компьютере, вам нужно использовать его в сочетании. с Гитхаб. используемые сцены:

  • Нет GitHub: сохранять файлы эпох в локальной папке .git
  • Имеет GitHub: поддерживает эпохи в локальной папке .git, а также размещает эпохи в удаленных репозиториях.

Порекомендуйте забавное и простое для понимания введение в GitHub, написанное девушкой из гуманитарных наук, нажмите здесь:Как использовать Гитхаб?

Что мы можем сделать с GitHub

 Мы всегда использовали GitHub как бесплатный удаленный репозиторий.Если это личный проект с открытым исходным кодом, нет проблем разместить его на GitHub. На самом деле, GitHub также является сообществом для совместной работы с открытым исходным кодом.Через GitHub вы можете не только позволить другим участвовать в ваших проектах с открытым исходным кодом, но и в чужих проектах с открытым исходным кодом.

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

  Но на GitHub, используя чрезвычайно мощные функции клонирования и ветвления Git, широкая публика впервые может действительно свободно участвовать в различных проектах с открытым исходным кодом.

 Как принять участие в проекте с открытым исходным кодом?

Например, популярный проект начальной загрузки, это очень мощная структура CSS, вы можете получить доступ к его домашней странице проекта.https://github.com/twbs/bootstrap, нажмите «Разветвить», чтобы клонировать загрузочный репозиторий под своей учетной записью, а затем клонируйте из своей учетной записи:

clone git@github.com:michaelliao/bootstrap.git

  Обязательно клонируйте репозиторий из своей учетной записи, чтобы вы могли вносить изменения. Если из авторской корзины бутстрапаit@github.com:twbs/bootstrap.gitКлонируйте, потому что без разрешений вы не сможете вносить изменения.

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

  • Если вы хотите, чтобы официальный репозиторий начальной загрузки принял ваши изменения, вы можете сделать запрос на вытягивание на GitHub. Конечно, неизвестно, примет ли другая сторона ваш запрос на вытягивание или нет.

  • Если у вас нет возможности модифицировать бутстрап, но вы хотите попробовать пул-реквест, то склад Fork Teacher Liao Xuefenghttps://github.com/michaelliao/learngit, создайте текстовый файл your-github-id.txt, напишите свой собственный опыт изучения Git, а затем отправьте мне запрос на включение, и я приму его в соответствии со своим настроением.

резюме

  • На GitHub вы можете разветвить любой репозиторий с открытым исходным кодом;

  • У вас есть права на чтение и запись для склада после Fork;

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

Суммировать

 Долгий путь. Я надеюсь, что Git и GitHub помогут нам зафиксировать каждый след и развиваться на каждом этапе пути. Поделиться с тобой.

  Желаю вам всего наилучшего в 2019 году!

Постскриптум: Привет друзья, если вы считаете, что статья неплохая, не забудьте поставить лайк или звездочку.Ваши лайки и звездочки - это мотивация для меня писать больше и насыщеннее статей!Адрес GitHub

知识共享许可协议
dbбиблиотека документацииЗависит отdbиспользоватьCreative Commons Attribution-NonCommercial-ShareAlike 4.0 Международная лицензияЛицензия.
на основеgithub.com/danygitgitСоздание работ выше.
Права на использование, отличные от разрешенных в настоящем Лицензионном соглашении, могут быть получены отCreative Commons.org/licenses/не…получено в.