問題タブ [git-flow]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - git-flow機能ブランチとGerritを使用したワークフロー
Gerritでgit-flow機能ブランチを操作するための推奨ワークフローはありますか?ベストプラクティスはありますか?
複数の開発者とGitが管理する中央リポジトリでプロジェクトを開始しています。git-flowをいじってみると、機能が完成していないときに開発者の作業をバックアップする方法として、機能ブランチをGerritにプッシュするという問題に悩まされています。
開発中に機能ブランチをレビューしたくないので、すべての開発者が直接refs / heads / feature / *にプッシュして、魔法のレビューブランチを回避することができます。機能ブランチが開発ブランチにマージされたときにレビューを行いたいのですが、このマージ後に開発者が自分の作業をGerritにプッシュすると、レビューするマージコミットのみがあります。機能ブランチで行われた変更は、このパッチセットには表示されません。これは、これらの変更がrefs / heads / feature / *に直接プッシュされたためだと思います。そのため、Gerritはレビューの必要がなくなったと考えています。
代わりに、開発者は機能ブランチを終了する直前に機能ブランチをGerritにプッシュする必要がありますか?これを行うには、refs / heads / feature/*およびrefs/for / refs / heads / feature / *で参照をプッシュおよび作成する権限が必要であり、レビューブランチにのみプッシュするようにします。
どんな助けでも大歓迎です。
git - @nvieのGitブランチモデルの開発およびテストブランチ?
@nvieのGit分岐モデルとgitflowについて読んだことがありますが、これは現在取り組んでいるプロジェクト(Webアプリケーション)に使用するのに適したモデルだと思います。
私はプロジェクトのリード開発者であり、ローカル環境(MAMPのような)で開発しています。クライアントに見せるために何かを作ったときはいつでも、自分の仕事をコミットして中央のGitホストにプッシュします。そこから、インターネットに接続されているサーバーに展開します。その後、私のクライアントは変更を見ることができます。
2人目の開発者がプロジェクトの作業を開始しました。彼は一度に1つの機能を開発し、準備ができたら中央のGitホストにプッシュします。展開する前に彼の作品をレビューします。
現在、すべてのコミットはmaster
ブランチで実行され、単一のホスト環境にデプロイされます。将来的には、本番環境(実際に使用するため)、テスト環境(リリース直前にアプリの新しいバージョンをテストするため)、および開発環境(完成した機能またはまだクライアントに進行中です)。master
実稼働環境はからデプロイを取得し、開発環境はからデプロイを取得すると思いますdevelop
。
私が持っている質問は次のとおりです。
私はしばしば同時にいくつかのタスクに取り組んでいます。機能の一部の準備ができたら、その機能の作業を続ける前に、クライアントに見せたいことがあります。
develop
ただし、私の理解では、機能(ブランチ)は、それが終了してリリースがスケジュールされたときにのみマージされます。進行中の(またはまだリリースが予定されていない)機能を(開発環境で)クライアントに表示するにはどうすればよいですか?どのブランチからテスト環境にデプロイする必要がありますか?その瞬間のリリースブランチを手動で選択する必要がありますか、それとも専用のテストブランチがありますか?
git - gitは、開発およびマスターするためにさまざまなファイルのセットをコミットします
最近、新しいライブラリの開発を開始し、リビジョン管理にGitを使用しています。非常に人気のあるブログ投稿「成功したGit分岐モデル」に従って分岐を管理することにしました。そろそろ最初のリリースを作成するときです。以下で説明するように、特定のファイルセットの管理についてアドバイスをお願いします。
開発ブランチと機能ブランチでは、コンパイルに使用されるmakefileやdoxygenがドキュメントを生成するために使用するreadme.mdファイルなど、すべての「サポートファイル」が必要です。(これらはほんの数例であることに注意してください。私にはもっと多くの「サポートファイル」があります。)
ブログ投稿には、マスターブランチへのコミットは定義上リリースであるとも書かれています。リリースにすべての「バイナリファイル」(たとえば、コンパイルの結果のオブジェクトファイルとドキュメントを含むhtmlファイルを含む)を含めたいと思います。これらのファイルはマスターブランチにコミットする必要があります。これにより、顧客はタグを使用してリポジトリからクローンを作成し、必要なリリースを取得できます。
私はリリースに「サポートファイル」を含めたくない(顧客が望まない、または使用できないファイルのヒープを顧客に提供したくないため)。同様に、開発ブランチと機能ブランチで「バイナリファイル」をバージョン管理しないようにします。したがって、1セットのファイルを開発用にコミットし、別のセットのファイルをマスター用にコミットしたいと思います。(もちろん、両方のブランチに「共通」のファイルのセットもあります。)ただし、今説明したように、マスターと開発ブランチの同期を維持することに懐疑的です。
私の提案したモデルは良い音ですか?もしそうなら、開発とマスターにコミットされたさまざまなファイルを持つことにどのように対処する必要がありますか?この状況を処理するためのより良い方法はありますか?
上記のブログページのコメントを1つずつ確認し、インターネットを検索し、StackOverflowでも検索しました。検索結果から、いくつかの異なるファイルを含むこの投稿GITリポジトリは、私の質問に近い唯一のリポジトリのようです。これらのどちらも私が解決策を理解するのに役立ちませんでした。
git - 間違ったコミットをカットする方法[git]
私は開発プロセスにgitflowアプローチを適用しようとしていますが、理論的には気に入っています。しかし、どこにもカバーされていないことが1つあります...
develop
誰もが結果をブランチにプッシュします。計画では、実行してベータ版にリリースしてから本番環境にリリースする必要がある10の問題があります。10の問題のうち2つは最終的に修正されていませんが、開発者がうまくやったと思ったため、部分的にはすでに開発ブランチにありますが、テスト後にバグが再び発生します。そして今、2つの問題が修正されるまで待つ必要はなく、アップロードを行う必要があります。つまり、release
ブランチを作成してベータ版でテストする必要があります。
元のgitflowの記事には次のように書かれています。
開発から新しいリリースブランチを分岐する重要な瞬間は、開発が(ほぼ)新しいリリースの望ましい状態を反映するときです。この時点で開発するには、少なくとも、ビルド予定のリリースの対象となるすべての機能をマージする必要があります
develop
しかし、ブランチ履歴でカップルが不要なマージを確認できる場合はどうすればよいでしょうか。どういうわけかカットする必要がありますか?または他に何かしますか?
ありがとう。
git - Merging git-flow hotfixes in sourcetree with fast-forward
I am having difficulties understanding how to merge correctly hotfixes (in the git-flow sense) in SourceTree. The SourceTree website states:
Once you’ve made your changes, the hotfix branch is then merged back into both the master branch (to update the released version) and the development branch (to make sure the fixes go into the next release too)
But when I finalize a hotfix in SourceTree I get this:
Indeed Sourcetree did merge the hotfix into both master and develop but this apparently caused both those branches to diverge, which then forced me to merge develop into master again manually. The resulting structure is plain ugly.
Before the hotfix, both master and develop were on the same commit. Hence I expected that after the hotfix, SourceTree would merge both those branches with the hotfix branch through fast-forward, basically obtaining a simple layout like that:
Here the hotfix "fixing more..." is visible just as a simple commit. Is there any option that would cause SourceTree to merge in a hotfix with such a simple fast-forward merge, basically moving ahead master and develop at the same time? Is there anything I may be missing aobut git or git-flow?
git - Git エラー:「サブモジュールにあります」
ウェブサイトで gitflow を使用していますが、Git を使用してサードパーティのライブラリをダウンロードしましたが、これをメイン リポジトリに追加できません。しようとすると、次のメッセージが表示されます。
致命的: パス 'FILENAME' はサブモジュール 'SUBMODULE_NAME' にあります
実行すると、次のようcat .git/config
になります。
私が行った場合find . -name ".git*"
./libs/3RD_PARTY_NAME/.git
./libs/3RD_PARTY_NAME/.gitignore
。/。ギット
./.gitignore
gitステータスは次のように述べています:
さらに情報が必要な場合は、お知らせください。
ありがとう
git - 選択した機能をリリースする git flow
チームに Git フローを導入しようとしています。私たちはかなり小さなチームであり、非常に機敏です。私たちは 1 日 1 回リリースしたいと考えています。これは、その日のすべての変更をテストする時間が限られていることを意味します。ビジネス チームは、理想的ではありませんが、リリースされる機能を制御できるようにしたいと考えています。
Git フローはこれにうまく対応していないようです。開発からリリース ブランチを切り取った後、選択した機能をマスターにマージする最良の方法は何ですか。チェリーピッキングが唯一の選択肢ですか?より良い方法はありますか?
git - フィーチャー ブランチとリリース ブランチを git-flow に追加する
現在、git フローによって追跡されていない機能ブランチとリリース ブランチがいくつかあります (git-flow を見つけたばかりです)。
これらをそのまま git flow に追加する方法はありますか? それで、それらは後で追跡してマージできますか?
ありがとう
git - Git Flow 分岐モデルから本番環境に移行するための最良の方法は何ですか?
私は最近、開発者の新しいチームに参加し、Git および Git Flow 分岐モデルを作業環境に組み込んでいます。
これまでのところ、開発ブランチとマスター ブランチがリモート リポジトリに設定されています。開発ブランチには、プッシュが見られたときにコードをステージング領域にデプロイする自動フックがあります。また、本番用のコードを含むタグも作成しました。
私の質問は、この状態から本番環境に移行するための最良の、または業界標準の方法は何ですか?
私が見るいくつかのオプションは次のとおりです。
- 本番環境のタグ バージョンからリポジトリを複製します。その後、新しく作成されたタグからプルを行います。
git archive <tag> | tar -x -C /path/to/live/site
新しいタグを使用して本番環境に移行するたびに、これと同様のコマンドを手動で実行します。
git - GitFlowを既存のプロジェクトに統合する方法は?
既存のプロジェクトをGitFlow分岐モデルに統合する必要があります。私がこれまでに見たすべてのガイドは、ベースとして明確なリポジトリを取ります。既存のGitリポジトリに対してGitFlowを実行し、現在の履歴を保持することは可能ですか?