5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Git】Git+GitLabでホストマシン(Windows)と仮想マシン(Ubuntu)でコードを共有する

Last updated at Posted at 2018-08-16

はじめに

今回はホストマシンの「Windows」と仮想マシンの「Ubuntu」とのコード共有のために「Git」導入してみようと思い、また、今後新たに構築するときもすぐ思い出せるように覚え書き用に書いてみます。
ローカル環境で動く仮想マシンなので、直接共有する方法(フォルダ/ファイル受け渡しなど)もありましたが、以前より「Git」を使いたかったこともあり、今回導入を行いました。
また、ホスティングサービスを利用したかった為、無料でPrivateリポジトリが作成できる「GitLab」を使用しています。

なお、ホストマシンのWindowsと仮想マシンのUbuntu共にGit 2.18.0が導入済みとなり、アカウントの登録は済んでいる状態となります。予めご了承願います。

環境

  • ホストマシンOS :Windows8.1 64bit
  • 仮想マシンOS :Ubuntu 18.04 LTS 64bit
    ※前述の通り、どちらもGit 2.18.0が導入済み

GitLabへの登録

以下のGitLab公式サイトにアクセスし、登録を行います。
GitLab

右上の「Sing in/Register」をクリック
SnapCrab_NoName_2018-8-15_11-51-51_No-00.png

「Register」のタブをクリック、
FullName、UserName、EMail、EMail confirmation、Passwordに必要な情報を入力、
「I Accept the Terms of Service and Privacy Policy」にチェック。
必要であれば「I'd like to receive updates via email about GitLab.」にチェックを入れます(GitLabの更新情報をEmailで受け取るか)。
SnapCrab_NoName_2018-8-15_11-57-36_No-00_edit.png
情報の入力が済んだら、「Register」をクリックします。

「EMail」に入力したメールアドレスに承認要求のメールが送られるので、
メール内の「Confirm your account」をクリックします。
SnapCrab_NoName_2018-8-15_12-0-17_No-00.png

ログイン画面で先ほど入力した「UserName」と「PassWord」でログイン。
SnapCrab_NoName_2018-8-15_12-1-15_No-00.png

Welcome to GitLabの画面が表示されれば、登録とログインは完了です!
SnapCrab_NoName_2018-8-15_12-1-43_No-00.png

GitLabを使用する

リポジトリ(プライベート)を作る

登録が完了したので早速リポジトリを作ります。
先ほど出てきたWelcome to GitLabの画面から「Create a Project」をクリックします。

「Project path」にはGitLabのアドレスとユーザー名を含んだアドレスが表示されます。編集はできません(でした)。
「Project name」に作成したいリポジトリの名前(今回はTest-Projectとしました)、
「Project description (optional)」にリポジトリの説明(任意)を入力します。
SnapCrab_NoName_2018-8-15_14-10-23_No-00.png

「Visibility Level」はリポジトリの可視範囲を設定します。
設定できる項目は以下となります。

  • Private - アクセスが許可されたユーザーだけが見れる
  • Internal - GitLabにログインしているユーザーが見れる
  • Public - 誰でも見れる

今回は自分だけで使ってみたいので、「Private」に設定しました。

「Initialize repository with a README」はREADME.mdを作ってくれるようです。
今回は初めて作るため、チェックを入れておきましょう。
(別リポジトリやGitHubなどからImportする場合は外しておいた方が良さそうです。)

最後に「Create project」をクリックします。

作成が完了するとプロジェクト管理の画面が表示されます。
SnapCrab_NoName_2018-8-15_14-20-5_No-00_edit.png

Cloneする

ホストマシン(Windows)側

筆者の環境ではコマンドプロンプトでGitを使用できるようにしましたので、
Gitコマンドはコマンドプロンプト上での操作となります。(Git Bashなどでも同様かと思います。)

  1. コマンドプロンプトを起動します。

  2. 先ほど作成したリポジトリのページの中央部にあるURLをコピーします。(右側にあるボタンをクリックでもコピーできます)
    SnapCrab_NoName_2018-8-15_14-26-41_No-00.png

  3. 1.で起動しているコマンドプロンプトで以下のコマンドを入力します。

git clone (2.でコピーしたURL)

  1. GitLabへのログインを求められるので、UserNameとPassWordを入力し「OK」をクリック
  2. コマンドプロンプト上で以下のようになればClone成功です。

Cloning into 'Test-Project'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.

念の為、エクスプローラー上でも確認します。
git cloneを用いて作成した場合は、
コマンドプロンプト上のカレンドディレクトリ\リポジトリ名にフォルダが作成されます。
以下のように作成されていればClone成功です。
SnapCrab_NoName_2018-8-15_14-29-4_No-00.png

仮想マシン(Ubuntu)側

