のフォルダとの間の違いをご説明します。
フォルダは、フォルダ、ディレクトリ以外は何もありません。それはどのブランチにもあり得ます。それは、枝は、複数の人がお互いを乱すことなく、同じプロジェクトで作業できるようにするために使用されたプロジェクトファイル、サブディレクトリ、など一方
が含まれています。 2人がプロジェクトのさまざまな領域で作業しますが、いくつかのファイルを共有しているとしましょう。彼らがしているのは、両方とも自分のブランチを開き、例えばbranch_joe
とbranch_lidi
です。今すぐmaster
にプッシュするのではなく、それぞれが自分のブランチにプッシュします。これを行うことにより、master
(通常はメインプロジェクトに使用されます)がそのまま残ります。彼らは両方ともプロジェクト全体のいくつかのサブ問題について作業を終えた後、ブランチをmaster
に統合します。変更が適用され、マージが行われ、すべてが素晴らしいです。
しかし、なぜ彼らは最初にmaster
にプッシュできませんでしたか?さて、彼らは同じファイル、例えばfoo.c
を変更しているので、問題が発生します。 Lidiがfoo.c
を最初に変更し、master
にプッシュするとします。今ジョーは、同様に押したいと思うが、彼はブランチmaster
の最新コミットではないので、彼はすることはできません。彼はまず引っ張る必要がありますが、foo.c
という新しいバージョンがブランチmaster
にあります。彼がfoo.c
を変更しなかった場合、ローカルバージョンは以前のコミットから来ていることを知っているので、ローカルバージョンは上書きされます。しかし彼がマシン上でfoo.c
を変更したので、gitは混乱します。 Joeのローカルファイルを上書きするか、Lidiがコミットしたファイルや何をするかをコピーするかどうかは不明です。そのような場合は、ファイルを>>>>><<<<
のような行で一時ファイルにマージし、Joeは手動でファイルを編集して、自分が望む変更を選択する必要があります。ご覧のとおり、これは面倒で時間がかかります。
しかし、それぞれが独自のブランチで作業していた場合、Lidiは新しいfoo.c
をbranch_lidi
にプッシュします。ジョーがfoo.c
をプッシュしたいので、彼はbranch_joe
にプッシュし、ブランチは重複しないので、LidiのコミットはJoeのfoo.c
を妨げず、ブランチに問題なくプッシュします。彼らは仕事を終えた後、支店をmaster
に合併します。マージ後、必要のないブランチを削除することもできます。
これは十分説明されていて、私はあなたを失いませんでした。
bugfix/fooはブランチの名前です。それはフォルダやそのようなものではありません。このような命名規則を使用すると、ブランチの目的を簡単に理解できます。彼らはまだ他の支店のような支店です。 –
@JBNizetありがとう!知っておいてよかった。 – Maik