0

最近svnからgitに移行しましたが、初心者の質問はご容赦ください。

リリースプロセスでは、マスター(および開発ブランチ)に対してコーディングします。数週間に1回リリースがあり、その時点でブランチを作成し、そのブランチに対してリリースします。

バグ修正はブランチに進み、リリースサーバーをそれらの修正で更新します。

さて、これをgitで実行してリリースブランチに変更をコミットしようとすると、マスターがorigin / masterと同期していない限り、変更をコミットしてブランチにプッシュできません。多くのリリースブランチがある場合、これは厄介になります。リリースのバグを修正してチェックインする前に、それぞれが同期していることを確認する必要があります。

この問題をどのように解決しますか?

4

3 に答える 3

2

私のチームは現在、SVNで説明したとおりにリリースを実行しています。トランク、ブランチ、リリースに対するコード。

Gitを使用すると、ワークフローが変更されます。master本番環境と一致し、変更されることはありません。ブランチの作成と削除は簡単で、Gitでは「チップとして安価」であるため、すべての変更/修正プログラム/開発は常にブランチに対して行われます。これにより、各開発を個別に追跡することもできます。

開発が完了してテストされたら、に対してマージしmaster、タグを付けてリリースします。ホットフィックスの場合は、に分岐master、テスト、リリース、およびマージしmasterます。

他のブランチで開発している人は、を使用してブランチを簡単に最新の状態に戻すことができますmerge

githubがgitを使用してどのように開発されるかを見てください。これは、あなたの質問に答える非常に興味深い読み物です-https ://github.com/usm-data-analysis/usm-data-analysis.github.com/wiki/Developing-with-ギット

于 2012-01-09T09:29:21.297 に答える
0

「gitpush」をしているだけですか?「gitpushoriginsomebranch」を使用して、(名前が一致するすべてではなく)単一のブランチをプッシュできます。

于 2012-01-09T10:12:00.920 に答える
0

プレーンを使用していますgit push。デフォルトでgit pushは、すべてのブランチをプッシュしようとします。push.default=trackingを使用するように構成を設定できます。

git config push.default tracking

また

git config --global push.default tracking

push.default = trackingを使用git pushすると、現在のブランチのみがプッシュされます。

于 2012-01-09T15:30:14.810 に答える