LoginSignup
7
9

More than 3 years have passed since last update.

[GitLab]既存のプロジェクトでGit管理を始める

Last updated at Posted at 2021-02-17

すでに、稼働しているプロジェクト(ディレクトリ)のGit管理を始める手順です。
GitのホスティングサービスとしてGitLabを用いていますが、考え方は、GitHubやCodeCommitなど、他を用いた場合でも使えます。

環境

  • OS: Amazon Linux2
  • GitLab

前提条件

  • GitLabアカウントは作成済とします。

ディレクトリ構成

Git管理したいプロジェクトのディレクトリ構成は以下の通り。

dog
 |
 |----dog.php → 処理プログラム
 |
 |----temp → 一時ファイル用のディレクトリ:配下のファイルはGit管理対象外
 |      |----aaa.temp
 |      |----bbb.temp 
 |      |----ccc.temp 
 |            :
 |            :
 | 
 |---batch                    
         |----dogBatch.php                   
         |----logs → ログファイル用のディレクトリ:配下のファイルはGit管理対象外
                 |----aaa.log
                 |----bbb.log
                 |----ccc.log
                       :
                       :

このうち、

  • temp:一時ファイル用のディレクトリのため
  • batch/logs:ログファイル用のディレクトリのため

は、Git管理の対象外とします。

手順

以下、適宜、sudoを付けて実行してください(Amazon Linux2の場合)。

1. Gitのインストールと初期設定

(1) 以下のコマンドを実行し、Gitをインストールしましょう。

$ yum install git-all

(2) 次に、ユーザー名とメールアドレスを設定します。

$ git config --global user.name "hoge"
$ git config --global user.e-mail "hoge@example.com"

(3) 設定内容を確認します。以下のように、設定した内容が表示されればOKです。

$ git config --list
user.name=hoge
user.email=hoge@example.com

2. ローカルリポジトリで、Git管理を始める

ここで、ローカルリポジトリとは、今回Git管理を始めるサーバ上のプロジェクト(ディレクトリ)を指しています。
以下の作業は、原則Git管理したいプロジェクト直下(本手順ではdog直下)で行うようにしてください。

(1) まず、treeコマンドを実行してディレクトリ構成を把握しましょう。
この段階で、どのディレクトリもしくはファイルをGit管理の対象とするか決めます。

$ tree
.
├── batch
│   ├── dogBatch.php
│   └── logs
│       ├── aaa.log
│       ├── bbb.log
│       └── ccc.log
├── dog.php
└── temp
    ├── aaa.tmp
    ├── bbb.tmp
    └── ccc.tmp

(2) リポジトリの初期化をします。

$ git init

(3) (1) でGit管理しないと決めたディレクトリのうち、ディレクトリそのものは残したいものに対し、配下に隠しファイルを作成しておきます。

$ touch temp/.gitkeep
$ touch batch/logs/.gitkeep

今回は、「ディレクトリ構成」でも記載の通りのtempディレクトリと、batch/logsディレクトリ配下に隠しファイル.gitkeepを作成しました。
このファイル名はなんでもよいのですが、いい加減な名前をつけると後々問題になりかねないので、.gitkeepのような分かりやすい名前にしておくのがよいでしょう。

(4) .gitignore(= Git管理したくない対象を記載するファイル)を作成します。

touch .gitignore

(5) .gitignoreをvimで開き、以下を書き込み、保存します。

.gitignore
batch/logs/*
!batch/logs/.gitkeep
temp/*
!temp/.gitkeep

上記のように記述することで、Git管理したくないディレクトリに対し、ディレクトリを残すための隠しファイルのみGit管理の対象とすることができます(=ディレクトリ自体もGit管理の対象となります)。

詳しくは、
.gitignoreの否定文(!)でハマったところ | Qiita
辺りをご参照ください。

(6) 続いて、以下のコマンドを実行して、Git管理対象をステージングにあげましょう。

$ git add .

(7) git statusコマンドを実行して、ステージングに上がっているファイル、ディレクトリを確認します。

$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   .gitignore
        new file:   batch/dogBatch.php
        new file:   batch/logs/.gitkeep
        new file:   dog.php
        new file:   temp/.gitkeep

上記のように、.gitignoreで、Git管理対象外としたものが含まれていなければOKです。

(8) 変更をコミットします。

$ git commit -m "first commit of dog"

3. GitLabで、リモートリポジトリを作成する

(1) GitLabにログインし、「New project」をクリックします。

image.png

(2) Linuxサーバ上のローカルリポジトリをまるっと反映させるので、「Create blank project」をクリック。
image.png

(3) プロジェクト名を入力し(①)、プロジェクトの説明(Project description)や、可視化レベル(Visibility Level)などを適宜変更し、「Create project」をクリック(②)。
image.png

(4) プロジェクトが作成されたら、「Clone」をクリックして(①)、その後に表示される「Clone with HTTPS」の「Copy URL」をクリック(②)
image.png

4. ローカルリポジトリとリモートリポジトリの同期

2で作成したローカルリポジトリをリモートリポジトリに反映させます。

(1) ローカルリポジトリにて、以下のコマンドを実行しましょう。

$ git remote add origin [3-(4)でコピーしたURL]

この後、ユーザー名とパスワードを聞かれるので、GitLabのアカウントのそれらを入力します。

(2) 続いて以下のコマンドを実行し、ローカルリポジトリのmasterブランチをリモートリポジトリのmasterブランチとして反映させます。

$ git push -u origin master

(3) GitLabのページをリロードし、ローカルリポジトリの内容が反映されていれば成功です!
image.png

終わりに

ポイントは、何を管理対象から外すか。
余分なファイルをGit管理に含めないようにしましょう。

参考

7
9
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
7
9