Проблемы, возникающие при работе Git с VSCode и файлами на веб-хосте - PullRequest
0 голосов
/ 13 ноября 2018

До сих пор я всегда использовал FileZilla для передачи своих локальных файлов на мой хост для смены сайта, над которым я работаю. Я хочу изменить это и научиться делать гуд! Таким образом, в идеале идеальная ситуация - иметь возможность работать в VSCode над каталогом, который зеркально отражается от моего веб-хоста, и оттуда иметь возможность вносить изменения локально, а затем фиксировать и изменять файлы на моем веб-хосте, когда я хочу - это имеет быть возможно верно?

Мне удалось использовать Git Bash для подключения к моему хосту и файлам с использованием ssh. Я создал оба init --bare и init, так как я не уверен, какой из них использовать, но у меня там есть папка .git. Я также могу использовать Bash и команду git status, чтобы увидеть все файлы, ожидающие подтверждения (?).

Как я понимаю, я должен инициализировать репозиторий, а затем зафиксировать их, чтобы "отслеживать" эти файлы и чтобы они были видны в VSCode для работы, верно?

Но при попытке git commit появляется следующее сообщение об ошибке.

 Waiting for your editor to close the file... code --wait: code: command not found.

Это указывает на то, что относительный путь к vscode и / или git не работает, но это так. Когда я запускаю bash, я могу использовать, например, code --help и git config --global -e, чтобы запустить окно VSCode. Так что мой git config --global core.editor "code --wait", вероятно, работает как надо.

Хотя ПОСЛЕ того, как я подключился к своему веб-хосту по ssh, ни одна из этих команд больше не работает. Почему это?

А также, я сейчас на правильном пути, размышляя о том, как установить эту "связь" между VSCode, git и моим веб-хостом (one.com)?

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

Заранее спасибо

1 Ответ

0 голосов
/ 14 ноября 2018

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

Проще говоря, Git - это система контроля версий для отслеживания изменений в файлах с течением времени.Вы создаете или редактируете свои файлы, git add их в «промежуточную область», а затем git commit их с сообщением фиксации.Если вы редактируете файлы после их фиксации, то git может обнаруживать изменения в файлах, и вы можете добавлять и фиксировать их снова или отклонять их в зависимости от того, что вы хотите.Однако самая важная часть для понимания - это то, что эти изменения локальные на данный момент.Если вы хотите поделиться ими с кем-либо (или сделать так, чтобы другая система отключила их), вам потребуется установить удаленный репозиторий.

Для этого и нужен Github / GitLab.Войдите / создайте учетную запись на любом сайте (gitLab предоставляет бесплатные частные репозитории) и создайте репозиторий с соответствующим именем.Затем, после создания удаленного репо, следуйте инструкциям, чтобы добавить его в качестве «удаленного» в локальное репо, затем git push внесите изменения в это удаленное репо.Теперь на вашем сервере вы будете git clone удаленное репо, и это внесет ваши изменения.С этого момента, если вы отправляете новые изменения в удаленное хранилище, вы можете отправить изменения на сервер, выполнив git pull.Это очень простой и базовый подход к развертыванию кода на сервере, и есть более сложные способы сделать это, но я оставлю это простым в этом ответе.

Git полностью отделен от VSCode (хотя VSCode имеет некоторыеинтеграция с git и плагины).Я бы не рекомендовал бы изменить core.editor на VSCode.Этот параметр управляет редактором, который используется для создания сообщений.Загрузка VSCode занимает слишком много времени для этого ... Я рекомендую вам использовать Vim по умолчанию или использовать nano.Или, в большинстве случаев, укажите сообщение при фиксации: git commit -m "added foobar".

Итак, репозиторий git, который находится на вашем сервере (тот, который вы инициировали с --bare), является ненужным и должен бытьвместо этого создается git clone ing из удаленного репо.Надеюсь, это имеет смысл!

...