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

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

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

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

Q&A

解決済

1回答

635閲覧

ローカルでのgit環境作成方法

roku28632

総合スコア36

Git

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

0グッド

0クリップ

投稿2020/06/13 05:28

ローカル内で完結するgit環境を作成したいです。
あまりよくわかってないので、どこがダメなのか、何が必要なのか教えてください。

今やろうとしていることは、
windows 10 のPC内のあるフォルダをリポートリポジトリとして作成して、
別のあるフォルダをローカルリポジトリとして作成して、
cloneからadd、commit、pushですが、cloneする前段で躓いております。

git config --global user.name "aaa" git config --global user.email "aaa@example.com" (そもそもconfig設定必須?) mkdir local_r mkdir remote_r git add origin C:\work\git_practice\20200612\remote_r.git fatal: not a git repository (or any of the parent directories): .git

もしかしてgit initが必要かと思ったので、

git init git add origin C:\work\git_practice\20200612\remote_r.git fatal: not a git repository (or any of the parent directories): .git

やはり同じ結果です。
そもそもリモートリポジトリの作り方が根本的に誤っているような気がしてますが、
ローカルPC内に作成する方法が調べてもあまり出てこないので、教えてください。
(git init --bare --sharedみたいなことをしている記事が見つかりましたが、コレが解なのか、いまいち腑に落ちてません。)

よろしくお願いします。

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

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

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

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

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

kabayan55

2020/06/13 06:11

git initは必要です。not a git repository とのことなので、git initがおそらくうまくいっていません。 git init と打つと、おそらくどこのリポジトリかメッセージに出てくると思うのですが、どう出力されていますでしょうか。以下、例です。 $ git init Initialized empty Git repository in C:work/git_practice/20200612/remote_.git/ $ git init リポジトリ名 とリポジトリを指定することもできます。 --bare --shared は別の話ですね。それぞれ「git init --bare」「git init --shared」で検索してみてください。
roku28632

2020/06/13 06:27

git init した結果は下記になります。 C:\work\git_practice\20200612\remote_r.git>git init Initialized empty Git repository in C:/work/git_practice/20200612/remote_r.git/.git/
退会済みユーザー

退会済みユーザー

2020/06/13 07:36

リモートリポジトリはどうやって作成しましたか? 現状だと、remote_r.gitというリモートリポジトリのディレクトリをどうやって作ったかが見えません。
roku28632

2020/06/13 11:22

リモートリポジトリですか、 やったのはフォルダ作って、git initしただけです。 リモートリポジトリを作るのになにか必要なのでしょうか?
markey

2020/06/13 11:37

git initした結果表示されているパスをoriginとして指定するのが正しいです。 なので、 git add origin C:/work/git_practice/20200612/remote_r.git/.git/ だと思います。
roku28632

2020/06/13 12:34

教えていただいいた通り、.gitを指定したらコマンドが実行できました。 そもそも私のほうの記載が誤っていたのですが、 git remote add origin C:/work/git_practice/20200612/remote_r.git/.git/ ですね。(remoteが抜けていた)
guest

回答1

0

ベストアンサー

やり方はいろいろありますが、一番簡単なのは、

  1. リモート役のレポジトリをbareで作成
  2. 1.で作成したレポジトリをcloneしてローカル役のレポジトリを作成

です。

$ git init --bare remote_r.git $ git clone remote_r.git local_r

roku28632さんがやられているように、ローカル役のレポジトリをinitで作ってから、remote addするのでもできるはずです。
(git remote addではなく、git addで実行しているからエラーになっています。)

投稿2020/06/13 11:51

bsdfan

総合スコア4560

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

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

roku28632

2020/06/13 12:28

すいません。 記載が誤ってました。 実際はgit remote add origin C:\work\git_practice\20200612\remote_r.git ってしてます。 ということは、上の方が回答してくれているように、git init した際にできる .gitの方で git remote add origin C:/work/git_practice/20200612/remote_r.git/.git/ とするのが正しいやり方だったのですかね。 実際やってみたらうまくいって、git remote -vでoriginが確認できました。 git init で生成された.gitのフォルダが本体になって、この配下にファイルが追加されていくイメージでしょうか?
roku28632

2020/06/13 12:32

あと、教えてもらった--bare方も試してみて気がついたんですが、そもそも、事前にmkdirでフォルダ生成しておく必要ないんですかね。もしかして。 リモートリポジトリ用のフォルダ自体をgit init --bare フォルダ名という感じで作成するのが一般でしょうか?
bsdfan

2020/06/13 12:58

先にディレクトリを作るかは、人それぞれじゃないでしょうか。私はbareレポジトリはだいたいgit initで作って、それ以外は先にディレクトリ作っている気がします。
bsdfan

2020/06/13 13:01

--bareをつけずにinitした.gitのあるレポジトリをリモートにすると、通常のやり方ではpushできないのでやめた方がいいです。
roku28632

2020/06/13 15:45

ありがとうございます。 教えていただいた方法でやりたかったことができました。 git init --bare remote_r.git git remote add origin remote_r.git git clone remote_r local_r copy nul test.txt git add test.txt git commit -m "test" git push git clone remote_r local_r2 local_r2でtest.txtを確認できました。 ちなみになんですが、pushした後に、remote_r.gitで where /r . "test"とpushしたtest.txtを探したのですが、見つかりませんでした。 リモートリポジトリにpushしたファイルというのはリモートリポジトリ側では ファイルの実態として確認できないものでしょうか?(バイナリとか別の様式になっているのでしょうか?)
bsdfan

2020/06/14 01:56

git remote add origin remote_r.git は、どこでやったのかよくわかりませんが、git cloneをするなら、手順としては不要ですね。 ファイルの実態については、bareレポジトリとnon bareレポジトリの違いについて勉強されたらいいと思います。bareレポジトリでは、ワーキングディレクトリを持たないので、ファイルの実態はできません。(objファイルの中で管理されます)
roku28632

2020/06/14 02:44

なるほど。 大本のリモートリポジトリとして認識するのに、git remote add origin remote_r.gitが必要なのだと思ったのですが、git init --bare だけで、リモートリポジトリにできるのですね。 (実際やってみたらできました。) ちょっと勉強不足な部分が多いのでもう少し勉強してみます。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問