質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
SourceTree

SourceTreeは、Gitのクライアントツール。視覚的に操作するGUI形式でGitの操作が容易になります。MacやWindowsなどのOSに依存しておらず、PC環境に合わせてインストールすることが可能です。

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Q&A

解決済

1回答

5639閲覧

エックスサーバーにSourceTreeを使ってgit pushし、本番環境での自動デプロイまでを行う方法について

naoyoshi

総合スコア13

SourceTree

SourceTreeは、Gitのクライアントツール。視覚的に操作するGUI形式でGitの操作が容易になります。MacやWindowsなどのOSに依存しておらず、PC環境に合わせてインストールすることが可能です。

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

0グッド

1クリップ

投稿2017/04/09 12:25

はじめまして。
初めてこちらで質問をさせてもらいます。

SourceTreeを使い、直接エックスサーバーに接続し、リモートレポジトリにアクセスする方法について詳解する記事をネットにて検索しましたが、現在はなさそうに見えます。
そのため、私がいろいろと試行をしたのですが、正しい設定や操作方法がわからないでいます。
ご存じの方がお見えでしたら、ご教授いただけますと幸いです。

###前提・実現したいこと
http://vdeep.net/git-push-deploy
では、エックスサーバーにてGitの環境を構築し、リモートリポジトリに手元のmac OSのパソコンからコマンド入力でgit pushする方法は載っています。
今回、コマンドではなくSourceTreeを使い、本番環境での自動デプロイまで実現したいと考えます。

###試したこと
●エックスサーバーにGitを導入する手順
http://vdeep.net/xserver-git
は、Gitの初期設定まで行いました。
Gitの初期設定は、自分の名前とメールアドレスを設定しました。

●本番環境での自動デプロイ先
/home/サーバーID/hoge.com/public_html/test
とします。

●リモートリポジトリの場所
/home/サーバーID/hoge.com/public_html/git
とします。
理由は、SourceTreeからhttpsにてリモートリポジトリにアクセスしたいためです。

●public_html/testで公開しているファイルをGitで管理の実行内容

$ cd ~/home.com/public_html/test $ git init $ git add . $ git commit -m "first commit" # On branch master # # Initial commit # nothing to commit (create/copy files and use "git add" to track)

●リモートリポジトリを作成

$ cd ~/hoge.com/public_html/git $ git clone --bare --shared ~/hoge.com/public_html/test test.git warning: You appear to have cloned an empty repository. done.

●post-receiveの作成

$ cd test.git/hooks $ vi post-receive

●ファイルの内容

#!/bin/bash cd ~/hoge.com/public_html/test git --git-dir=.git pull ~/hoge.com/public_html/git/test.git master

●ファイルの実行権付与

$ chmod +x post-receive

●SourceTreeのローカルレポジトリの設定
・ローカルレポジトリを開いている状態で、「設定」アイコンをクリック。
・「リモート」アイコンをクリックし、「追加」ボタンをクリック。
・リモートレポジトリの設定
リモートの名称:master
URL/パス:https://hoge.com/git/test.git
を入力して、「OK」をクリック。
・リモートリポジトリのパスに追加した項目を反転している状態で、「OK」をクリック。

###発生している問題・エラーメッセージ

上記の設定まで行った後、次のプッシュ操作をします。

●操作内容
・「プッシュ」アイコンをクリック。
・プッシュ先の選択画面にて以下を設定。
プッシュ先のリポジトリを「master」
ローカルブランチ「master」、リモートブランチ「master」となっている項目のチェックをつける。
・「OK」ボタンをクリック。

その後、リモートレポジトリにプッシュするとき、下記のエラーが出ます。

git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree push -v --tags --set-upstream master refs/heads/master:refs/heads/master Pushing to https://hoge.com/git/test.git fatal: https://hoge.com/git/test.git/info/refs not valid: is this a git repository? Completed with errors, see above

###なぜHTTPSアクセスで公開サイト上にgitを作る手段を考えたか
環境設定で、アカウント作成があります。
ホストの設定では、Bitbucket、Bitbucket Server、GitHubの3つの項目しかありません。
いずれのホストもアカウントを作らないといけません。
アカウントを作らないでエックスサーバーにgit pushする場合、上述した試行方法でやるしかないかなと至りました。

###補足情報(言語/FW/ツール等のバージョンなど)
SourceTreeのバージョン:2.5
mac OS: Sierra
です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こんにちは。
お役に立てるかわかりませんが、思いつく点を書いてみます。

アカウントを作らないでエックスサーバーにgit pushする場合、上述した試行方法でやるしかないかなと至りました。

エックスサーバー上に作られているリポジトリに、http(s)プロトコルを使ってpush / pullするためには、Webサーバ側の設定でGit連携が必要になるかと思います。

エックスサーバーについては詳しくないのですが、Webサーバが起動して ~/hoge.com/public_html/以下がブラウザでアクセスできるとしても、git-http-backend やWebDAVなどの設定での連携をしてあげないと、http(s) での git pushはできないと思います。

ひとまず、ローカルの変更をエックスサーバー側に反映させるためには、リモートリポジトリを https://hoge.com/git/test.git とするのではなくて、sshプロトコルでpushすることで可能と思います。

リモートリポジトリを以下のように設定するのではどうでしょう。


  • 名前: origin
  • パス: ssh://アカウント名@アカウント名.hoge.com/home/アカウント名/git/test.git

ssh経由でのpushになりますが、結果的に

  • MacからSourceTreeで sshプロトコルを使ってエックスサーバ上の ~/hoge.com/public_html/git/test.git にpush
  • エックスサーバ上の ~/hoge.com/public_html/git/test.git に変更が加わりpost-receiveの処理が走る
  • post-receiveの処理で、~/hoge.com/public_html/test に ~/hoge.com/public_html/git/test.gitにpushされた変更が同期する
  • 結果的に、Web上のコンテンツがデプロイされる

という流れになると思いますが、如何でしょうか。

こちらの記事が近いと思います。

さくらレンタルサーバーとSourceTreeでGit環境構築

わかりにくい点があればご指摘くださいませ。

投稿2017/04/09 13:12

編集2017/04/09 13:13
suama

総合スコア1997

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

naoyoshi

2017/04/09 13:41

ご回答ありがとうございました。 非常に助かりました。 さくらでのやり方を参考にしてエックスサーバーへ接続ができました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問