1

私はかなり長い間mercurialを使用していましたが、新しいチームがデフォルトのバージョン管理ツールとして使用しているため、gitに切り替えました。

説明させてください-マーキュリアルでは、ビットバケットからプロジェクトを複製し、プロジェクトにいくつかの変更を加えます。次に、再度 bitbucket からプルし、変更を bitbucket で変更されたすべてのものとマージします。それから私はすべてをプッシュします。

gitでも同じように動作しますか? プロジェクトのクローンを作成し、いくつかの変更を加え、それらにいくつかのコミットを行いました。今、プロジェクトをプルしました。マージしたいと思います。これらの前の手順は正常に機能しますが、マージは少し異なるか、少なくとも私には異なって見えます. サーバーからプルしたばかりの新しいコミットとコミットをマージするにはどうすればよいですか?

PS: 私の変更とサーバーでの変更の両方がメイン ブランチで行われました。2 つのブランチをマージするつもりはありません。

4

4 に答える 4

1

仲間の Mercurial ユーザーとしての私の理解では、Git ではすべてのヘッドに一意の名前を付ける必要があります。したがって、新しい名前を付けない限り、新しい頭は作成されません。したがって、Mercurial では次のようにします。

hg pull   / git pull
hg commit / git commit
hg commit / git commit

----B----C1----C2 

最初にプルしたベース リビジョンはどこBにあり、C1 と C2 は変更内容です。次に、サーバーから更新をプルします。

hg pull

----B----C1----C2
     \
      ----o----o----o

別の頭を作成する必要があったため、Git はこれを行いません。したがって、サーバー上で変更をリベース/移植する必要があります。

git pull --rebase

----B----o----o----o----C1----C2

別の方法は、Git で作業を開始するときに、頭の名前を作成することです。Git はこれをブランチと呼び、Hg はブックマークと呼びます。

hg pull     / git pull
hg bookmark / git branch
hg commit   / git commit
hg commit   / git commit

----B----C1----C2 
                ^ New-Feature

これで頭に名前が付けられました (この場合は「New-Feature」)。これで、Git は Hg と同じように喜んでプルします。

hg pull / git pull

----B----C1----C2
     \          ^ New-Feature
      ----o----o----o

その後、同じ方法でマージすることもできます。

于 2013-04-14T08:49:47.313 に答える