0

私は Perforce の世界から来て、現在 Git の世界に取り組んでおり、ローカル リポジトリを持つことに関する次の質問があります...

P4 について私が気に入っていることの 1 つは、開発ラインがサーバーに保持されているため、送信をバックアップする必要がないことです (Git のコミットは私が話すと思います)... P4 サーバーを提供している担当者がこれを行ってくれます。 .. それらの非常にいい。

今、私は github と bitbucket を使い始めました。リモートのクローンを作成し、開発ラインを分岐してローカルで作業することはできますが、たとえば github に開発ブランチを置きたいので、変更をサーバーにプッシュしてローカルリポジトリをバックアップできますが、そうではありません開発中にマスター リポジトリに干渉します。

だから、私の質問はどうすればいいですか?これはバージョン管理の分散された世界でよく起こるのでしょうか?それとも、ローカルの開発者はローカル ブランチのバックアップにもっと注意を払う必要があるのでしょうか?...ありがとう...

4

2 に答える 2

2

もちろん、開発ブランチがどこかにバックアップされていたとしても、誰もが自分のコードを欲しがるでしょう。バックアップのためだけでなく、他のコンピューターからアクセスできるようにするためでもあります。

次のシナリオを見てみましょう。

~ $ git clone git@github.com:User/Repo local_repo
~/local_repo (master)$ cd local_repo
~/local_repo (master)$ git checkout -b dev
~/local_repo (dev)$ touch new_file
~/local_repo (dev)$ git add new_file
~/local_repo (dev)$ git commit

devこれで、いくつかの変更を加えた新しいブランチを持つ github 上のリモートのローカル クローンが作成されました。

現在、次の 2 つのシナリオがあります。

  1. Userdevgithubクローンにある場合は問題ありません。これは次の方法で簡単に実行できます。

    ~/local_repo (anything)$ git push origin dev
    

    これは、git にdevブランチをオリジンにプッシュするように指示します。

  2. プッシュできないoriginか、ブランチで汚染したくない場合。このような場合、別のリモートをどこかに作成する必要があります。たとえば、次のようになります。

    ~ $ git clone --bare local_repo /address/to/another/remote
    ~/local_repo (anything)$ cd local_repo
    ~/local_repo (anything)$ git remote add personal /address/to/another/remote
    ~/local_repo (anything)$ git push personal dev
    

    /address/to/another/remotegit が理解でき、書き込み権限がある任意のアドレスである可能性があります。不明な場合は、近くのディレクトリにクローンを作成し、そのディレクトリをサーバーにコピーして、新しいアドレスをgit remote add. または、github で自分のプロジェクトの非公式のクローンを作成し (ここで1 つの方法を参照)、そのアドレスをリモートとして追加することもできます。

于 2013-04-11T14:04:00.997 に答える