3

私はgitを初めて使用し、gitとegitをどのように使用するかについて頭を悩ませています。egitチュートリアルから、GitHubにリポジトリをセットアップし、EclipseプロジェクトをローカルワークスペースからリモートGitHubリポジトリにプッシュし、変更をGitHubにプッシュしたり、ブランチを切り替えたり、GitHubの更新を確認したりできます。これはすべて理にかなっています。

Gitリポジトリエクスプローラーを見ると、「ローカル」ブランチのリストがあり、「リモートトラッキング」ブランチがなく、「リモート」のリストもありません。ローカルブランチからブランチを作成すると、egitダイアログに「ローカルブランチに基づいてブランチを作成しています」と表示され、リモートトラッキングブランチからブランチを作成する必要があることが示されます。

だから私の質問は、私は正しくegitを使用していますか?

リモートのGitHubリポジトリに変更をプッシュし続ける必要がありますか?もしそうなら、私がプロジェクトを共有し、他の開発者がリポジトリのクローンを作成し、リモートリポジトリに変更を加え始めるとどうなりますか?

または、ワークスペースから最初に作成した既存のGitHubリポジトリのクローンを作成して、ローカルリポジトリを破棄し、新しいリモートリポジトリをセットアップする必要がありますか?

または、既存のgitリポジトリ用に新しいプッシュアンドフェッチ「リモート」を作成しますか?

または、他の何か?

混乱している。

4

2 に答える 2

4

ローカルシステムでリポジトリを作成し、リモートを作成せずにそれをgithubにプッシュしたため、リモートが手元にありません。リモートは、リモートリポジトリのURLの単なる短いエイリアスです。これを修正するには、リポジトリビューからリモートおよびプッシュアンドフェッチ構成を作成します。ローカルリポジトリにリモートトラッキングブランチを設定するには、フェッチを1回実行する必要があります。これが完了するとすぐに、すべてのパラメーターをその場で定義できる、より複雑な[チーム]> [プッシュ...]ダイアログの代わりに、[アップストリームにプッシュ]を使用できます。ネイティブのgitコマンドラインを使用すると、そこに実装されているのと同じ概念が見つかります。

"$ git push [url] [refspec]"(例: "$ git push https://github/user/myrepo.git master:master")を使用すると、すべてのパラメーターを明示的に渡します。これは、Team>Push..に似ています。 EGitで

"$ git push [remote]"(例: "$ git push origin")を使用して、指定されたリモートの構成パラメーターで定義されたリポジトリーにプッシュします(.git / configをチェックしてこれらのパラメーターを確認するか、egit設定からリポジトリー構成を開きます。 Eclipse)、これはEGitのTeam> Pushtoupstreamに似ています。通常、この方法で使用されるrefspecは、リモート追跡ブランチに基づいてローカルブランチを作成するときに暗黙的に構成されます。この構成を後で追加することも可能ですが、これは面倒な手動構成であるため、他の方法の方が便利です。

リモートリポジトリのクローンを作成すると、クローン元のリポジトリがリモートの「オリジン」としてクローンに保存されます。このようにして、リモートの手動構成をスキップできます。これは、リポジトリを最初から作成するときにリポジトリが作成された場合にのみ必要です。

于 2011-08-02T18:56:52.020 に答える
3

Egitユーザーガイド「分岐」セクションが役立ちます。

ブランチ作成ダイアログ

リモートトラッキングブランチのような名前のローカルブランチを作成する義務はありません(「リモートトレースブランチ」をよく理解するには、「理解に苦労している」を参照してください)。git-fetch

必要な数のローカルブランチ(つまり、どこにもプッシュする必要のないブランチ)を作成できます。

ただし、リモートブランチが表示されない場合は、そもそもそのGitHubリポジトリをフェッチしていなかった可能性があります。フェッチを参照してください。

于 2011-07-05T04:08:52.943 に答える