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

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

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

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

Q&A

解決済

2回答

537閲覧

共有リポジトリにgit pushしたらwebサイトがすぐに更新されるようにしたい

taro_nii_chan

総合スコア207

Git

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

0グッド

0クリップ

投稿2018/08/22 03:04

編集2018/08/22 10:53

前提

git初心者です。「ドットインストール」の「git入門」を見たりググりまくったりしながら悪戦苦闘しています。

環境

ローカル:Mac OSX 1.13.6
サーバ: xrea plus

思い描いてるファイル構成

(サーバ側)

/virtual/(userneme) ├── git │   └── some.web.site └── public_html └── some.web.site └── .git (ローカル) /path/to/MAMP └── htdocs └── some.web.site └── .git

やっている事

webを見ながらメモを取り、こう言う事かな?と半分分からずにコマンドを叩いているのですがエラーが出て不成功に終わります。
上手く行っていた時期もあったのですがエラーが出るようになってから症状を直せません。

具体的にやっている事

  • まず、ローカルでinitial commitをしておきます。

ここからはしばらくサーバでssh作業です。

$ mkdir -p ~/git/some.web.site $ cd ~/git/some.web.site $ git init --bare

ファイルを編集します

$ vi ./hooks/post-receive

bash

1#!/usr/bin/bash 2 3cd ~/public_html/some.web.site 4git --git=dir=.git pull origin master:master
$ cd hooks/ $ chmod +x post-receive $ cd ~/public_html/some.wev.site $ git init Initialized empty Git repository in /virtual/(username)/public_html/some.web.site/.git/ $ git remote add origin ~/git/some.web.site

ここまではエラーなしです。
ここからはローカルです。

$ cd /path/to/MAMP/htdocs/some.web.site $ git clone ssh://(username)@(servername).xrea.com:22/virtual/(username)/git/some.web.site/ ...(*1) Cloning into 'some.web.site'... (username)@(servername).xrea.com's password: warning: You appear to have cloned an empty repository. $ git push origin master:master ...(*2) fatal: 'origin' does not appear to be a git repository fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.

質問

(*1)でおかしい事をしているのは何となく分かります。
サーバに空のリポジトリがあって、そこからクローンで引っ張ってこようとしてるのがおかしいのではと解釈しています。
ただ、じゃどうすればいいのかというのが分かりません。
(*2)が上手くいかないのは(*1)が解決すれば解決するのかなと思っています。

(*1)だけがおかしいのであれば、どう直したら解決するのか、それともそもそもその前から間違ってるのか教えて下さい。

追記 2018.8.22(wed) 19:53

(*1)を省いてgit remoteをしたのですが、指定の仕方が恐らく間違っていてエラーになります。

$ git remote add origin (username)@(servername).xrea.com:(username)/git/some.web.site ...(*3)

とした後、

$ git push

をすると

fatal: The current branch master has no upstream branch. To push the current branch and set the remote as upstream, use git push --set-upstream origin master

と出て、言われた通り

$ git push --set-upstream origin master

を実行すると

error: src refspec master does not match any. error: failed to push some refs to '(username)@(servername).xrea.com:(username)/git/some.web.site'

と怒られます。

(*3)が間違っていると想像しているのですが、どう直せば良いのでしょうか?

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

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

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

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

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

guest

回答2

0

自己解決

ローカルで

$ git push -u origin master

とやったらリモートサーバのパスワードを聞いてくれて、
それ以来

$ git push

だけで行けるようになりました。

投稿2018/08/26 08:13

taro_nii_chan

総合スコア207

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

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

0

*1の作業は不要だと思います。

サーバー側で作成したリポジトリは、あくまでoriginとして設定するリモートリポジトリで、空っぽです。
cloneしても、なにもありません。

ローカル側の作業として

  1. git remoteでoriginを設定
  2. git push

という順序で、うまく行かないですか?

ひょっとすると、サーバー側リポジトリの.hookを編集しているので、pushでエラーになるかも・・・(←知識外です)
その場合は、もう一度、--bareでリポジトリを作り直し、pushしたのち、.hookを編集すれば良いと思います。

投稿2018/08/22 08:15

Meganezaru

総合スコア715

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

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

taro_nii_chan

2018/08/22 10:53

質問に追記をさせていただきました。 よろしくお願いします。
Meganezaru

2018/08/23 08:48

ローカルで、git remote -vした時の、結果はどんな感じでしょうか?
taro_nii_chan

2018/08/26 08:04

コメントに気づいてなかったです。失礼しました。 今書こうと思ってteratailにログインしたのですが、自己解決出来ました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問