1376

masterdevの 2 つのブランチがあります。

devブランチから「feature ブランチ」を作成したいと考えています。

現在、ブランチ dev で、私は次のことを行っています。

$ git checkout -b myfeature dev

... (いくつかの作業)

$ git commit -am "blablabla"
$ git push origin myfeature

しかし、ブランチを視覚化した後、次のようになりました。

--**master**
------0-----0-----0-----0-----0
------------------------**dev**----**myfeature**

つまり、ブランチが ff マージされたように見えますが、その理由がわかりません...

私が間違っていることは何ですか?

別のブランチから分岐して、フィーチャー ブランチのリモート リポジトリにプッシュ バックする方法を教えてください。

here で説明されているような分岐モデルのすべて。

4

10 に答える 10

1946

投稿したリンクのメソッドが気に入った場合は、GitFlowをご覧ください。

これは、彼がそのワークフロー用に作成した一連のスクリプトです。

しかし、あなたの質問に答えるために:

$ git checkout -b myFeature dev

開発からMyFeatureブランチを作成します。あなたの仕事をしてから

$ git commit -am "Your message"

次に、早送りせずに変更をdevにマージします

$ git checkout dev
$ git merge --no-ff myFeature

次に、変更をサーバーにプッシュします

$ git push origin dev
$ git push origin myFeature

そして、あなたはそれをあなたが望むように見るでしょう。

于 2010-12-17T13:23:08.950 に答える
578

Git の既存のブランチから新しいブランチを作成する場合は、オプションに従ってください。

最初に、新しいブランチを作成する場所からブランチに変更/チェックアウトします。たとえば、次のようなブランチがあるとします。

  • 主人
  • 開発者
  • 支店1

したがって、 「branch1」という名前のブランチの下に「subbranch_of_b1」という新しいブランチを作成する場合は、次の手順に従います。

  1. チェックアウトまたは「branch1」に変更

    git checkout branch1
    
  2. 次のコマンドを使用して、 「branch1」の下に「subbranch_of_b1」という新しいブランチを作成します。

    git checkout -b subbranch_of_b1 branch1
    

    上記は、ブランチ branch1 の下にsubbranch_of_b1という新しいブランチを作成します(上記のコマンドでは、HEAD が現在それを指しているため必須ではないことに注意してくださいbranch1。ただし、別のブランチにいる場合は正確に指定できます)。

  3. subbranch_of_b1を操作した後、ローカルまたはリモートでコミットしてプッシュまたはマージできます。

別のブランチの下にブランチを作成するサンプル グラフィック図

subbranch_of_b1 をリモートにプッシュします

 git push origin subbranch_of_b1 
于 2015-09-04T07:00:06.483 に答える
29

ローカル ディレクトリに別のブランチからブランチを作成するには、次のコマンドを使用できます。

git checkout -b <sub-branch> branch

例えば:

  • 作成する新しいブランチの名前 'XYZ'
  • XYZ を作成する必要があるブランチ ABC の名前
git checkout -b XYZ ABC
于 2019-11-19T23:15:39.290 に答える
17

Git 2.23 ではgit switchgit restoregit checkout

git 2.23 の既存のブランチから新しいブランチを作成する:

git switch -c my-new-branch

新しいブランチ「my-new-branch」に切り替えました

  • -c--createの略で、よく知られているgit checkout -bを置き換えます

変更をより詳細に説明しているこのGithub ブログ投稿をご覧ください。

Git 2.23 では、新しい実験的なコマンドのペアが既存のコマンド スイートに追加されました: git switchgit restore。これら 2 つは、最終的には、よく知られている git チェックアウトのより優れたインターフェイスを提供することを目的としています。新しいコマンドは、それぞれが明確に分離されており、 git checkoutの多くの責任がきちんと分割されています。

于 2019-08-18T22:33:08.453 に答える
13

devブランチで同時作業を行います。あなたのシナリオでは、フィーチャー ブランチが dev ブランチの先端から前方に移動しますが、dev ブランチは変更されません。直線で描いた方が前進と考えられるので描きやすいです。あなたは dev のポイント A にたどり着き、そこからは単純に並行した道を進みました。2 つのブランチは実際には分岐していません。

ここで、マージする前に dev でコミットを行うと、再び同じコミット A から開始しますが、機能は C に、dev は B に移動します。これにより、視覚化しようとしている分割がブランチとして表示されます。現在分岐しています。

*-----*Dev-------*Feature

       /----*DevB
*-----*DevA
       \----*FeatureC
于 2014-12-05T14:46:12.130 に答える