[PYTHON] L'explication la plus facile à comprendre au monde sur la création de LINE BOT (3) [Coopération avec un serveur avec Git]

introduction

Cette fois, nous synchroniserons les fichiers d'application créés localement (Mac) avec le distant (serveur). Utilisez Git pour synchroniser les fichiers de projet.

Gérez votre projet avec Git

J'ai remarqué que la gestion du code source de nos jours est devenue de plus en plus «Git». Certains peuvent dire que SubVersion a été utilisé.

Il y a essentiellement des avantages et des inconvénients à utiliser quoi que ce soit, mais à moins que vous ne fassiez des choses compliquées, Git n'est fondamentalement pas difficile, donc ici nous utiliserons Git pour gérer le code source. ..

Qu'est-ce que Git?

Je laisserai l'explication de Git à d'autres, mais je n'en écrirai que le fond.

En particulier, lorsqu'ils se développent seuls, les premiers en bénéficient souvent. Je ne peux pas penser à commencer à utiliser Git en échangeant des fichiers avec FTP un par un.

Cliquez ici pour un commentaire facile à comprendre sur Git ・ Introduction à Git que même les singes peuvent comprendre

C'est dans cet article de commentaire, mais lorsque ces dernières plusieurs personnes exploitent le même projet, cela ressemble à ceci.

Il est géré de manière centralisée dans un endroit appelé «référentiel distant» (pensez-y comme le cloud), et vous pouvez le cloner (le télécharger) sur votre PC local et commencer à travailler. Refléter les différences que vous avez modifiées dans le référentiel distant est appelé «Push», et refléter les modifications que d'autres ont apportées au référentiel distant dans votre référentiel local est appelé «Pull».

Fondamentalement, il s'agit de cela, donc je pense que c'est normal d'avoir une politique de se souvenir tout en l'utilisant.

Pousser le référentiel local (Mac) vers le référentiel distant (BitBucket)

Utilisez maintenant Git pour pousser le référentiel local (Mac) vers le référentiel distant (BitBucket).

Ici, nous utiliserons un service appelé BitBucket comme référentiel distant.

Le référentiel distant le plus célèbre pour Git est peut-être GitHub. Cependant, GitHub charge un référentiel privé (un référentiel qui est gardé privé pour les autres), alors utilisons BitBucket, qui a un référentiel privé gratuit. Comme il est souvent difficile de mettre en place la coopération entre BitBucket et local ou distant via SSH, je laisserai également l'explication ici, et je partirai de l'hypothèse que Git peut être utilisé localement et à distance.

Créer un référentiel distant (BitBucket)

