0

以前、私のコードは恐ろしいバグに感染し、大混乱を引き起こしました。長い戦いの後、私は$git checkoutバグの前にコミットすることにしました。

そして$git branch、ブランチ「(ブランチなし)」がマークされたリストを返します。masterこれをブランチにマージするにはどうすればよいですか (それは正しいですか?) 。

おまけの質問: "(no branch)" とはどういう意味ですか? それは本当に枝ではないでしょうか?

4

2 に答える 2

3

はい、それは本当に「ブランチなし」である可能性があります。「ヘッドが外れた」という状態で走っています。注意しないと、変更が失われます。ヘッドが切り離された状態では、gitは参照を更新していません。その結果、他のブランチをチェックアウトすると、現在の場所とそれに伴う変更を追跡できなくなる可能性があります。

まず、ブランチに名前を付けます。

$ git checkout -b new-branch-name

次に、マスターブランチを新しいブランチのように見せたい場合は、いくつかの選択肢があります...マスターの履歴を失う可能性のあるものと、マスターの履歴を保持するものがあります。後者が欲しいと思います。

最も簡単な方法は、新しいブランチで次のコマンドを実行することです。

$ git merge -s ours master

これによりマスターが導入されますが、-s oursオプションによる変更は適用されません(これによりours マージ戦略が選択されます)。次に、マスターをチェックアウトして、以下を実行します。

$ git checkout master
$ git merge new-branch-name

その時点で、masterはnew-branch-nameのようになります。

于 2012-12-03T11:39:50.307 に答える
0

何が起こっているのかよくわからなくても、なんとか問題を解決できました。私は枝$git checkout masterにいるためにしました。master

次に、ブランチを作成しました$git branch name_of_my_new_branch 12the39id9843of8old38branchが、バグはどこにもありませんでした。なぜ git がこのように動作するのかはまだ謎ですが、誰かが謎の(no branch)ブランチに初めて遭遇した場合、これは少なくともホームmasterブランチに安全に到達するのに役立つかもしれません.

于 2012-12-03T11:29:04.147 に答える