1.ユーザー情報の設定
2.既存のプロジェクトフォルダをGit共有リポジトリ(リモートリポジトリ)に変換する
3.ローカルリポジトリにインデックス追加&コミット
4.リモートリポジトリの登録
5.ローカルリポジトリからリモートリポジトリにプッシュ
6.ローカルPCにクローンしてみる
7.ローカルPCでクローンしたリポジトリ内容を変更してリモートリポジトリに反映させる
8.その他
1.ユーザー情報の設定
git config –global user.name “sawaryot”
git config — global user.email “r****@gmail.com”
ホストサーバー側、ローカル側のそれぞれで別のユーザー名で設定
コミットなどgitを使ったときにここで設定した名前で記録されます
2.既存のプロジェクトフォルダをGit共有リポジトリ(リモートリポジトリ)に変換する
こちらの記事を参考
$ git init –bare –shared <directory>
既存のリポジトリをグループアクセス可能にするなら–bare のあとに–sharedをつける
–bareとオプションが付いていますがベアリポジトリってなんぞって人はこちら参照
ですがこのコマンドだけだと問題発生する場合があります
既存のプロジェクトフォルダがフレームワークLaravelのプロジェクトである場合、configフォルダがあるため
git init –bare –sharedとやるとエラーが出ます
こちら備考
なので既存のプロジェクトをgit管理する場合はそのディレクトリにbareするのではなくcloneしたディレクトリにbareします
# 作業用レポジトリを作成
$ git init <directory>
Initialized empty Git repository in /docker/www/LaravelProject/.git/# 共有レポジトリを作成 (作業用レポジトリを複製)
$ git clone --bare LaravelProject git_my_shared.git
Cloning into bare repository 'git_my_shared.git'...
warning: You appear to have cloned an empty repository.
done.
$ cd git_my_shared.git
$ ls
branches config description HEAD hooks info objects refs
$ chmod -R g+w .
$ git config core.sharedRepository group
$ git config receive.denyNonFastForwards true
これでLaravelProjectが作業用リポジトリ、git_my_shared.gitが共有リポジトリ(実体のソースファイルではないリモートリポジトリ)が作られた
ちなみにgit initしたディレクトリに対して、取り消すときは以下のようにプロジェクトフォルダ以下のファイルを削除すればおk
configを消すときはフレームワークのフォルダ名がconfigであることがあるのでそれを誤って消すことのないように
- HEAD
- branches
- config
- description
- hooks
- info
- objects
- refs
3.インデックスに追加&コミット
4.リモートリポジトリの登録
” git remote add リモートリポジトリの名前 リモートリポジトリのURL”
$ git remote add git_my_shared.git /docker/www/git_my_shared.git
確認してみる
[sawaryot@dev381 LaravelProject]$ git remote
git_my_shared.git
5.ローカルリポジトリからリモートリポジトリにプッシュ
ローカルリポジトリのディレクトリで
“git push リモート名 master”
masterとありますが何でしょうか。
コミットが作成された時、その履歴を今後記録していくためのブランチと呼ばれるディレクトリが作られます。
履歴が増えるに従い、枝のように分岐したり、時には統合して進んでいくのでそう呼ばれます。
リポジトリに最初のコミットを行うと、Gitはmasterという名前の最初のブランチを作成します。
それがまさにマスターとなり、以後のコミットはブランチが増え、切り替えるまでmasterブランチに追加されていきます。
ですのでこの”git push リモート名 master”の解釈としては、「ローカルのコミットを、このリモートリポジトリにアップロードします。ブランチはmasterです。」ということです。
ちなみに”master”というコードの部分は略されており、正式に書くと”master:master“、ローカルのmasterをリモートのmasterに反映させる、の意です。
[sawaryot@dev381 www]$ cd LaravelProject/
[sawaryot@dev381 LaravelProject]$ git push git_my_shared.git master
Counting objects: 118, done.
Compressing objects: 100% (101/101), done.
Writing objects: 100% (118/118), 167.83 KiB | 0 bytes/s, done.
Total 118 (delta 11), reused 0 (delta 0)
remote: Resolving deltas: 100% (11/11), done.
To /docker/www/git_my_shared.git
* [new branch] master -> master
これで手元のローカルリポジトリのmasterブランチが、リモートリポジトリgit_my_shared.gitに書き込まれ、リモートリポジトリにmasterブランチが作成されました。
6.ローカルPCでクローンしてみる
ローカルPCにはtortoiseGitを入れておく
作成したいディレクトリをエクスプローラーで開いてエクスプローラー上で右クリック
Gitクローンという項目があるので選択
すると[Gitクローン]ダイアログが表示されます。URLには以下の形式を入力します。
ssh://sawaryot@サーバーアドレス/docker/www/git_my_shared.git/
gitリポジトリのパスは絶対パスなので注意
ちなみにコマンドラインからクローンする場合は
$ git clone ssh://(接続するユーザー名)@(サーバーアドレス):(ポート番号)/(gitリポジトリのパス)
するとユーザー名、パスワードを求められるので入力
成功すると以下のように緑色のマークが付いたフォルダが作成される
7.ローカルPCでクローンしたリポジトリ内容を変更してリモートリポジトリに反映させる
まずはクローンしたリポジトリ内容をどのファイル(環境に影響しないもの)を適当に変更してコミット
続いてプッシュする
無事プッシュできたら必要なら以下のようにpull requestを行う
最後にローカルPCからpushした内容にリモートリポジトリを更新するpullを行う
共有リポジトリがあるホスト側で以下実行
[sawaryot@dev381 LaravelProject]$ git pull git_my_shared.git master
remote: Counting objects: 4, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 4 (delta 3), reused 0 (delta 0)
Unpacking objects: 100% (4/4), done.
From /docker/www/git_my_shared
* branch master -> FETCH_HEAD
69205a1..a5ad48f master -> git_my_shared.git/master
Updating 69205a1..a5ad48f
Fast-forward
routes/web.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
ログも見てみるとちゃんと更新されている
[sawaryot@dev381 LaravelProject]$ git log
commit a5ad48f93fd9ae7f2850f824087eb747da48604b (HEAD -> master, git_my_shared.git/master)
Author: smile_sawaryot <ryotasawa12smile@gmail.com>
Date: Thu Jul 27 13:03:39 2017 +0900
テストコミット
commit 69205a116f41897072bdf2bcb03676df5fb7c926
Author: h_sawaryot <ryo.program@gmail.com>
Date: Tue Jul 25 16:42:02 2017 +0900
first commit
さっきコミットした内容をリモートリポジトリのほうに反映
[sawaryot@dev381 LaravelProject]$ git pull git_my_shared.git master
remote: Counting objects: 15, done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 15 (delta 11), reused 0 (delta 0)
Unpacking objects: 100% (15/15), done.
From /docker/www/git_my_shared
* branch master -> FETCH_HEAD
a5ad48f..46e2805 master -> git_my_shared.git/master
Updating a5ad48f..46e2805
Fast-forward
app/Http/Controllers/testController.php | 39 ++++++++++++++++++++————-
routes/web.php | 8 +++++++
2 files changed, 32 insertions(+), 15 deletions(-)
8.その他
svntortoiseの使い方はこちらの記事にまとまっている。
gitを使う流れを確認するとよいかも
コメント