Два одиннадцать на дому учатся использовать Git

база данных внешний интерфейс сервер Git

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

svn, svn — типичная централизованная система контроля версий. Git, с другой стороны, является распределенной системой контроля версий.

Что такое централизованная система контроля версий

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

Что такое распределенная система контроля версий

В распределенной системе управления версиями компьютер каждого разработчика может использоваться как полная библиотека версий, и разработчики могут вносить изменения в библиотеку кода независимо от того, подключены они к Интернету или нет.Обычно сервер необходим для облегчения обмена всеми пользователями. .Code, все разработчики синхронизируют свою полную кодовую базу с сервером для обмена кодом.

gitsvn

Преимущества распределенных систем контроля версий

Преимущество распределенной системы контроля версий в том, что разработчики могут работать как с Интернетом, так и без него, внося изменения в свой полный репозиторий. В то же время у каждого разработчика есть эта полная библиотека версий, так что не нужно беспокоиться оцентральный серверЧто-то пошло не так, и все не могли работать. Более того, такие операции, как переключение веток git, основаны на перемещении позиции указателя, поэтому производительность высокая.

Раздел репозитория Git.

После инициализации репозитория git в локальной папке репозиторий имеет три раздела: рабочая область, индексная область и база данных.

gitArea

  1. Рабочее пространство: это область, в которой мы фактически работаем, то есть, когда мы разрабатываем, все, что мы видим, это код рабочего пространства, и любая модификация является прямым изменением рабочего пространства.
  2. База данных: это наш полный репозиторий, в котором хранятся наши окончательные изменения в коде, а также конечный результат кода.
  3. Область индекса: между рабочей областью и базой данных находится область индекса, которая представляет собой область, подготовленную для отправки в базу данных.

основная операция

Хранилище инициализации:

git init

Добавьте модификацию рабочей области в индексную область:

git add <filename>

Добавить измененный файл в индексную область можно «*», либо выполнить пакетную операцию с помощью подстановочного знака «.»:

git add file1 file2 file3 // 将指定的多个修改文件添加到索引区
git add *.txt // 将所有txt文件添加到索引区
git add . // 将所有的文件添加到索引区

git commit -m "本次提交的信息"

статус и журнал

$ git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean

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

git log

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

ветви

Суть ветки в Git — это указатель на последний коммит, а создание разных веток — это фактически создание нескольких указателей. Каждая ветка не влияет друг на друга и может развиваться параллельно, отвечая за разные задачи.

branch

Создайте новую ветку, например новую ветку с именем test:

git branch test

Переключите ветки и войдите в тестовую ветку:

git checkout test

Объедините ветку и объедините изменения тестовой ветки с основной веткой:

// 在master分支中
git merge test

Удалить филиал теста

git branch -d test

удаленный склад

Клонирование и ассоциация

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

git clone [repository url]

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

// 将指定地址的远程数据库关联,并命名为origin
git remote add origin [repository url]

Отобразить список удаленных баз данных, таких как:

$ git remote
origin

Push-контент и изменения веток

git push -u origin master 

-uЕго роль заключается в записи информации об удаленном адресе складских операций и так далее. Так, например, когда мы используем такие команды, как git pull back plus, вам не нужно переходить по адресу . Если нет, первое представление может быть опущено.-u.

После удаления локальной ветки синхронизируйте удаленную базу данных и удалите эту ветку в удаленной базе данных:

git push origin --delete <分支名称>

Хотите также отправить теги в удаленную базу данных:

git push origin --tags

Вытягивание содержимого и модификация веток

Извлеките последние изменения из ветки удаленного репозитория и объедините их с вашим собственным кодом:

git pull origin <远程仓库分支名称>

По умолчанию git pull не будет синхронизировать удаленные ветки удаленной базы данных, плюс параметр-pУдаленные ветки в удаленной базе данных можно удалить локально:

git pull -p

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

git fetch <远程数据库名称> <分支>

Это извлечет удаленные изменения в локальную, и вы сможете просмотреть их локально, переключившись на «удаленную базу данных/ветку», например, чтобы просмотреть модификации удаленной главной ветки:

git checkout origin/master

Все ветки можно посмотреть через команду git branch и параметр teammate:

// 查看本地和远程所有分支
$ git branch -a
* master
  remotes/origin/master
  
// 查看远程所有分支
$ git branch -r
  origin/master

Работа на этикетке

tag1
Существует два типа тегов:

  1. Легкие этикетки
  2. Теги аннотаций

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

git tag <标签名称>

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

git tag -a <标签名称> -m "备注信息"
// 比如:
git tag -a v1.0 -m "first version"

$ git tag
v1.0

Добавить параметры-nЗаметки можно даже увидеть вместе:

$ git tag -n
v1.0            first version

Удалить филиал:

git tag -d <分支名称>

Использование тегов в реальной разработке

Мы хотим увидеть содержимое определенного тега:

git checkout <标签名称>

git branch <分支名称> <标签名称>

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

Иногда мы хотим перезаписать предыдущую фиксацию текущей фиксацией, чтобы избежать избыточной истории коммитов в истории коммитов, мы можем использовать--amendпараметр:

git add <文件名>
git commit --amend -m "新的commit备注"

пройти через

git log

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

Отменить последний коммит (откат версии)

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

git reset --hard HEAD~
// ~的数量表示取消提交的数量,如果要取消强两次提交的话可以改为 HEAD~~

可以通过查看文件内容或查看git日志的方式来查看是否成功取消了修改。 здесьhardСмысл режима таков: будет затронута индексная область и работа, а соответствующий контент будет откатан. Кроме того, есть и другие режимы:

  1. --soft: только указатель головы возвращается в соответствующую позицию, и содержимое области индекса и рабочей зоны остаются без изменений.
  2. --hard: отправить изменения как в расположение HEAD, так и в индексную область и содержимое рабочей области.

Восстановление версии

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

git reset --hard <对应的 commit -id>

Если мы не совершаем удостоверение личности, соответствующее запомнить, как это сделать? Вы можете просмотреть историю команды по инструкции Git Refrold.

$ git reflog
9154108 (tag: v1.1, tag: v1.0, origin/master, master) HEAD@{12}: pull: Fast-forward
1319463 HEAD@{13}: checkout: moving from 9154108ced0df7f7c220bc5440af008aff330e92 to master
9154108 (tag: v1.1, tag: v1.0, origin/master, master) HEAD@{14}: checkout: moving from master to origin/master
1319463 HEAD@{15}: commit (initial): first commit

Таким образом, вы можете увидеть идентификатор (первый столбец), соответствующий каждой операции фиксации, и тогда мы сможем перейти к какой версии.

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

Обезьяны могут понять обучение git

Команда Ruan Yifeng git