0

gitを使用して数か月になりますが、プロジェクトごとに1人の開発者しか作業していません。これは素晴らしく、トピックブランチの概念を理解し、ブランチをリリースしてマージし、リモートサーバーにプッシュアンドプルします。

ただし、同じリポジトリで複数の開発者が作業していると、非常に混乱します。自分が何をしているのか本当にわからないことを示すエラーメッセージが表示されます...

それで、私は何を達成しようとしますか。主な開発者はリポジトリまたはシステムAで作業しています。彼は、ローカルで作業している「バージョン2.0_Alpha」ブランチを作成し、定期的にgitサーバーにプッシュします。マスターは現在リリースされているバージョンです。私は彼を助け、特定の機能を実行したいと思います。リモートブランチ「Version2.0_Alpha」に基づいてローカルブランチ「Feature_15」を作成しました。私は自分の仕事をし、ローカルリポジトリにコミットし、同僚はローカルリポジトリで作業を続けますが、サーバーにもプッシュします。

変更をサーバーにプッシュするときは、「Feature_15」をプッシュできることを望んでいました。その後、私の同僚は彼のコードで作業を続けることができ、彼が何をしたかをチェックアウトする準備ができたら、すべてOKであれば、彼のブランチ「バージョン2.0_Alpha」に戻り、私の「Feature_15」にマージします。

しかし、gitが最初に最新の「バージョン2.0_Alpha」をプルすることを決定したため、これは機能しません。その後、知識と理解に迷いました。

誰かが私が正しい思考の道を進んでいるのにいくつかのステップを逃しているのか、それとも私がこれを間違った方向に進めているのかを教えてもらえますか?

制限された機能のgit-guiを使用していますが、必要に応じてgitExtまたはGit-batchを使用してください。

4

3 に答える 3

0

新しい別のブランチを作成する必要があるときに、リモートブランチ(バージョン2.0_Alpha)を追跡するローカルブランチ(Feature_15)を作成した可能性があります。それが本当なら、リモートの「Feature_15」ブランチを作成するのではなく、ローカルのブランチをリモートの「Version2.0_Alpha」ブランチにプッシュしようとしています。これは間違っていて機能しません。Gitでリモートブランチの追跡を停止するにはどうすればよいですか?を参照してください。それを修正する際に(ローカルブランチを削除する必要はなく、トラッキングを削除するだけであることに注意してください)。

于 2013-02-12T00:58:43.397 に答える
0

あなたが言っていることはすべて(少なくとも私にとっては)良くて正しいように聞こえます。

エラーが発生している場合は、発生しているエラーを正確に示すことができます。

また、ファイルをコミットするときに、どのブランチにいるのかを確認することもできます(git status出力に表示されます)。コミットの履歴を確認するには、いくつかのGUIツール(Linuxではgitkを使用しますが、他にもたくさんあります)を使用するか、コマンドラインを使用します。

git log --graph --pretty=oneline --abbrev-commit --decorate=full --all

最後の--allを、表示するブランチのリストに置き換えることができます。次に例を示します。

git log --graph --pretty=oneline --abbrev-commit --decorate=full origin/Version 2.0_Alpha origin/Feature_15

gitで処理する必要があるのは、最後にプルしてから誰かがすでに何かをプッシュしているブランチに変更をプッシュする必要がある場合だけですが、あなたと同僚が別々のブランチで作業している限り、それは問題にはなりません。

于 2013-02-12T01:00:42.897 に答える
-1

あなたはこのように始めます

A--B--C  Version 2.0_Alpha
       \
        X--Y--Z  Feature_15

それから彼は変更を加えます

A--B--C--D--E--F
       \
        X--Y--Z

HEAD彼がクリーンを実行できるように、変更を彼にリベースする必要がありますmerge

 A--B--C--D--E--F
                 \
                  X'--Y'--Z'

ref

于 2013-02-12T00:56:41.343 に答える