別のブランチからGitでブランチを作成します
-
11-10-2019 - |
質問
私には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」 手順に従ってください:
チェックアウトまたは変更 「branch1」
git checkout branch1
次に、新しいブランチを作成します 「subbranch_of_b1」 下 「branch1」 次のコマンドを使用します。
git checkout -b subbranch_of_b1 branch1
上記は、呼ばれる新しいブランチを作成します subbranch_of_b1 支店の下 branch1 (ご了承ください
branch1
上記のコマンドでは、頭が現在指しているため、必須ではありません。ただし、別のブランチにいる場合は正確にできます。と一緒に働いた後 subbranch_of_b1 ローカルまたはリモートでコミットしてプッシュまたはマージすることができます。
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 switch
と git 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チェックアウト
別のブランチからブランチを作成したい場合は、次の手順に従ってください。
仮定:
- あなたは現在マスターブランチにいます。
- コミットする変更はありません。 (コミットする変更がある場合は、それを隠してください!)。
BranchExisting
名前付きの新しいブランチを作成する必要があるブランチの名前ですBranchMyNew
.
ステップ:
ブランチをローカルマシンに連れて行きます。
$ git fetch origin BranchExisting : BranchExisting
このコマンドは、同じブランチ名でローカルに新しいブランチを作成します。
さて、マスターブランチチェックアウトから新しくフェッチしたブランチまで
$ git checkout BranchExisting
あなたは今、branchexistingにいます。次に、この既存のブランチから新しいブランチを作成します。
$ git checkout -b BranchMyNew
どうぞ!
別のブランチを作成するには、この構文も使用できます。
git push origin refs/heads/<sourceBranch>:refs/heads/<targetBranch>
「Git Checkout -B」 +「Git Push Origin」よりも少し短いです