1

git tutorials を読むことから遠く離れて、ubuntu Linux サーバーにあるプロジェクト ファイルを共有するには、ベア リポジトリを作成して実際のリポジトリにリンクする必要があることを理解しました。実際の作業ファイルを持っています。

そして、変更をサーバーにプッシュすると、post-receive フックが作業ファイルを含む実際のリポジトリを更新するようになりました。

これが私が理解できるすべてであり、それ以上に多くの混乱があり、それについて私は次の質問があります。

1) How do I create my bare repo.
2) How do I link it to the actual repo consisting the actual work files.
3) And what is this post-receive hook? Where does it reside? And what configurations do I need to do for the same.
4

2 に答える 2

2

ベアリポジトリを作成するにはどうすればよいですか。

これを読んでください。

既存のリポジトリを新しいリポジトリに複製するには、次のbareコマンドを実行します。

git clone --bare my_project my_project.git

実際の作業ファイルで構成される実際のリポジトリにリンクするにはどうすればよいですか。

これを読んでください。

non-bareリポジトリは、を次のbareように追加できremoteます。

git remote add <name> <remote-URL>

次に、からnon-bare

git push <name-of-remote> <branch-to-push-from>:<remote-branch-to-push-to>. 

繰り返しになりますが、これはすべてGit SCMの本で説明されています。これは、StackOverflowで同じ質問をする前に読むことをお勧めします

本を読む。検索する用語(、、git remote repositoriesなどgit bare server)が表示されます。あなたが何を検索するかを知っているとき、これについてStackOverflowにたくさんの質問があります。

そして、この受信後のフックは何ですか?

pushこれは、リポジトリが編集された後に実行されるスクリプトです。(データを受信した後、リポジトリはpost-receiveスクリプトを実行します-適切な命名)。

それはどこにありますか?

リポジトリのhooksディレクトリ内。bareそれ以外の.git/hooks場合。これを読んでください。

そして、同じためにどのような構成を行う必要がありますか。

post-receive要求していることを実行するためのフックは必要ありませbareん(少数の複数のユーザーがそこから実行できるように、基本リポジトリーgit pushをセットアップしますgit pull)。aが何であるかわからない場合hookは、この時点では必要ありません。リポジトリを設定し、基本的なgitコマンドの使用とリポジトリでの共同作業者の操作に慣れ、フックbareの設定と使用について具体的な質問をします。post-receive

私はこれを十分に強調することはできません:本を読んでください。それが役立ちます。私は多くのことを学びました。:)それあなたに方法を教えてくれます:

  1. ベアリポジトリを作成するにはどうすればよいですか。(これはChapter 4)。
  2. 実際の作業ファイルで構成される実際のリポジトリにリンクするにはどうすればよいですか。(これはChapter 2, section 5)。
  3. そして、この受信後のフックは何ですか?それはどこにありますか?そして、同じためにどのような構成を行う必要がありますか。(これはChapter 7, section 3)。
于 2013-01-08T14:22:46.950 に答える
1

フォルダは実際の.gitリポジトリです。ローカルでは作業フォルダー内のフォルダーになりますが、ベア リポジトリには作業フォルダーがないため、.git 拡張子が付きます。

ベア リポジトリとは、作業フォルダ (つまり、ファイルがチェックアウトされる場所) のないリポジトリです。ベア リポジトリを作成するには、 を使用しますgit init --bare <repository name>

ローカルで作業している場合git clone <repository path> <working folder>、リモート リポジトリのローカル コピーを作成するために a が実行されます。git fetchこれは、またはで定期的に更新されgit pull、変更は でサーバーに適用されますgit pull。リポジトリをローカルにクローンすると、リモートと呼ばれる名前が作成されます。この名前はorigin.

ブランチは基本的に開発の名前付きパスであり、git branchコマンドで作成されます。ローカル ブランチをリモート ブランチにリンクすると、git はフェッチとプッシュの際にデフォルトで何を使用するかを指示し、使用するコマンドを簡素化できます。リモート ブランチをリンクまたは追跡するには、 を使用しますgit branch -u <remote>/<branch>

これらの基本的な操作のいずれについても、git のさまざまなフックに関与する理由はありません。

git bookは、これらの基本的な操作を十分にカバーしています。

于 2013-01-08T14:23:51.207 に答える