2

新しいプロジェクトを作成し、古いプロジェクトを Git でバージョン管理するためのワークフローを確立しようとしています。1 つのステップを除いて、最終的にすべてが意味を成しています。新しいプロジェクトを作成するときは、その中で Git を初期化し、最初のコミットを行ってから、git clone --bare ./myproject //myserver/myshare/myproject.git. 次に、リモコンをセットアップしましたgit remote add origin //myserver/myshare/myproject.git。これらはうまくいくようです。しかし、私が行うgit branch -aと、リモートにマスターブランチがあることは示されません。

私が現在これを回避している方法はgit clone //myserver/myshare/myproject.git、別の場所に移動しただけで、リモートが既にセットアップされており、マスターブランチがリモートに存在することです。特に唯一の違いはリモコンの設定方法だけであるため、何が問題なのかわかりません。

前もって感謝します!

4

2 に答える 2

2

何も問題はありません。git cloneマニュアルページから:

   --bare
       Make a bare GIT repository. That is, instead of creating <directory> and placing the administrative files in <directory>/.git, make the <directory>
       itself the $GIT_DIR. This obviously implies the -n because there is nowhere to check out the working tree. Also the branch heads at the remote are
       copied directly to corresponding local branch heads, without mapping them to refs/remotes/origin/. When this option is used, neither remote-tracking
       branches nor the related configuration variables are created.

ベア リポジトリはmasterコミット ポインターを にマップしませんrefs/remotes/origin/masterが、マップする必要はありません。ベア リポジトリは、他のユーザーがリモートを設定する場合に不可欠pushですpull日々の開発作業を行う場所ではありません。を持っているようですねorigin。別のリモートをセットアップしていない限りgit clone //myserver/myshare/myproject.git、ローカル リポジトリに固執します。

于 2012-06-20T03:18:20.853 に答える
0

git branchヘルプから:

-a, --all : リモート追跡ブランチとローカル ブランチの両方を一覧表示します

-l, --list : ブランチ名をリストします

-r, --remotes : リモート追跡ブランチに作用する

リモート リポジトリのブランチを一覧表示するオプションはないようです。ただし、ベア クローン作成中にローカル リポジトリにあった場合、ブランチは存在します。コツは、ここの文言に注目することです。リモート追跡。そしてgit branch -a、ローカルブランチとともに、リモートブランチを追跡するために設定した可能性のあるブランチを表示することです-ちなみに、これはgit remote add <name> <url>コマンドが行うことではありません. これは単にリモートを設定するだけです。ブランチ追跡なし。

したがって、実際に試していたことを実際に行うには、次のようなものが必要です。

(somehow)cd //myserver/myshare/myproject.git && git branch --list

または、//myserver/myshare/myproject.git/refs/heads または //myserver/myshare/myproject.git/packed-refs でチェックインして、ブランチが存在することを確認できます。

最後に、作業用のリポジトリではなく、共有リポジトリをセットアップするにgit clone --bareは、 が適切な方法です。このオプションを指定しないと、--bareクローンを作成した後、git はクローンされたリポジトリの HEAD ブランチの作業ツリーをチェックアウトします。

于 2021-03-13T14:49:18.153 に答える