1

とブランチorigin/master を作成したいことを指すデフォルトのリポジトリを作成しましたreleaseproduction

オリジン/マスター自体からgitブランチを作成する必要があります

git branch releasegit branch production

また

オリジン/リリースからオリジン/プロダクションを作成する必要があります

git branch release
git push origin release

git checkout release
git branch production

推奨されるアプローチは何ですか

4

3 に答える 3

2

ここでの概念を混乱させていると思います。

どのブランチから新しいブランチを作成するかは重要ではありません。最も重要なポイントは、どのコミットから開始するかです。

gitのブランチとタグは、特定のコミット( DAGで表される履歴を持つ)への単なるポインターです。違いは、タグは通常時間的に静的なままであり、ブランチは通常、コーディングが進むにつれて変化することです。

したがって、基本的に、最初のリリースがある履歴のポイントを取得したら、releaseそのコミットを指すブランチを作成します。(私もタグ付けすることをお勧めします。)

何を達成しようとしているのかわかりません。おそらく実際にはブランチは必要なく、タグで十分です。リポジトリについてこれらの決定を行う前に、pro gitブックを読んで、分岐( pro gitの「タグ付け」の章)とタグ付け(pro gitの「ブランチとは」の章)の概念を理解することをお勧めします。

于 2013-01-14T17:58:24.780 に答える
2

あなたの場合、それは問題ではありません。ブランチ参照(ローカルまたはリモート)はまさにそれです:コミットへの参照。やってる

git checkout master
git branch release
git branch production

また

git checkout master
git branch release
git checkout release
git branch production

最終的にはすべて同じコミットへの参照にすぎないため、まったく同じです(git rev-parse各ブランチ名で実行し、結果を比較することでこれを確認できます)。Gitは、ブランチが作成されたブランチの記録を保持せず、代わりに、ブランチ間の最新の共通コミットが何であったかを知るだけです。

于 2013-01-14T18:02:15.937 に答える
0

remotes/origin/...ブランチはリモートトラッキングブランチです。これらを直接操作しないでください。リモートリポジトリのブランチを追跡する役割を果たします。(たとえば、更新すると更新されますgit fetch <remote-repo-name>。)

質問に答えるには、ローカルマスターからリリースブランチと本番ブランチを作成する必要があります(したがって、以下では、現在のブランチがマスターであると想定しています)。

git checkout -b release
<do some work>
git add .
git commit -m <commit message>
git push -u origin release

git checkout -b新しいブランチを作成し、1つの命令でそれに切り替えます。git push -uリモートとブランチにプッシュし、アップストリーム参照を追加するため、そのブランチにプルしてプッシュするときに、それらを定義する必要はありません。

同じワークフローが本番ブランチにも適用できます(ただし、マスターは通常、本番対応と見なされます)

于 2013-01-14T17:56:10.360 に答える