2016-08-07 4 views
1

win7 64bitでGit Bash 2.9.0-64-bitを使用しています。なぜ `git checkout -b 3_1`を実行した後に私のマスターブランチを失ったのですか?

lec_yaacというgitリポジトリを作成しました。これは、分岐マスターについての関連情報です:

[email protected] MINGW64 /d/Git/lec_yaac (master)

私はコマンドgit checkout -b 3_1を実行した後、それは

[email protected] MINGW64 /d/Git/lec_yaac (3_1)

に変更し、私はいくつかのファイルを追加し、commmited。

しかし、私はgit branchを実行し、それだけのショー、

  • 3_1

分岐マスターについては何もありません。

そしてgit checkout master戻り

error: pathspec 'master' did not match any file(s) known to git.

+1

をコミット –

答えて

1

masterブランチについて特別なことはありません。他のブランチと同じです。そしてブランチはコミットを指すポインタに過ぎません。したがって、ブランチはコミットするとすぐに画像に入ります。

ブランチを自分で作成する前にコミットした場合は、masterブランチを取得しているはずです。あなたが何をしたか

から
1 - あなたがやるべき何3_1

にコミット
1.レポ作成さ
2を作成し、(3_1)新しいブランチに切り替え
3。
2. master(既定のブランチ名)にコミットしました
3.作成して新しいブランチに切り替えました(3_1
4.コミット済み3_1

まだマスターブランチが必要な場合は、作成してください。

git checkout -b master 

これは今、最新のを指してますが、私は[email protected]のため申し訳ありませんが、それを未削除しているあなたの前のブランチに3_1

2

我々はgit initを経由して、空のgitリポジトリを初期化すると、Gitはmasterブランチを作成します。しかし、まだコミットされていないので、コミットを指しているのは単にデフォルトのリファレンスです。 cat .git/HEADを実行し、ref: refs/heads/masterを出力します。 git checkout -b 3_1の後、デフォルトの参照refs/heads/masterrefs/heads/3_1に置き換えられます。ルートコミットを行うと、refs/heads/3_1がそれをポイントします。

別のケースでは、git checkout -b 3_1より前にコミットを行うと、master3_1の両方がgit branchで表示されます。

関連する問題