Accédez à BitBucket (enregistrez-vous si vous n'avez pas enregistré de compte) et créez un nouveau référentiel. Vous pouvez créer un nouveau référentiel à partir du menu déroulant "Référentiels".

スクリーンショット 2016-11-12 14.10.28.png

Décidons le nom du référentiel et créons-le comme suit.

スクリーンショット 2016-11-12 14.12.25.png

Ceci termine la création du référentiel distant.

スクリーンショット 2016-11-12 14.14.51.png

Lier local et distant

Reportez-vous à «Je vais recommencer à zéro» sur cet écran pour lier le référentiel local et le référentiel distant. スクリーンショット 2016-11-12 14.33.57.png

Maintenant, travaillons localement (Mac). Avant de travailler, allez dans le répertoire ʻapi` créé (cela s'appelle le répertoire de travail).

Initialiser git

Tout d'abord, initialisez git dans le répertoire de travail.

Initialiser git


$ git init

Ensuite, bien que ce soit un répertoire caché, un répertoire appelé .git sera créé, et les informations sur git seront gérées ici.

Créer .gitignore

.gitignore est un fichier qui spécifie les extensions et les fichiers que git ne gère pas. Si cela n'est pas spécifié, tous les fichiers seront gérés par git et les petits fichiers temporaires provoqueront des conflits (souvent appelés conflits) dans le référentiel distant.

Bien sûr, il est difficile pour les débutants de dire quelle extension doit être omise du contrôle de git (je ne sais pas), mais c'est gitignore.io /) Vous dira tout.

スクリーンショット 2016-11-12 14.24.06.png

Entrez maintenant Python et Django pour générer un fichier .gitignore.

スクリーンショット 2016-11-12 14.24.58.png

Comme vous pouvez le voir, le fichier à écrire dans .gitignore apparaîtra, alors copiez-le et collez-le dans .gitignore.

.Édition de gitignore


$ vim .gitignore

J'ai édité .gitignore dans vim comme suit.

.gitignore



# Created by https://www.gitignore.io/api/python,django

### Python ###
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
*.egg-info/
.installed.cfg
*.egg

# PyInstaller
#  Usually these files are written by a python script from a template
#  before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*,cover
.hypothesis/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Jupyter Notebook
.ipynb_checkpoints

# pyenv
.python-version

# celery beat schedule file
celerybeat-schedule

# dotenv
.env

# virtualenv
.venv/
venv/
ENV/

# Spyder project settings
.spyderproject

# Rope project settings
.ropeproject


### Django ###
*.pyc
db.sqlite3
media

Si vous ne pouvez pas entrer ou enregistrer avec vim, veuillez copier et coller en suivant les 6 étapes suivantes.

    1. Sélectionnez et copiez tout le contenu généré par gitignore.io 2.$ vim .gitignore
    1. Appuyez sur ʻi` pour entrer en mode (vous verrez --INSERT - ci-dessous)
  1. Coller comme d'habitude avec command + v
  2. Appuyez sur «esc» pour quitter le mode d'entrée
  3. Tapez : wq pour enregistrer et quitter vim

Ceci termine les paramètres .gitignore.

Liaison avec la télécommande

Enfin, nommez le référentiel distant spécifié ʻorigin` et définissez la correspondance.

Liaison avec la télécommande


$ git remote add origin [email protected]:#{your_name}/api.git

Cette commande unique complète le mappage distant-local.

Transférez tout vers un référentiel distant

Tout d'abord, ne vous inquiétez pas des détails au début, poussez tout sauf ceux omis dans .gitignore.

Poussez tout vers la branche principale


$ git add .
$ git commit -m 'first commit'
$ git push origin master
Counting objects: 18, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (15/15), done.
Writing objects: 100% (18/18), 6.12 KiB | 0 bytes/s, done.
Total 18 (delta 1), reused 0 (delta 0)
To [email protected]:#{your_name}/api.git
 * [new branch]      master -> master

Vérifier avec BitBucket

Si vous accédez à la «source» dans le référentiel BitBucket, vous pouvez voir que les informations locales sont envoyées à distance et synchronisées. スクリーンショット 2016-11-12 19.51.07.png

Le push est maintenant terminé à distance.

Cloner du référentiel distant (BitBucket) vers le référentiel local (serveur)

Maintenant que j'ai synchronisé les fichiers que j'avais sur mon Mac avec le référentiel distant, je vais cloner (≒ télécharger) ces informations côté serveur. De plus, nous partirons du principe que la clé SSH avec BitBucket a déjà été enregistrée côté serveur.

Connectez-vous au serveur et accédez au répertoire que vous souhaitez cloner. Les commandes requises pour le clonage peuvent être obtenues auprès de BitBucket.

スクリーンショット 2016-11-12 14.46.51.png

Maintenant, la commande pour cloner peut être obtenue comme suit, donc copiez-la.

スクリーンショット 2016-11-12 14.48.33.png

Après cela, exécutez la commande copiée sur le serveur.

$ git clone [email protected]:#{your_name}/api.git

Le même fichier est maintenant créé sur le serveur et l'intégration avec le serveur est terminée.

prime

Nous vous attendons pour nous suivre!

Présentation du service N'hésitez pas à nous contacter si vous êtes intéressé par "Kikagaku", un service de tutorat individuel pour l'apprentissage automatique qui vous permet d'apprendre "mathématiques → programmation → applications Web" en une seule fois.

Recommended Posts

L'explication la plus facile à comprendre au monde sur la création de LINE BOT (3) [Coopération avec un serveur avec Git]
L'explication la plus simple au monde sur la création de LINE BOT (1) [Account preparation]
L'explication la plus simple au monde sur la création de LINE BOT (2) [Préparation de l'application Bot dans un environnement local avec Django de Python]
Comment créer un LINE BOT 004 interactif (répondre à la date de clôture d'une société cotée)
Comment créer un bot LINE à intelligence artificielle avec l'API de messagerie Flask + LINE
Comment créer un serveur HTTPS avec Go / Gin
Comment frapper le document de Magic Function (Line Magic)
[Python] Qu'est-ce qu'une tranche? Une explication facile à comprendre de son utilisation avec un exemple concret
Rendre le serveur SIP aussi concis que possible (au milieu de l'explication)
Je veux connaître la météo avec LINE bot avec Heroku + Python
Comment obtenir l'ID de Type2Tag NXP NTAG213 avec nfcpy
Comment faire une commande pour lire le fichier de paramètres avec pyramide
Comment surveiller l'état d'exécution de sqlldr avec la commande pv
Comment créer un bot slack
Supplément à l'explication de vscode
L'histoire de la création d'un robot LINE pour le petit-déjeuner d'une université de 100 yens avec Python
Les débutants en Python ont décidé de créer un bot LINE avec Flask (commentaire approximatif de Flask)
[Introduction à Python] Comment trier efficacement le contenu d'une liste avec le tri par liste
[Reconnaissance d'image] Comment lire le résultat de l'annotation automatique avec VoTT
J'ai essayé de créer un LINE BOT "Sakurai-san" avec API Gateway + Lambda
Comment mettre un numéro de ligne au début d'un fichier CSV
Comment vérifier la version de Django
Comment régler l'heure du serveur sur l'heure japonaise
Comment sensibiliser VS Code à l'environnement venv et à ses avantages
Connexion SSH au serveur cible à partir de Windows en un clic sur un raccourci
Liste de contrôle pour éviter de transformer les éléments de array of numpy avec for
Remarque: Comment obtenir le dernier jour du mois avec python (ajouté le premier jour du mois)
Comment faire un Raspberry Pi qui parle les tweets d'un utilisateur spécifié
Comment rendre la largeur de police du notebook jupyter mis dans pyenv égale
Facilitez la spécification de l'heure d'AWS CloudWatch Events avec CDK.
Comment obtenir une liste de fichiers dans le même répertoire avec python
J'ai essayé d'envoyer automatiquement la littérature du nouveau virus corona à LINE avec Python
[Introduction à Python] Comment obtenir l'index des données avec l'instruction for
Une nouvelle forme d'application qui fonctionne avec GitHub: Comment créer des applications GitHub
Comment télécharger avec Heroku, Flask, Python, Git (4)
Comment calculer la volatilité d'une marque
Connectez-vous à un serveur distant avec SSH
Comment trouver la zone du diagramme de Boronoi
Comment envoyer un message à LINE avec curl
Comment créer un dictionnaire avec une structure hiérarchique.
Comment essayer l'algorithme des amis d'amis avec pyfof
Comment spécifier des attributs avec Mock of Python
Comment implémenter "named_scope" de RubyOnRails avec Django
Comment mesurer la vitesse de la ligne depuis le terminal
Créer un bot LINE WORKS avec Amazon Lex
Comment entraîner Kaldi avec JUST Corpus
[Python] Résumé des fonctions eval / exec + Comment écrire une chaîne de caractères avec des sauts de ligne
J'ai essayé de faire quelque chose comme un chatbot avec le modèle Seq2Seq de TensorFlow
Comment identifier l'élément avec le plus petit nombre de caractères dans une liste Python?
Comment démarrer avec Visual Studio Online ~ La fin de l'ère de la construction d'environnement ~
Un mémo sur la façon de surmonter le problème difficile de la capture d'effets avec l'IA
Comment compter le nombre d'occurrences de chaque élément de la liste en Python avec poids
[Explication de la mise en œuvre] Comment utiliser la version japonaise de BERT dans Google Colaboratory (PyTorch)
Le 15e temps réel hors ligne, j'ai essayé de résoudre le problème de l'écriture avec python