Играете в Git из командной строки, нужно помнить эти команды?

внешний интерфейс Git

Эта статья участвовала в "Проект «Звезда раскопок»”, чтобы выиграть творческий подарочный пакет и бросить вызов творческим поощрительным деньгам.

Введение в Git

чтоGit ? GitЯвляется самой передовой в мире распределенной системой контроля версий! ! ! Какой? Что ты имеешь в виду? Не беда, если вы не понимаете, просто нужно помнить, что это очень важно, очень важно и нужны навыки программистов.

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

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

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

image.png

На картинке четыре пробела, даGitСуть рабочего процесса такова:

  • Удаленный:Удаленный репозиторий, т.е. вы находитесь вGithubилиGiteeСклады проекта, созданные на других платформах;
  • Репозиторий:Локальный склад, можно подумать, что он генерируется после того, как мы вытащим проект.gitпапка;
  • Показатель:Staging area, по сути это просто файл, т.е..gitвнутри папкиindexфайл, содержащий список файлов для отправки в локальный репозиторий;
  • Рабочее пространство:Рабочее место, где вы находитесьVS codeилиWebStormКод, который пишет компилятор.

Руководство по основным командам Git

1. Клонировать/вытащить проект

Вытягивание проекта — это первый шаг к тому, чтобы начать перемещать кирпичи.Как правило, после создания удаленного склада для проекта вы можете получить.gitАдрес в конце, или этот адрес вам может дать коллега компании, и тогда вы сможете найти справочник по желанию, черезGit BashВведите следующую команду, чтобы вытащить проект на локальный диск.

git clone 你的项目地址.git

2. Просмотр удаленной ветки

Как правило, после вытягивания проекта мы находимся вmaster/mainОсновная ветка, не спешите писать код, сначала проверьте удаленную ветку проекта и посмотрите, нужно ли вам переключаться на ветку для конкретной разработки по мере необходимости.

git branch -r

3. Посмотреть локальную ветку

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

git branch

4. Создайте локальную ветку

git branch dev(分支名称, 可以随便取)

С помощью приведенной выше команды вы создадите локальную ветку, конечно, ветка создается на основе вашей текущей ветки. Вы можете набрать команду еще раз, чтобы проверить состояние удаленной ветки и локальной ветки (постучать еще, команда скоро запомнится -^〇^-).

5. Удалить локальную ветку

Не влияет на удаленные филиалы склада

git branch -d dev

6. Переключить ветки

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

git checkout dev

Операции создания и переключения также можно выполнять вместе:git checkout -b xxx(создайте и переключитесь на эту локальную ветку)

7. Опубликовать локальную ветку в удаленной ветке

Когда мы создаем локальную ветку, не спешите начинать программировать в это время, нам нужно опубликовать ветку на удаленном складе, пусть на удаленном складе тоже будет ветка, и связать ее с вашей локальной веткой, что удобно для мы действуем напрямуюgit pullилиgit pushработать.

git push origin dev

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

8. Установите связь между локальным филиалом и удаленным филиалом

Нет необходимости связывать локальную ветку с удаленной веткой, но ее можно использовать напрямую в будущем.git pullилиgit pushПолучить или зафиксировать код для этой ветки без указания ветки.

git push --set-upstream origin dev

Если вы не связываете связь между двумя ветвями и используете ее принудительно, вы можете столкнуться с ситуацией, показанной на рисунке, что обычно означает, что вы можете указать целевую ветвь или связать ситуацию с ветвью перед операцией. (GitОперативная информация по-прежнему очень дружелюбна)

image.png

9. Добавьте файлы в промежуточную область

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

  • Добавьте файл в рабочей области в промежуточную область, напримерsrc/main.jsфайл, затемgit add src/main.js
git add xxx(文件路径)
# 多个
git add xxx(文件路径) xxx(文件路径) xxx(文件路径) ...
  • Добавьте все файлы, измененные в рабочей области, в тестовую область.
git add .

Здесь вы можете подумать, зачем сначала добавлять его в промежуточную область, а затем отправлять на удаленный склад после локального склада? если вы изSVNОбернувшись, вы можете быть немного не в курсе области временного хранения.Здесь задействовано значение области временного хранения.В Интернете есть много объяснений, поэтому я не буду здесь слишком много объяснять.
Но понять можно просто.Если вы разрабатываете функцию добавления пользователя и функцию добавления статьи во время разработки, то обе функции разрабатываются одновременно, потому что они не влияют друг на друга и полностью независимы, вы хотите разделить их на две представления и написать их отдельно.commitИнформация указывает на то, что область временного хранения может быть использована в это время.Сначала добавьте функцию добавления пользователя в область временного хранения, а затемcommitПерейдите на местный склад, а затем отправьте функцию добавления статьи и, наконец, вместеpushв удаленный репозиторий.

