linuxで作業した内容をGitHubにSSH接続してアップロードする6つの手順を解説

linuxで作業した内容をGitHubにSSH接続してアップロードする6つの手順を解説 プログラミング
困ったさん
困ったさん
Linuxで作業した内容をGitHub上にアップロードする方法ってある??

こんな疑問を解決します。

この記事を書いてる人

FUMIPEN blogを運営
本記事の内容

  • GitHubにssh接続
  • Linux上でGitHubのユーザー名、メールアドレスを登録
  • Linux上でGitで管理するプロジェクトフォルダの作成方法
  • Linux上で新規ファイルを作成してGit管理下へ置く方法
  • ステージングにあるファイルをローカルリポジトリに追加する方法
  • ローカルリポジトリの内容をリモートリポジトリに反映
  • Linux上で登録内容を変更したいときはどうする??
  • originとリモートホストの接続を解除したいときはどうする??

本記事では「Linux上での作業方法と、アップロード方法」について解説

この記事を読むことで、Linux上で作業した内容をGithubに自由に移すことも可能になります。

結論から話すと、

結論

  • .ssh/で公開鍵と秘密鍵を作成
  • git addでローカルからリモートリポジトリに持っていきたいファイルを設定
  • git Commitでローカルリポジトリへ追加する
  • git remote addでローカルからリモートリポジトリへのつなぎを用意
  • git pushでつなぎを経由してリモートリポジトリ(GitHub)へ送信完了
  • 登録内容を変更はgit config –global –editで編集
  • 接続を解除したいときはgit remote -Vで編集

Linuxの内容をGithubへアップロードする方法

GitHubのみで基本的にコードを書いて保存はせず、自分の作業環境で作業し、アップロードするのが基本となります。

そこで今回は自分の環境(ローカル環境)としてLinuxで作業したものをGitHubへアップロードする方法を手順を追って解説します。

アップロードするまでの手順

  • Linux上で公開鍵と秘密鍵のペアを作成
  • Linux上でGitHubのユーザー名、メールアドレスを登録
  • Linux上でGitで管理するプロジェクトフォルダの作成方法
  • Linux上で新規ファイルを作成してGit管理課へ置く方法
  • ステージングにあるファイルをローカルリポジトリに追加する方法
  • ローカルリポジトリの内容をリモートリポジトリに反映

一つづつ解説します。

もしLinuxの開発でモジモジしてる方にTeraTerm,Rlogin,PuTTY,windows Terminalおすすめ無料端末エミュレータはこれ!解説してます。

Linux上で公開鍵と秘密鍵のペアを作成

●ssh-keygen -t rsa -C <自分のGitHubに登録したメールアドレス>
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/fumipen/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/fumipen/.ssh/id_rsa.
Your public key has been saved in /Users/fumipen/.ssh/id_rsa.pub.
The key fingerprint is:
<自分の公開鍵の詳細> <自分の登録したメールアドレス>
The key's randomart image is:
+---[RSA 3072]----+
|   .     ..+o    |
|  . . . . oo.    |
|   . . +.o o.o   |
|    . E.*oo.=    |
|     * =S*oo     |
|    . B o B      |
|     o = * o     |
|      * o *.     |
|     o.o .o=++.  |
+----[SHA256]-----+
~/.ssh
 
公開鍵と秘密鍵の登録方法

  • ssh-keygen -t rsa -C <自分のGitHubに登録したメールアドレス>
  • Enter file in which to save the key ・・・はそのままEnter
  • Enter passphrase(empty for no passphrase)もそのままEnter
  • Enter same passphrase again もそのままEnter 

公開鍵と秘密鍵のペアを作成することができました。

SSH接続??公開鍵秘密鍵??
困ったさん
困ったさん
ふみペン
ふみペン
簡単に解説するとSSH接続はリモートで接続できる方法で、公開鍵と秘密鍵は安全に接続するための手段だね!

詳しくはこの本に書いてあるので、是非これからLinuxを業務で扱う方は参考にしてください。

それではGitHubに登録していきましょう。

GitHubの公開鍵と秘密鍵が登録できる場所へアクセス

GitHub 公開鍵 秘密鍵 登録方法

まずはログイン画面右上のアイコンからSettingをクリックしてください。

