#python #shell #github
Вопрос:
У меня есть проект на python, и я пытаюсь написать скрипт для переноса папки проекта в git
Какие шаги следует предпринять
Я пытался https://www.freecodecamp.org/news/automate-project-github-setup-mac/ но, кажется, не могу это исправить
Комментарии:
1. Вы должны объяснить свою конкретную проблему и что вы пробовали
2. Моя проблема состоит в том, чтобы создать скрипт для переноса фактического проекта на github
3. В чем была проблема, с которой вы столкнулись в сценарии этого урока?
4. Кстати, я бы с осторожностью относился к автоматизации отправки материалов на github. Большинство приличных редакторов имеют интеграцию с git, но вы не можете автоматизировать фиксацию: вам придется делать это вручную, иначе это довольно бесполезно. То же самое толкает/тянет/сливается/разветвляется.
git push
это не так уж сложно сделать, но любое автоматизированное решение будет либо псевдонимомgit push
, либо должно быть до смешного сложным для обработки всех крайних случаев, когда у вас есть несовместимые изменения
Ответ №1:
Во-первых, вам нужно создать репозиторий в пользовательском интерфейсе Github. После создания репозитория Github предоставит вам URL-адрес этого репозитория. Предполагая, что у вас настроены ключи SSH, вы сможете использовать этот URL-адрес для отправки своих коммитов следующим образом:
В каталоге проекта:
git init # initialize a repo; create a .git folder with git internal data
git add file1.py file2.sh file3.js README.md # choose which files you'd like to upload
git commit -m "Add project files" # create a commit
git remote add origin "github repo url"
git push # upload commit to Github
Автоматизировать этот «первый толчок» для нескольких проектов относительно легко.
Просто будьте осторожны с тем, какие файлы вы собираетесь добавить. Git не предназначен для версирования двоичных файлов, таких как изображения, PDF-файлы и т. Д.
Комментарии:
1. Могу ли я написать то же самое в скрипте оболочки
2. Конечно. Это все команды bash. Но вам нужно будет создать репозитории с тем же именем, что и папки, в которых они находятся, если вы собираетесь использовать имя папки для параметризации URL-адреса репозитория Github.
3. Совет: если все ваши репозитории имеют один и тот же язык (например, python), добавьте стандартный python gitignore во все эти папки. Тогда вы сможете запускать
git add .gitignore ; git add .
вместо ручного выбора файлов.
Ответ №2:
Я использую этот код. Предполагая, что у вас настроены ключи SSH.
import os
from datetime import datetime
current_time = datetime.now().strftime("%H:%M:%S")
os.system("git init")
os.system("git remote rm origin")
os.system("git remote add origin git@github.com:user/repository.git")
os.system('git config --global user.email "email@example.com"')
os.system('git config --global user.name "username"')
os.system("git rm -r --cached .")
os.system("git add .")
git_commit_with_time = f'git commit -m "update:{current_time}"'
os.system(git_commit_with_time)
os.system("git push -f --set-upstream origin master")
Вы также можете настроить его в соответствии с вашими пожеланиями.
Вы можете использовать что — то другое вместо current_time
того, что указано в фиксации.
Я использую это в течение многих месяцев, и я нашел это лучшим способом. Потому что с тех пор, как я автоматизировал задачу, у меня до сих пор не было никаких проблем.