7

Android カーネルでいくつかの作業を行っています。私は git には非常に精通していますが、レポにはあまり詳しくないので、次のドキュメントを読みました: http://source.android.com/source/version-control.html . 私の理解でrepo start BRANCH_NAMEは、トピックブランチを試してみるだけでなく、git checkout -b BRANCH_NAME. 私の理解は正しいですか、それとも見逃している微妙で重要な詳細がありますか?

4

2 に答える 2

6

違いは、.git/config 内でブランチのおよびプロパティをrepo start設定することです。remotemerge

[branch "YOUR_BRANCH_HERE"]
    remote = aosp
    merge = master

これらがないと、リポジトリはrepo upload後で実行したときに変更を適切にアップロードする方法を認識できず、新しいブランチが存在しないかのように動作します。

(リポジトリ内のすべてのプロジェクトの新しいブランチを同時に作成できるロジックもいくつかありますが--all、これは単なる便利なことです。)

于 2014-05-13T22:37:52.580 に答える
3

repo startのstart.pyソースコードを見ると、主な違いはAndroid プロジェクトに含まれるマニフェスト ファイルの管理にあると思います。

マニフェストで指定されたリビジョンから開始して、開発の新しいブランチを開始します。


Trevor Johns回答に追加するには、「既存の Git ブランチがリモート ブランチを追跡するようにするにはどうすればよいですか?」(を使用していない場合repo start)を確認する必要があります。

git checkout -b newBranch -t aosp/master

これにより、新しいブランチに関連付けられた構成でリモートとマージ ( -t= "track") が設定されます。

単純なgit checkout -bものは何も設定せず、純粋にローカル ブランチを作成します (リモート リポジトリへのアップストリーム ブランチを追跡することはありません)。

于 2013-02-22T07:59:39.883 に答える