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

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

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

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

Q&A

解決済

2回答

1605閲覧

tortoisegitのプッシュにつきまして

tanto

総合スコア15

Git

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

0グッド

0クリップ

投稿2017/06/20 10:31

###前提・実現したいこと

質問です。
TortoiseGitを使用しているのですが
クローンしたリポジトリ内で
ファイル追加を行った後に、commit、pushを
行ったところ、正常に終了はしているようで
そこのフォルダでGitのログを確認すると
反映はされているようです。

ただ、そのサーバにFTP接続で
該当のディレクトリを参照しても
pushしたファイルが見当たりません。

どのようにすると実際のサーバに
追加が行われるのでしょうか?

初心者で大変申し訳ありません。
ご教授頂ければ幸いです。

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

FTP接続した際に、pushした
test.txtが見当たりません。

エラーメッセージ

Gitは正常終了しているようです。

###該当のソースコード

なし

###試したこと

windows10に以下をインストール
Git
TortoiseGit

ssh接続でリポジトリのクローンはできています。

クローンしたフォルダ内に
test.txtを追加し、
commit,pushを行いました。

###補足情報(言語/FW/ツール等のバージョンなど)

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

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

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

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

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

guest

回答2

0

やはりサーバ側でgit pullでした。

root_jp様、色々ありがとうございました。

投稿2017/06/23 13:12

tanto

総合スコア15

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

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

0

ベストアンサー

クローンしてプッシュしたファイルが落とせているのであれば、正常にプッシュされています。

サーバーのリポジトリが、ベアリポジトリだからじゃないでしょうか?
ベアリポジトリは.gitのようなフォルダだけがあって、
ワーキングディレクトリ(実際のファイル)を持ちません。

逆に実際のファイルを持つリポジトリをノンベアリポジトリと言いますが、
開発者のローカルリポジトリがこれに該当します。

プッシュ先をベアリポジトリにしておかないと、
サーバーにアクセスして直接そこのファイルをいじったりする輩が出てくるのです。
リモートリポジトリの更新はノンベアリポジトリからのプッシュ経由だけにすることで、
こういう不正行為ができなくなります。

リモートサーバーにアクセスできるのであれば、そこにログインし、
リポジトリのディレクトリに移動してからgit config -lと打って出てくる一覧に
core.bare true というのがあったりしませんか?

投稿2017/06/20 11:54

編集2017/06/20 12:03
root_jp

総合スコア4666

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

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

tanto

2017/06/20 12:35

root_jp 様 早々のコメントありがとうございます。 その後、いろいろ確認したり調べたところ どうやらgit pullしないとサーバに反映されないという事でした。 ちなみにですが、tortoisegitで右クリックの時に出る 『プル』を行えばいいという事でしょうか? それとも、サーバにターミナルでログインして コマンドで『git pull origin master』という事でしょうか? 出来る環境が手元にないので、明日確認しようと思うのですが・・・。 なにせtortoisegitもGitも初心者で汗かいております(T_T)
root_jp

2017/06/20 12:39

リモートサーバーに反映するのはpushです。 pull(fetch + merge)はリモートの変更をローカルに取り込むコマンドです。 プルしたいのであれば、tortoisegitのプルでいいと思います。
tanto

2017/06/20 12:48

root_jp 様 重ねましてありがとうございます。 pushで反映というのはリポジトリへの反映だけですか? それとも今回のように追加したtest.txtのファイルが サーバへも追加されるという事でしょうか? もしそうだと、追加されていないので おかしいということになってしまいます・・・(T_T) 当方が思ったのは、pull(fetch + merge)だと mergeによってサーバへ実際のファイルが 追加されるのではないかと思ったからなのです。 本当に知識不足で申し訳ありません。
root_jp

2017/06/20 13:18

ですから、Gitにはベアリポジトリとノンベアリポジトリというのがありまして、 ベアリポジトリではプッシュされても、実際のファイルという形で保存はされません。 更新情報として別の形で保存されています。 そしてリモートサーバーは、ほぼ間違いなくベアリポジトリだと思います。 http://www.nekotricolor.com/entry/theory-of-bare-and-non-bare-repository-manage-wordpress-themes-with-git Subversionのリポジトリも実ファイルは持ってなかったと思うので、 コミットしたところでリポジトリ上にそのファイルが出来上がったりしません。
root_jp

2017/06/20 13:29

ん?もしかしてリモートもノンベアリポジトリ(ローカルリポジトリにあるような、ソースコードのディレクトリやファイルがある)なんですかね。 何か話しの感じだと、そんな気もしてきました。。。 そうなると、サーバー上で自分のリポジトリからマージしないといけないかもしれませんね。。。
tanto

2017/06/20 14:14

root_jp 様 何度も恐れ入ります。 おそらくですが、クローンしたローカルリポジトリと同じようなディレクトリ構成なので、ノンベアなのではないかと思います。 システムの担当の先輩にお聞きしたら、サーバでgit pullとの事でした…。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問