10. Удалите файл из промежуточной области.

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

  • Удалить файл в рабочей области из промежуточной области
git rm --cached xxx(文件路径)
  • Освободите зону временного хранения, зона временного хранения по существу.gitв каталогеindexфайла, удалите этот файл, то область временного хранения считается опустошенной.
rm .git/index

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

11. Просмотр состояния рабочей области и промежуточной области

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

git status

На рисунке ниже мы можем просмотреть все измененные файлы.Зеленые файлы были добавлены в область временного хранения, а красные файлы не были добавлены в область временного хранения, и каждый файл имеет соответствующие инструкции по эксплуатации. это новый файлnew file, модифицированный файлmodified, который удаляетсяdeleted, если это новый файл, который не был добавлен в промежуточную область, это не так.

image.png

12. Отправьте файл промежуточной области на локальное хранилище.

git commit -m "说明信息"

С помощью приведенной выше команды мы отправим файлы из промежуточной области на локальный склад, мы можем передатьgit statusЕще раз проверьте зону подготовки.

image.png

GitСоветы действительно очень дружелюбны.

13. Просмотр записей отправки

Эта команда может отображать отправленные записи.

git log

image.png

После входа в список журнала фиксации вы можете нажатьqпокидать.

Приведенная выше команда отобразит всеcommitзаписи, если вы хотите отобразить самые последние записи, вы можете передатьgit log -n(n为数字, 可以随意指定)Команда завершена.

14. Отправьте файл локального хранилища на удаленный склад.

git push

Предпосылкой выполнения этой команды является выполнение шага 7.

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

image.png

15. Вытащите новый код

git pull

Эта команда также устанавливается перед шагом 7.

Расширенное руководство по командам Git

Помните приведенные выше 15 команд,GitЕжедневные основные операции в основном удовлетворены.Конечно, различные редакторы теперь мощные и в основном интегрированы.GitВизуальная работа без командной строки вообще не проблема.

Но разве это не здорово, когда программисты используют командную строку? Ни за что другое, просто установить 13 тоже можно, хахаха. Ниже мы поговорим о некоторых командах, хотя они и не часто используются, но также очень важны.

1. Просмотрите глобальную конфигурацию Git

git config --global -l
# or
git config --global --list

2. Просмотрите глобальное имя пользователя и адрес электронной почты.

git config --global user.name
git config --global user.email

3. Установите глобальное имя пользователя и адрес электронной почты.

git config --global user.name "你自己的用户名"
git config --global user.email "你自己的邮箱"

4. Просмотр имени пользователя и электронной почты локального проекта

Для выполнения в текущем корневом каталоге проекта.

git config user.name
git config user.email

5. Установите имя пользователя и адрес электронной почты локального проекта.

Для выполнения в текущем корневом каталоге проекта.

git config user.name "你自己的用户名"
git config user.email "你自己的邮箱"

6. Удалить ветку удаленного склада

Эта команда является очень опасной операцией для некоторых незащищенных ветвей и должна выполняться с осторожностью.

git push --delete origin dev(分支名称)

7. Измените имя филиала удаленного склада.

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

# 修改本地分支名称
git branch -m 旧分支名称 新分支名称
# 删除远程分支
git push --delete origin 分支名称
# 发布新分支
git push origin 新分支名称
# 重新建立关联
git push --set-upstream origin 新分支名称

8. Объединить ветки

Слияние веток — относительно распространенная операция. Когда вы разрабатываете новые функции в ветке, много раз эти ветки в конечном итоге будут объединены в одну.master/mainВ этой основной ветке эта основная ветка имеет код всех веток, она стабильна и работает в производственной среде, поэтому, прежде чем вы решите объединить ветку с основной веткой, убедитесь, что код этой ветки правильный.

# 切换到稳定的目标分支
git checkout master
# 更新最新代码,防止本地仓库对应分支代码不够新而出现问题
git pull
# 合并分支到本地仓库
git merge dev
# 发布合并后的新代码到远程分支
git push

После слияния вы можете пройтиgit logпосмотреть, есть ли родственныеcommitЗаписывать.