Ubuntuの場合はコマンドプロンプトで行うことをターミナル上でやるだけなので、
手順としてはほとんど同じです。

  1. ターミナルを起動します。
  2. ホストマシン(Windows)側と同様にgit clone (コピーしたURL)を実行する
  3. ターミナル上でGitLabへのログインを求められるので、UserNameとPassWordを順に入力しする。
  4. 入力後、ターミナル上で以下のようになればクローン成功です。

Cloning into 'Test-Project'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.

Ubuntuでも同じく、念の為、ファイル上で確認します。
ターミナル上のカレンドディレクトリ\リポジトリ名にフォルダが作成されます。
以下のように作成されていればクローン成功です。
SnapCrab_NoName_2018-8-15_15-1-58_No-00.png

ファイルを変更/追加する

cloneがちゃんと出来たので問題はないと思いますが、
ファイルを追加や変更をしたりして、本来の目的である「コード共有」をしてみたいと思います。

仮想マシン(Ubuntu)側に別で作っていたPythonの練習ソースがあったので、今回はそれを追加したいと思います。
先ほどクローンしたリポジトリにhello.pyというファイルを追加しました。
SnapCrab_NoName_2018-8-15_15-10-34_No-00.png
hellp.pyには簡単なソースコードが書かれています。

hello.py
print("Hello World!")

ファイル追加後、クローンしたリポジトリのディレクトリでターミナルを開き、
以下のようにaddを使用します。

git add hello.py

addは対象のファイルをGitの管理対象として追加するコマンドで、
上記を行うことで、hello.pyが管理対象として追加されました。
※今回は直接ファイルを指定しましたが、ディレクトリやワイルドカードを用いた複数指定も可能です。

git add Lib

git add *.py

追加されたかどうかは、 git statusを実行することで確認できます。
実際にターミナルでgit statusを実行してみます。

ブランチ master
Your branch is up to date with 'origin/master'.

コミット予定の変更点:
  (use "git reset HEAD <file>..." to unstage)

	new file:   hello.py

上記のように「コミット予定の変更点:」というところに先ほど追加したhello.pyがいますので、
管理対象として追加ができています。

さて、管理対象として追加ができたのでコミットします。
コミットにはcommitを使用します。

git commit -m "Hello Python!"

-mその後につづく文字列をコメントとして追加します
この場合は**Hello Python!**がコメントになります。

commitまでしましたが、ここまでではまだローカルでの変更にしか過ぎない為、
pushで実際にリモートリポジトリに対して変更内容を反映します。
以下のように行います。

git push origin master

originはレポジトリの場所(URL)の別名となり、masterはブランチの名前となります。
 今回は作成したリポジトリをそのまま使うため、origin masterで指定しています。

実行後は以下のようにリモートへの反映が行われます。

Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 304 bytes | 304.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://gitlab.com/(ユーザー名)/Test-Project.git
   1a54c46..751dcbf  master -> master

ここまでの追加操作は、logを使用して確認できます。

git log

実行後は以下のように表示されます。

commit (コミットした際のHash値) (HEAD -> master, origin/master, origin/HEAD)
Author: (コミットした人のユーザー名) <(コミットした人の登録メールアドレス)>
Date:   (コミット日時)

Hello Python!

logでも変更されたことは確認できましたが、
実際にファイルを取り込んで変更を確認するため、ホストマシン(Windows)側でpullを使って変更点を取り込みます。

git pull origin master

実行後は以下のようにリモートの内容がローカルへ反映されます。

remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From https://gitlab.com/(ユーザー名)/Test-Project
1a54c46..751dcbf  master     -> origin/master    
Updating 1a54c46..751dcbf
Fast-forward
hello.py | 1 +
1 file changed, 1 insertion(+)
create mode 100644 hello.py

これも念の為、エクスプローラーで確認します。
無事hello.pyが追加されています
SnapCrab_NoName_2018-8-15_17-28-52_No-00.png

中身も確認してみます。
SnapCrab_NoName_2018-8-15_17-59-42_No-00.png

Ubuntu側で追加したコードと同じものが追加されているので、念願の「コード共有」が出来ました。

変更の場合は追加よりも簡単で、管理対象のファイルを変更後、
commitpushでローカル→リモートでの変更が可能です。

最後に

今回はGitとGitLabを使って実際に登録からリモートリポジトリを作って別環境からのコード共有を実現しました。
Gitには難しそうな印象を持っていましたが、意外とサクっと使えたのでこれからもぜひ活用したいです。
また、今回は個人で使う為masterブランチを直接変更するような形となってしまいましたが、
ブランチを作成して切り替えて作業…など機会があればまとめてみたいと思います。

Qiita初投稿かつGit初心者なので内容など、ご指摘あればどんどんコメントいただけますと幸いです。

参考元

GitおよびGitLabの使い方には以下を参考いたしました。

また、WindowsとUbuntuでのGitの導入に以下を参考いたしました。

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?