ホームページ  >  に質問  >  本文

git-gui - gitlab 如何跨分支merge?

现在我的同事A起了一个项目,分之为A,里面有一些说明和common.css等组件;
然后B同事新建分之B,
C同事在本地切换到B分之并创建C分之
然后B,C同事分别在各自的分支开发
开发完毕并且推送到远程,需要将项目内容合并到一个分支

问题1:能否将B分支合并到C分支或者C分支合并到B分支?

问题2:能都将B、C分支均合并到A分支?

问题3:merge to working tree和fast-forward merge有何区别?

另外,不希望rebase。
高洛峰高洛峰2727日前728

全員に返信(6)返信します

  • 某草草

    某草草2017-05-02 09:49:26

    皆さんはパブリック開発ブランチを持っていませんか?
    dev から開発ブランチをプルします。開発が完了したら、全員がそれを dev にマージします。
    競合と競合の解決があります。

    返事
    0
  • 高洛峰

    高洛峰2017-05-02 09:49:26

    まず第一に、ネイティブ git はブランチの作成とマージをサポートしています 1 そのため、git に基づくすべてのコード バージョン管理ツール (gitlab/github など) もデフォルトでブランチ機能をサポートしています(gitlabには権限管理機能も追加されます)

    さらに、対象プロジェクトの大きな問題は @52lidan が言ったように dev ブランチがないため、コードのバージョン管理 (ブランチ A かどうか) が混乱します。 B または C が最良のメインですか?) したがって、件名への提案は次のとおりです: dev分支导致代码版本管理混乱(到底是A还是B还是C分支是最主要的?), 所以给题主的建议是:

    1. 项目要有如下的分支

      • master: 正式可以发布到生产环境的代码分支(protected)2

      • dev: 经过开发与初步测试后, 可以正常工作的代码分支, 用以合并所有人的工作以及已经修复的bug(protected)

    2. 每一个任务新建一个分支, 人跟着任务走而不是任务跟着人走. 也就是说, 在远程库上, 该任务只有一个分支, 并且所有人都拉取到本地上. 所有人关于该任务的工作都需要在本地commit后再推送到任务分支. (不建议一个任务有多于三人协作, 否则分解任务为更多的分支)


    1. git分支的新建与合并 ↩
    2. gitlab中可以将分支设置为protected, 该分支只有项目中获得owner/master权限的人才能合并别人提交的merge request <オル> <リ>
    3. プロジェクトには次のブランチが必要です
    • #🎜🎜#master: 運用環境に正式にリリースできるコード ブランチ (保護されています) #🎜🎜#2#🎜🎜##🎜🎜##🎜🎜#
    • #🎜🎜#dev: 開発と予備テストの後、コード ブランチは正常に動作し、全員の作業と修正されたバグをマージするために使用されます (保護されています)#🎜🎜## 🎜🎜#
    #🎜🎜#
  • #🎜🎜##🎜🎜#各タスクは新しいブランチを作成し、タスクが人をフォローするのではなく、人がタスクをフォローします。 つまり、リモート ライブラリでは、タスクにはブランチが 1 つだけあり、全員がローカルでプルします。タスクに対する全員の作業をローカルでコミットしてからタスク ブランチにプッシュする必要があります (#🎜🎜# 3 人以上でタスクを共同作業することはお勧めできません。そうしないと、タスクが分割されます。さらに分岐へ)#🎜🎜##🎜🎜# #🎜🎜# <時間> <オル>
  • git ブランチの作成とマージ ↩ #🎜🎜#
  • gitlab では、ブランチを protected に設定できます。このブランチの owner/master 権限を取得したユーザーのみが送信をマージできます。他の人によって送信された マージ リクエスト ↩ #🎜🎜# #🎜🎜#

    返事
    0
  • PHP中文网

    PHP中文网2017-05-02 09:49:26

    質問の意味がよくわかりません。マージ自体は異なるブランチ間で行われますが、なぜブランチ間でマージできないのですか?

    返事
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-02 09:49:26

    マージが先着順である場合でも、更新をリモート エンドにプッシュせずにローカル開発が完了した場合、どうやってマージを行うことができますか? 少なくともリモート エンドに b が存在する必要があります。そうでない場合は、それを a にマージします。しかし、これは良くありません

    返事
    0
  • 仅有的幸福

    仅有的幸福2017-05-02 09:49:26

    分岐には分岐点が必要です。分岐点から遠ざかるほど、理論上の矛盾が大きくなり、マージには人間の介入が必要になります。人間の介入なしにはマージできない分岐はありません。

    返事
    0
  • 迷茫

    迷茫2017-05-02 09:49:26

    質問 1: できる
    質問 2: できる
    質問 3: わからない

    返事
    0
  • キャンセル返事