9. Объедините ветку A напрямую с веткой B

git merge xxx(A分支名称) xxx(B分支名称)

10. Объединить один коммит

Иногда мы просто хотим объединить определенныеcommitДля удовлетворения некоторых конкретных потребностей это также может быть сделано.

# 切换到稳定的目标分支
git checkout master
# 合并某个commit到本地仓库
git cherry-pick xxx(commitId)
# 发布合并后的新代码到远程分支
git push

commitIdЯвляетсяcommitуникальный идентификатор, вы можете передатьgit logчтобы найти его, это длинная неповторяющаяся строка символов.

image.png

Конечно, вы также можете перейти кGithubилиGiteeНайдите его в соответствующем проекте платформы.

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

image.png

Конфликт кода - очень болезненная вещь. Не только конфликты возникают при слиянии, но более частый сценарий - это когда несколько человек разрабатывают вместе. Поскольку два человека отвечают за один и тот же проект, велика вероятность того, что они будут изменены на те же файлы, тот же код, который создает конфликт. Обычно на этот разGitЭто предотвратит вашу подачу и позволит вам исправиться первым.В это время вам нужно быть очень внимательным и осторожным, потому что если вы будете неосторожны, то очень велика вероятность убить код вашего партнера или ваш собственный код, что повлечет за собой серьезные последствия. (Не спрашивайте меня, откуда я знаю, это все уроки крови ︶︿︶)

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

image.png

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

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

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

# 添加更改进入暂存区
git add .
# 提交暂存区到本地仓库
git commit -m ""
# 提交本地仓库commt到远程仓库
git push

11. Отменить последний коммит

git reset --soft HEAD^

Эта команда используется для отмены самой последней в локальном репозитории.commit, он вернется в область временного хранения после отзыва.git logможет просматриватьcommitЗаписи будут уменьшены, но это не повлияет на удаленные репозитории.

Есть еще один аналогичный отзывcommitCommand, но это более опасно. Контент после отзыва удаляется напрямую, и он не вернется в зону временного хранения. Используйте его с осторожностью! ! !

git reset --hard HEAD^

12. Просмотр кратких записей отправки

Эта команда позволяет просматривать необходимую информацию более интуитивно.

git log --pretty=oneline

image.png

На самом деле эта информация хранится в.gitпапка, в.git\logs\refs\headsВсе ветки записываются подcommitномер версии.

13. Резервное копирование содержимого рабочей области

Это волшебная команда, которая очень полезна, особенно когда много веток проекта, сценарий ее использования примерно таков: когда вы разрабатываете функцию в ветке А, вы временно получаете срочное требование и вам нужно переключиться на разработку в ветке Б. , что мне делать с кодом, который был изменен в ветке А в это время? тогда вы можете использоватьstashВремя сделать резервную копию кода.

git stash

После выполнения команды текущая рабочая область вернется к самой последней.commitсостояние и сохраните измененный код вGitТаким образом, вы можете сначала переключиться на ветку B для разработки, а затем вернуться к ветке A после завершения разработки функции ветки B. Используйте следующую команду, чтобы получить исходный измененный код и продолжить разработку функции ветки A.

git stash pop

Это не очень приятно! ! !

14. Просмотрите список резервных копий или очистите список резервных копий

  • Показать все резервные копии в стеке Git
git stash list
  • Очистить стек Git
git stash clear

15. Просмотр адреса удаленного склада

git remote -v

image.png

16. Изменить адрес удаленного склада

git remote set-url origin xxx(新仓库地址)

Есть еще два способа изменить адрес удаленного репозитория.

# 删除项目的远程仓库地址
git remote rm origin
# 添加项目的远程仓库地址
git remote add origin xxx(新仓库地址)

или изменить файл конфигурации

17. Сравните все различия между рабочей и промежуточной областью

git diff

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

image.png

Сравните разницу между одним файлом в рабочей области и промежуточной областью:

git diff xxx(文件地址)

18. Восстановите файлы в рабочей области, чтобы они соответствовали промежуточной области.

git checkout xxx(文件地址)
# 批量还原
git checkout xxx(文件地址) xxx(文件地址) xxx(文件地址) ...

Суммировать

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



На этом статья закончена, посыпаем цветами и цветами.

image.png

Я надеюсь, что эта статья будет полезна для вас. Если у вас есть какие-либо вопросы, я с нетерпением жду вашего сообщения.
Как обычно, лайк + комментарий = ты это знаешь, избранное = ты опытный.