致命的:有効なオブジェクト名ではありません: 'master'

私はgit 1.7を実行しているプラ​​イベートサーバを持っています 私が

git init 

フォルダはマスターブランチを作成しません。 私がするときに原因:

git branch 

それは何も表示されません。 私がする時:

git --bare init

ファイルを作成します。 私が入力するとき

git branch master 

それは言う:

fatal: Not a valid object name: 'master'.
127
新しいブランチを生成しようとしたときの同じ結果: git branch newbranch
追加された 著者 Sören,

5 答え

フォルダを git init するとマスターブランチが作成されません

これは真実であり、期待される行動です。 Gitはあなたが何かをコミットするまで master ブランチを作成しません。

git --bare init を実行すると、ファイルが作成されます。

非裸の git init は、プロジェクトのルートに隠された .git ディレクトリに同じファイルを作成します。

git branch master と入力すると、「致命的:有効なオブジェクト名ではありません:「マスター」」

それは再び正しい動作です。あなたがコミットするまで、マスタはありません

あなたは質問をしていませんが、私はあなたが尋ねることを意味すると答えた質問に答えます。ディレクトリに1つ以上のファイルを追加し、それらを git add してコミットを準備します。次に、最初のコミットと master ブランチを作成するために git commit を実行します。

192
追加された
@Jemenake次に、リポジトリを初期化し、コミットしてブランチの名前を変更します。これまで作成された "master"ブランチを避けたい場合は、 .git/HEAD を編集して refs/heads/master refs/heads /メインが、これを行うには全く理由がありません。最初のコミット後にブランチの名前を変更するだけです。
追加された 著者 meagar,
最後の部分は金色でしたが、TFS GITには完全に初期化されていないgit repoが付属しています。 SourceTreeを使って最初のクローンを作成した後、何も動作しないので、「git commitを実行して最初のコミットとマスターブランチを作成する」まで、長い間把握できませんでした。最初のコミット/プッシュなしでマスター/ローカル/リモートを持つ方法はありませんか?
追加された 著者 Pawel Cioch,
では、 "master"と呼ばれるブランチポインターを全く必要としないのはどうでしょうか?もしそれを「メイン」と呼んでいたらどうですか?最初のブランチ・ポインタの別の名前で開始する方法はありませんか? "git init"パラメータはありませんか? .git/HEADに記載されている名前を変更することができますか?変更する必要がある他のファイルもありますか?
追加された 著者 Jemenake,
git checkout -b を使ってHEADを変更することができます。ファイルを編集する必要はありません。
追加された 著者 Superfly Jon,

最初のコミットを済ませたら、Gitはマスターブランチを作成します。リポジトリにコードがない場合、ブランチを持つことは何もありません。

15
追加された
しかし、あなたはマスターに押し入るために新しい支店が必要です。
追加された 著者 Sören,

最初に、 "ベアリポジトリ"を作成するときには、それを使って作業するつもりはありません(作業コピーは含まれていないので、 git branch コマンドは役に立ちません) 。

さて、 git init を実行しても master ブランチを持たない理由は、コミットがないということです。最初のコミットを作成すると、 master というブランチを作成します。

14
追加された
@RoyvanZanten git clone を使うと、受信側で git init を行う必要がなくなります。
追加された 著者 Borealid,
@RoyvanZantenあなたはサーバーリポジトリまたはサーバー作業コピーを見ていますか? WCに .git ディレクトリ(プッシュした場所)の内容を反映させるには、 git checkout を実行する必要があります。
追加された 著者 Borealid,
@RoyvanZantenあなたがチェックアウトしてファイルを検査しようとしている場合、あなたは本当に本当に裸のレポを望んでいません。あなたの世界が意味を成すためには、作業コピーとリポジトリの違いを知る必要があります。何が起こっているのは、ファイルをサーバーにプッシュしたことです。成功するとサーバーのリポジトリ .git ディレクトリの内容)に配置されます。私が何を意味するのか見てみると、サーバーから新しい git clone を試してみてはいかがですか?私はあなたの変更がそこにあると確信しています。
追加された 著者 Borealid,
さて、それは明らかです。しかし、私がコミットすると言う:致命的:空のident
追加された 著者 Roy van Zanten,
私はそれをに固定した。しかし、私がこのレポを他のコンピュータからプル/フェッチしたいとき。そこにgit initをするべきですか?
追加された 著者 Roy van Zanten,
私はそれをすべて稼働させることができました。エラーはありません。しかし、私が押してみると、以下のように書いてあります。 bla> Total <3/3>をSERVERに59fa0tweirdcod04 master> masterしかし、サーバ上のファイルをチェックすると何もありません。
追加された 著者 Roy van Zanten,
ファイルは私のローカルマシン上にあり、私はそれらをサーバーリポジトリにプッシュする必要があります。私はちょうどそれがサーバーにブランチをプッシュするのを見た。しかし、ファイルはありません。そして、私がサーバー上でチェックアウトをするとき、私は働いている木にはないと言っています。
追加された 著者 Roy van Zanten,
また...私はサーバーリポジトリでgit --bare initをやった。
追加された 著者 Roy van Zanten,
だから、私はサーバリポジトリでgit initを実行する必要がありますか?なぜなら、リモートにプッシュするだけで、サーバーにレポがないということです。あなたが私に言ったように、私はローカルマシンにgitクローンを行い、空のブランチをクローンしたと言った。
追加された 著者 Roy van Zanten,

新しいブランチを作成する前に、マスターに少なくとも1回コミットする必要があります。

6
追加された
  1. 正しいディレクトリに移動していることを確認します(同じ名前を持つ2つのフォルダがサーバ内にない場合がありますが、それは1度しかありません)。
  2. すべてをうまく動作させるには、コミットする必要があります。
0
追加された