GitHub 公開鍵 秘密鍵 登録方法 GitHub 公開鍵 秘密鍵 登録方法
公開鍵の登録方法

  • SSH and GPG keysをクリック
  • 右上のNew SSH keyをクリック
  • Linux上でcat id_rsa.pubコマンドで表示される文を全てコピー&ペースト

これでLinuxとGitHubの接続できる準備が整いました。

ふみペン
ふみペン
ここからLinuxとGitHubをつなげていくよ!
●ssh -T git@github.com
Hi fumipen! You've successfully authenticated, but GitHub does not provide shell access. 

ここでHi〇〇と〇〇のところに自分のGitHubで登録しているユーザー名がちゃんと出るようになればSSH接続の完了です。

それでは先に進めていきます。

Linux上でGitHubのユーザー名、メールアドレスを登録

●git config --global use.name <自分の登録したいユーザーネーム>
●git config --global user.email <メールアドレス>

この二つをまずは自分のLinux上に登録しましょう。

もし今登録した内容を確認したいのなら

●git config --global --list

で自分が登録した内容を確認することができます。

●git config --global --list 
use.name=<自分が登録したユーザーネーム>
user.email=<メールアドレス>

もし間違えて登録してしまった場合

これって一度間違えた内容を編集できないの??
困ったさん
困ったさん
ふみペン
ふみペン
やり方はあるから安心していいよ!!

まずはgit config –global –editコマンドを入力してください。

 ~/Desktop/test
●git config --global --edit     
 [use]
          name = <自分が登録したユーザーネーム>
 [user]
          email = <メールアドレス>

useとuseのメールアドレスが編集できる状態で開くので、ここで自分が登録した内容を編集することができます。

Linux上でGitで管理するプロジェクトフォルダを作成

●cd test 
~/Desktop/test
●ls
~/Desktop/test
●git init
Initialized empty Git repository in /Users/fumipen/Desktop/test/.git/
~/Desktop/test
●ls -a                 
.    ..   .git 

上記が一連の流れになりますが、

管理するプロジェクトフォルダ作成方法

  • フォルダ(test)を作成
  • testに入る
  • test内でgit init コマンドでリポジトリの初期化を行う
  • test内に.gitというフォルダが作成される

これが流れになります。

git initコマンドでリポジトリが作成されてリモートリポジトリつまりGitHubに送る準備を行うことができます。

ふみペン
ふみペン
ここでの肝はgit initをうまく使うことだね!!

Linux上で新規ファイルを作成してGit管理下へ置く方法

●touch hello.txt    【hello.txtファイルを作成】
~/Desktop/test
●ls                【lsで確かにhello.txtファイルが作成されてることを確認】     
hello.txt
~/Desktop/test
●git status         【git statusで今ステータス状況(何を送るか)を確認】    
On branch master

No commits yet

Untracked files:
  (use "git add ..." to include in what will be committed)
	hello.txt

nothing added to commit but untracked files present (use "git add" to track)
~/Desktop/test
●git add hello.txt  【git add コマンドで先ほど作成したhello.txtファイルをadd】
~/Desktop/test
●git status         【もう一度確認すると確かにnew fileにhello.txtがaddされている】
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached ..." to unstage)
	new file:   hello.txt

ここの流れは次の通りになります。

新規ファイル(hello.txt)を作成してGit管理下へ置く方法

  • hello.txtファイルを作成
  • lsで確かにファイルが作成されていることを確認
  • git statusで今のステータス状況を確認
  • git addコマンドで先ほど作成したhello.txtファイルをadd
  • もう一度確認すると確かにnewfileにhello.txtがaddされてることを確認

流れです。

ここでの肝はgit addコマンドでうまくステージングに追加することです。

ふみペン
ふみペン
追加方法についての詳細は後ほど解説します!

ステージングにあるファイルをローカルリポジトリに追加する方法

●ls         
hello.txt
~/Desktop/test
●git commit -m 'first commit'     
[master (root-commit) 7d0dc08] first commit
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 hello.txt 
ステージングにあるファイルをローカルリポジトリに移す方法

  • lsで一度自分が送りたいファイルが中にあるのか確認
  • git commit でローカルリポジトリに移す。ここで-mでコメントをつけておくと便利

