2016-12-24 13 views
1

私はGitとGithubには新しいと言わなければならない、私はそのような基本的な質問のために事前に謝罪する。 GitHubで初めてのPHP「larval package」プロジェクトを作成しました。複数のコミットを行い、Git Bashを使ってそれらをGitHubにプッシュしました。githubで同じプロジェクトの2つの異なるバージョンを維持する正しい方法は何ですか?

私のコードは、安定した状態で十分に安定しています。誰もがダウンロードできるようにするにはどうすればいいですか?

一度、最初のバージョンをダウンロードできるようになりました。次のリリースでさらに機能を追加する予定の開発用の別のバージョンを作成したいと思います。

私は少なくとも安定版と別の開発版で終了したいと思います。誰かが私のプロダクションバージョンでバグを報告した場合は、それをパッチしてプロダクション版にコミットする必要があります。「devである新しい未来はパッチに含まれません」

これに対応する最善の方法は何ですか?同じプロジェクトの複数のバージョンを作成し、簡単に管理するためにどのようなコマンドを使用しますか?新しいバージョンを1つのバージョンに追加し、他のバージョンのみにパッチを適用できます。

+0

Gitでブランチを作成します。 –

答えて

0

支店

マスター・コミットの一部をマージし、開発し、別々のブランチ(例えばproduction)についてmaster支店を持つことができます。異なるバージョンのトラッキングを続行するには、tagを使用できます。

GitHubでは、本質的にレポのスナップショットであるreleasesを作成することができます。

1

これを行う最適な方法は、分岐によるものです。

状況によっては、master(デフォルト)とdevelop(またはその行に沿ったもの)と呼ばれるブランチがあることを意味します。

This tutorialは、ブランチを取得するのに役立ちます。

あなたはdevelop枝の上にあなたの開発を行うことになるでしょうgit checkout [name]

を使用し、そのブランチに切り替えるにはgit branch [name]

を使用し、新しいブランチを作成します。 develop支店が出荷希望の状態にある場合は、mergemasterに入力することができます。これにより、本番ブランチに新しい変更が反映されます。

このワークフローについて質問があり、私は答えようとすることができます。ここで

+0

Edoardoが述べたように、リリースは別のオプションです。リリースは、ブランチの特定のポイントを本番バージョンとしてタグ付けするために使用できます。リリースを使用すると、単一のブランチだけを使用できます。 – tehp

+0

リリースを使用すると、**異なるバージョンを維持することはできません。 –

1

  1. あなたは仕事とマスターブランチにコミットそれを行うための簡単な方法です。誰かがあなたにプルリクエストを与えるならば、コードをマスターにマージします。あなたは、コードをリリースする準備ができていると考えたら

  2. は、git branch release_vX.Y.Zによってリリースされた名前を持つ新しいブランチを作成します。

  3. あなたのコードをテストしながら、git tagによってコミットリリース上のタグを作成しますgit cherry-pick

  4. でmasterブランチへの変更を桜が-選ぶリリースブランチ上のバグを修正。

あなたが大規模なプロジェクトで動作する場合は、より良い方法は、あなたがdevのようなあなたの個人的なブランチで作業

  1. で、チェックインおよびごdevブランチにあなたのコードをコミットして自由に感じます。

  2. 誰かがプルリクエストを作成する場合、そのコードをマスターにマージします。

  3. 作業が完了したら、devブランチへの変更をすべてコミットします。 githubのと、その後

    3.1同期mastergit checkout master && git pull 3.2によってgit checkout dev; git rebase origin/masterにより最新の変更にごdevブランチをリベース。競合を解決してコミットする必要があるかもしれません。 3.3すべてのdevを1つのコミットにマージします。 git reset masterは、コミットログをマスターにリセットしますが、変更を保存してからgit addすべての変更を行い、git commitは新しい単一コミットを作成します。 3.4を使用すると、コードが十分に安定していると考えられる場合は、あなたがテストとバグフィックスのためのリリースを作成することができますgit checkout master; git merge dev

  4. によってmasterブランチにごdev変更をマージ。テストやバグ修正がなければ、git tag release_vX.Y.Zによってコミット時にリリースタグを作成することができます。

Atlassianには、Gitの一般的なソフトウェア開発ベースのgitワークフローに関する素晴らしいドキュメントがあります。ここにリンクがありますhttps://www.atlassian.com/git/tutorials/comparing-workflows

関連する問題