81

私が正しく理解していれば、Gitには2種類のリポジトリがあります。1つはローカルと呼ばれ、もう1つはリモートと呼ばれます。私の質問は、2つのタイプのリポジトリについて非常に素朴なものです。

言うのは正しいですか

  • Gitローカルリポジトリは、ローカルで変更を加えるものです。通常、このローカルリポジトリはコンピュータ上にあります。

  • Gitリモートリポジトリはサーバーの1つであり、通常は42マイル離れた場所にあるマシンです。

別の質問:いくつかのチュートリアルは私にこのワークフローを示しています

  • mkdir myproject
  • cd myproject
  • git init
  • READMEにタッチ
  • git add README
  • git commit -a -m "

git initmyprojectがローカルリポジトリを作成していることがわかります。私が理解していないのは git commitコマンドです。リモートリポジトリをまだ設定していない場合、GitはREADMEファイルをコミットする場所をどのように知ることができますか?

はっきりしていたと思います。

[編集]Gitの使用方法は、他の方法とは異なる場合があります。コードをバックアップするためにプライベートGitリポジトリを使用しています。したがって、リモートリポジトリが必要だと思います。この場合、ローカルリポジトリはナンセンスである必要があります。私は正しいですか?ご説明いただきありがとうございます。これらは私が他のどこにも答えを見つけることができない最も素朴な質問です...

4

5 に答える 5

56

Gitは分散バージョン管理システムであり、Gitを素晴らしいものにします。ローカルリポジトリには、他のGitリポジトリとまったく同じ機能があります。したがって、サーバー上のGitリポジトリはGitHub上のGitリポジトリと同じです(GitHubは追加機能を追加しますが、基本的にはGitリポジトリを処理します)。これは同僚のローカルリポジトリと同じです。

それで、なぜそれは素晴らしいのですか?中央リポジトリがないため、作業を行うためにアクセスできる必要があります。インターネットにアクセスできない場合でも、ローカルマシンの独自のリポジトリでコミット、分岐、およびパーティを行うことができます。その後、再び接続が確立されたら、アクセスできる他のGitリポジトリに変更をプッシュできます。したがって、ほとんどの人は特定のリポジトリを中央リポジトリ(リポジトリ)として扱いますが、それはプロセスの選択であり、Gitの要件ではありません。

すべてのポイントは、(他の人がそうであるように)READMEをローカルリポジトリにコミットしていることを述べることでした。その後、選択するたびに、ローカルリポジトリから他のリポジトリに変更をプッシュできます。それはかなり気の利いたです!

于 2012-10-25T15:46:01.817 に答える
17

あなたの引用された声明は正しいです。

リモート リポジトリを用意する必要はまったくありません。
ローカル リポジトリだけで、コミット、ブランチ、マージ、リベースなどの完全な git エクスペリエンスを利用できます。

リモート リポジトリ (GitHub など) の目的は、コードを世界中 (または一部の人々) に公開し、読み書きできるようにすることです。

git pushリモート リポジトリは、ローカルがリモート リポジトリにコミットするとき、またはgit pull他の誰かがそこからコミットするときにのみ関与します。

于 2012-10-25T15:36:02.933 に答える
13

リモート リポジトリをまだ設定していない場合、Git はどのようにして私の README ファイルをコミットする場所を知ることができますか??

ローカル リポジトリにコミットしています (これは、独自の変更管理機能を備えた適切なリポジトリです。単なるローカル チェックアウトではありません。ローカルで作成したため、ローカル チェックアウトでさえありません!)。

変更をリモート リポジトリに送信する (バックアップする、チームの他のメンバーが利用できるようにする、または世界中に公開する) 場合は、それらをプッシュする必要があります。

于 2012-10-25T15:37:24.713 に答える