これでfirst commitというコメントを追加して送る方法ができました。

ふみペン
ふみペン
さて、長かったファイルを送信する手段もこれで最後だね!

ローカルリポジトリの内容をリモートリポジトリに反映

●git remote add origin git@github.com:fumipen/test.git 
     
●git remote -v        
origin	git@github.com:fumipen/test.git (fetch)
origin	git@github.com:fumipen/test.git (push) 
ローカルリポジトリの内容をリモートリポジトリに反映

  • git remote add origin <自分の送りたいSSHのURL>
  • git remote -vで正しく接続されているか確認
  • git push origin masterでプッシュして送信(originは適宜変更)
ふみペン
ふみペン
今回は最初ということでoriginという名前とGitHubのSSHのURLを紐づけたけど、ここはなんでもいいよ!
 ●git push origin master     
Warning: Permanently added the RSA host key for IP address '〇〇.〇〇.〇〇.〇〇' to the list of known hosts.
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 229 bytes | 229.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To github.com:fumipen/test.git
 * [new branch]      master -> master

このようにでたら無事にLinuxからGitHubへと送信が完了しています。

GitHub  master ブランチ
ふみペン
ふみペン
確かにhello.txtファイルとコメント及びmasterブランチとして届いてるね!
masterブランチ??
困ったさん
困ったさん

ブランチとは、履歴の流れを分岐して記録していくためのものです。分岐したブランチは他のブランチの影響を受けないため、同じリポジトリ中で複数の変更を同時に進めていくことができます。

引用:サル先生のGit入門:ブランチとは

なので、git pushの時に何としてpushするのかでこれらの種類が変わるということです。

詳しくはのちの記事で解説しますね。

GitHubに接続する時に出てくる疑問

ここで私が遭遇した壁を皆さんにお伝えしておきます。

役に立つかわかりませんがお役に立てたら幸いです。

先ほどのoriginとリモートホストとの接続を立ちたいときはどうすればいい?

●git remote -v    
origin	git@github.com:fumipen/test.git (fetch)
origin	git@github.com:fumipen/test.git (push)

~/Desktop/test
●git remote remove origin  

~/Desktop/test
●git remote -v     
リモートホストとの接続解除方法

  • git remote -vで何が現在繋がっているかを確認
  • git remote remove <接続を断ちたい名前を入力>
  • git remote -vで接続が断つことができてるか確認

ここは私自身今現在送りたいフォルダが何と繋がっていて、それを解除したいと思った時に役立ったので共有します。

Linux上での登録名やメールアドレスを変更したいときはどうすればいい??

これは先ほども共有しましたが、今一度ここに載せておきます。

まずはgit config –global –editコマンドを入力してください。

 ~/Desktop/test
●git config --global --edit     
 [use]
          name = <自分が登録したユーザーネーム>
 [user]
          email = <メールアドレス>

useとuseのメールアドレスが編集できる状態で開くので、ここで自分が登録した内容を編集することができます。

GitHubを有効に活用してどこでも開発できる環境をチームで共有しよう

まとめますと、

LinuxからGitHubに接続して開発を行う方法

  • .ssh/で公開鍵と秘密鍵を作成
  • git addでローカルからリモートリポジトリに持っていきたいファイルを設定
  • git Commitでローカルリポジトリへ追加する
  • git remote addでローカルからリモートリポジトリへのつなぎを用意
  • git pushでつなぎを経由してリモートリポジトリ(GitHub)へ送信完了

また疑問に思った点もまとめますと

もしかしたらつまづくポイント

  • 登録内容を変更はgit config –global –editで編集
  • 接続を解除したいときはgit remote -Vで編集

GitHubでは開発環境をリモートからローカルへ直接引っ張ってくることもできます。

もしかしたら会社ではこちらの意味で使ってる方も多いかもしれませんね。

次回はGitHub上からLinuxの開発環境へ引っ張ってくる方法について解説します。

私は現在Linux環境でPythonを構築して機械学習を行ったりしてます。

おすすめのTeraTerm,Rlogin,PuTTY,windows Terminalおすすめ無料端末エミュレータはこれ!を解説もしてますので、是非興味ある方はご覧ください。

最後まで見ていただきありがとうございました。