Published Date : 2019年10月10日2:08

Githubのアカウントの作り方とリポジトリ操作と大きいファイルの扱いかた
How to create a Github account, manage the repository and handle large files


This blog has an English translation




AWSの無料期間が終わったので、AWSに上げたアプリケーションと、ついでにHerokuのも消して、ソースコードをGithubに上げました。

My AWS Free Tier is over. So, I'm going to delete the AWS app and the Heroku app. We decided to evacuate the source code to Github.



つまり今回の記事の目的は、過去にナビバーに上げたアプリを消してソースコードだけGithubに避難したことのお知らせです。

In other words, the purpose of this post is to let you know that we've removed apps from the Navibar and moved only the source code to Github.



それと今回の場合、容量が大きく、普通のGitの使い方だとアップロードできないファイルが存在したので、その忘備録、

Also, in this case, there were some files that were too big (Chainer's learning models) to upload with normal Git usage, so I would like to write a memo about that.



それに伴いGithubとGitコマンドの基本的な使い方を忘れていたので、その復習DESU。

And I forgot the basics of using Github and the Git commands, so review them.



ちなみにDjangoに組み込まれたアプリはそのままナビバーに残ってまあす。

By the way, apps built into Django will remain in Navi Bar.


全体の流れ
overall flow

1

Githubにアカウントを作る。

Create an account on Github.

2

レポジトリを作る。

Create a repository.

3

SSH接続できるようにする。

Enable SSH connectivity.

4

git lfsを使って大きいファイルをアップロードできるようにする。

Allow large files to be uploaded using git lfs.

5

おまけで、ブランチを切ってプルリクエストを出してみる。

As a bonus, I will create a new brunch with git and make a pull request.



Githubにアカウントを作る。
Create an account on Github.


https://github.com/joinに入り、アカウントを作ってくだちぃ。

Go to https://github.com/join and create an account.




Responsive image


メールでのアップデータのお知らせやチーム開発するかは、必要無ければチェックを外そう。

If you don't need it, you can uncheck whether you want to send updates via email or team development.



Responsive image


CAPTCHAパズルを解く。

complete the CAPTCHA puzzule.



Responsive image



Responsive image


無料で使いたいならFree planをチョイス。

If you want to use it for free, choose Free plan.





Responsive image


適当にアンケートに答えるYO

Please answer the questionnaire appropriately.



Responsive image




Responsive image


送られてきたEmailに記載されているURLをクリック。

Click the URL in the email you received.

gmail


Responsive image


[Verify email address]ボタンを押して完成。

Press the [Verify email address] button to finish.



Responsive image




レポジトリを作る。
Create a repository.


まずレポジトリを作ってね

Make a repository first.



Responsive image


適当にリポジトリ名を入力。

Enter an appropriate repository name.



Responsive image


オプションだけど、このリポジトリの説明文も書いてね。

It is optional, but please write a description of this repository.

公に公開するか、自分だけのものにするか決めてね。

Decide whether you want to make it public or private.



Responsive image


既にあるリポジトリのインポートをする場合はチェックボックスの欄をスキップ。

skip this step if you are importing an existing repository.

[Create repository] を押せば無事リポジトリは作れるよ。

hit the [Create repository] button.



Responsive image


次回からリポジトリを作る場合は、いずれも画像の通り。

The next time you want to create a repository, you can do so as shown in the image.

ダッシュボードのNewボタンから作る。

From the New button on the dashboard.



Responsive image


右上にあるプラスボタンから作る。

It's made from the plus button on the top right.



Responsive image




SSH接続できるようにする。
Enable SSH connectivity.


続いてSSH接続に挑戦。

Then try SSH connection.

右上のアイコンボタンの設定からSSHキーを登録する。

Register an SSH key from the icon button settings at the top right.



Responsive image




Responsive image




Responsive image


一旦作業を中止して、ターミナルからSSHキーを作成する。

Stop and create an SSH key from the terminal.

ターミナルかコマンドプロンプトを開いて、このコマンドを打ち込む。

Open a terminal or command prompt, Type this command.



ssh-keygen -t rsa

保管する場所とパスワードを入力するように言われるので、設定したいならする、しないならそのままEnterを押していく。

You'll be asked to enter the storage location and password, so if you want to set it up, just press Enter.



Responsive image




Responsive image


成功したらこうなる。

If it succeeds, it will be like this.



Responsive image


SSHキーを表示する。

Display SSH keys.

保存した場所を指定して以下のコマンドを打つ。

Specify the saved location and enter the following command.



cat ~/.ssh/id_rsa.pub

表示された大量の英数字をコピーする。(ssh-rsaも含む)

Copy a large number of alphanumeric characters (Also includes ssh-rsa) from the displayed.



Responsive image


先程のGithubのSSHキー登録ページに戻り、貼り付ける。

Back to Github's SSH key registration page and paste.



Responsive image


登録し終わったら、正常にSSH接続できるかテストする。

Once registered, test for a successful SSH connection.

以下のコマンドを実行

Enter the following command.

ssh -T git@github.com


Responsive image


パスワードを入力する。(設定していなければそのまま)

Enter the password. (Leave it as it is if it is not set.)



Responsive image


成功すれば以下のように、アカウント名と成功した旨が表示される。

If successful, you will see your account name and a success message.



Responsive image




git lfsを使って大きいファイルをアップロードできるようにする。
Allow large files to be uploaded using git lfs.


適当に作業用フォルダを作る。

Make a suitable working folder.



Responsive image


Githubページに戻り、さっき作ったリポジトリをクリック。

Go back to the Github page and click on the repository you just created.



Responsive image


SSHに切り替えたら、取り敢えずREADME.mdだけ作ってプッシュしてみる。

If you switch to SSH, just create README.md and push it.



Responsive image




Responsive image




Responsive image


成功したら、GithubのレポジトリにREADME.mdがアップロードされているのが確認できる。

if successful, you can see that README.md has been uploaded to the Github repository.



Responsive image


試しに巨大なファイルを(今回は200MB)アップロードしてみる。

Try uploading a huge file.(200 MB this time)



Responsive image


git add best_model.npz
git commit -m "I'll give you a big file."
git push -u orgin master


Responsive image


エラーが起こります。Gitでの一つのファイルのアップロードの容量は100MBが限界なようです。

error occurs. 100MB seems to be the limit for uploading a file in Git.



説明文通りに、git lfsをインストールします。Macならbrew、Windowsならexeファイルでインストールします。

Install git lfs as described. On Mac, install it as brew, and on Windows, install it as exe file.



mac
brew install git-lfs
windows

git-lfs.github.com [Download]



インストールしたら、一旦コミットを取り消します。

Once installed, cancel the commit.



コミットしていなければ必要ないです。

It is not necessary if you have not committed it.

git reset --soft HEAD^


git lfsを対応させる。

install git lfs

git lfs install


git lfsでやり直す。

Try again with git lfs.

git lfs track best_model.npz
git add .gitattributes
git add best_model.npz
git commit -m "I give you a huge file all over again."
git push origin master


Responsive image




Responsive image


もしエラーが再度起こるなら、コミットを消してやり直してくだちぃ。

If the error occurs again, delete the commit and try again.



それと100MB超えのファイルが複数あるなら、一個ずつaddしてcommitしないとエラーになる確率が上がります。

Also, if there are several files larger than 100 MB, if you don't add them one by one and commit, the probability of an error will increase.



おまけで、ブランチを切ってプルリクエストを出してみる。
As a bonus, I will create a new brunch with git and make a pull request.


リポジトリを管理しているのが一人なら必要ないですが、共同作業の基本シュミレーションとしてブランチを生やし、プルリクを出してみましょう。

You don't need one person to manage the repository, but as a basic simulation of collaboration, let's create new branch and a pull request.



リポジトリを他の開発者になったつもりでクローンしてみましょう。

Try cloning the repository as if you were another developer.



Responsive image


GithubページのClone or Downloadボタンを押して、Use HTTPSのURLをコピーしてくだちぃ。

Press the [Clone or Download] button on the Github page, and copy the [Use HTTPS] url



Responsive image


適当に作業用フォルダを作ります。

Create a working floder.



Responsive image


先程コピーしたURLを以下のコマンドの後に貼り付けます。

Paste the URL you copied earlier after the following command.

cd your_working_folder
git clone [URL]


Responsive image


リポジトリが作業用フォルダ内にクローンされます。

The repository is cloned into the working folder.



作業用のブランチを作りましょう。

Let's make a branch for work.

git checkout -b eraser

ブランチ名は何でもいいですが、feature/yournameみたいなのが良いっぽいっす。

It doesn't matter what the branch name is, but something like feature/yourname looks good.



Responsive image


消し去る者は堂々と学習モデルを消してみた。

It seems that the eraser will openly remove the learning model.



Responsive image


そして、堂々とaddしてcommitした。

Then, He boldly added and committed.

git add .
git commit -m "I am eraser, Be hold"


Responsive image


どうやら無謀にも管理者にプルリクを出すようだ。

Apparently, he is recklessly sending a pull request to the administrator.

git push origin eraser


Responsive image


Manager:"プルリクだ...はいはい。OK,OK。"

Manager:"It seems Pull request. All right. Okay. no problem."



Responsive image




Responsive image




Responsive image




Responsive image




Responsive image


どうやら管理者は連日の徹夜作業で頭が朦朧としているようだ。

Apparantly, the manager is groggy after working all night.



Responsive image



。。。。。。




Responsive image




以上です。悪しからず。

That's all.




See You Next Page!