質問

私には2つの枝があります: 主人開発者

から「機能ブランチ」を作成したい 開発者 ブランチ。

現在、Branch Devで、私はします:

$ git checkout -b myfeature dev

... (多少の仕事)

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

しかし、枝を視覚化した後、私は次のようにしました:

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

枝がFFが合併したように見えることを意味します、そして私は理由がわかりません...

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

別のブランチから分岐して、機能ブランチのリモートリポジトリに押し戻す方法を説明していただけますか?

そのような分岐モデルで ここで説明するもの.

役に立ちましたか?

解決

投稿したリンクのメソッドが気に入ったら、 gitフロー.

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

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

$ git checkout -b myFeature dev

devからmyfeatureブランチを作成します。あなたの仕事をして、それから

$ git commit -am "Your message"

次に、あなたの変更を早送りすることなく開発者にマージします

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

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

$ git push origin dev
$ git push origin myFeature

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

他のヒント

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

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

  • 主人
  • 開発者
  • branch1

だからあなたが呼ばれる新しいブランチを作成したい場合 「subbranch_of_b1」 名前付きのブランチの下 「branch1」 手順に従ってください:

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

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

    git checkout -b subbranch_of_b1 branch1
    

    上記は、呼ばれる新しいブランチを作成します subbranch_of_b1 支店の下 branch1 (ご了承ください branch1 上記のコマンドでは、頭が現在指しているため、必須ではありません。ただし、別のブランチにいる場合は正確にできます。

  3. と一緒に働いた後 subbranch_of_b1 ローカルまたはリモートでコミットしてプッシュまたはマージすることができます。

A sample Graphical Illustration Of Creating Branches Under another Branch

subbranch_of_b1をリモートに押します

 git push origin subbranch_of_b1 

ブランチを作成します

  • マスターブランチがチェックアウトされたらブランチを作成します。ここで、マスターでコミットされ、作成したブランチに同期されます。

    $ git branch branch1

  • Branch1がチェックアウトされたときにBranchを作成します。ここでは、branch1でコミットされます2はBranch2に同期されます

    $ git branch branch2


ブランチをチェックアウトします

gitチェックアウトコマンドスイッチブランチまたはワーキングツリーファイルの復元

  • $ git checkout branchname

ブランチの改名

  • $ git branch -m branch1 newbranchname

ブランチを削除します

  • $ git branch -d branch-to-delete
  • $ git branch -D branch-to-delete ( マージされたステータスをチェックせずに強制削除 )

ブランチを作成および切り替えます

  • $ git checkout -b branchname

完全に含まれている枝

  • $ git branch --merged


************************** ブランチの違い git diff branch1..branch2] ********************

マルチラインの違い
  • $ git diff master..branch1
シングルラインの違い
  • $ git diff --color-words branch1..branch2

で同時作業を行います dev ブランチ。何が起こるかは、シナリオでは、特徴ブランチが開発部門の先端から前方に移動するが、開発ブランチは変更されないことです。それは前進的な動きと考えることができるので、直線として描くのは簡単です。あなたは開発者を指すようにしました、そして、そこからあなたは単に平行した道を続けました。 2つのブランチは実際には分岐していません。

さて、あなたがdevでコミットを行うと、マージする前に、あなたは再び同じコミットで始まります、aになりますが、今では機能はCとdevに行きます。今、分岐しています。

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

       /----*DevB
*-----*DevA
       \----*FeatureC

GIT 2.23が紹介します git switchgit restore の責任を分割する git checkout

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

git switch -c my-new-branch

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

  • -C 略です - 作成 よく知られているものを置き換えます gitチェックアウト-b

を見てみましょう これ Githubのブログ投稿の変更をより詳細に説明する:

GIT 2.23は、既存のスイートに新しいペアの実験コマンドをもたらします。 gitスイッチgitの復元. 。これら2つは、最終的によく知られているGitチェックアウトのためのより良いインターフェイスを提供することを目的としています。新しいコマンドは、それぞれが明確な分離を持ち、多くの責任をきちんと分裂させることを意図しています gitチェックアウト

別のブランチからブランチを作成したい場合は、次の手順に従ってください。

仮定:

  1. あなたは現在マスターブランチにいます。
  2. コミットする変更はありません。 (コミットする変更がある場合は、それを隠してください!)。
  3. BranchExisting 名前付きの新しいブランチを作成する必要があるブランチの名前です BranchMyNew.

ステップ:

  1. ブランチをローカルマシンに連れて行きます。

    $ git fetch origin BranchExisting : BranchExisting
    

このコマンドは、同じブランチ名でローカルに新しいブランチを作成します。

  1. さて、マスターブランチチェックアウトから新しくフェッチしたブランチまで

    $ git checkout BranchExisting
    
  2. あなたは今、branchexistingにいます。次に、この既存のブランチから新しいブランチを作成します。

    $ git checkout -b BranchMyNew
    

どうぞ!

別のブランチを作成するには、この構文も使用できます。

git push origin refs/heads/<sourceBranch>:refs/heads/<targetBranch>

「Git Checkout -B」 +「Git Push Origin」よりも少し短いです

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top