Android カーネルでいくつかの作業を行っています。私は git には非常に精通していますが、レポにはあまり詳しくないので、次のドキュメントを読みました: http://source.android.com/source/version-control.html . 私の理解でrepo start BRANCH_NAME
は、トピックブランチを試してみるだけでなく、git checkout -b BRANCH_NAME
. 私の理解は正しいですか、それとも見逃している微妙で重要な詳細がありますか?
2 に答える
違いは、.git/config 内でブランチのおよびプロパティをrepo start
設定することです。remote
merge
[branch "YOUR_BRANCH_HERE"]
remote = aosp
merge = master
これらがないと、リポジトリはrepo upload
後で実行したときに変更を適切にアップロードする方法を認識できず、新しいブランチが存在しないかのように動作します。
(リポジトリ内のすべてのプロジェクトの新しいブランチを同時に作成できるロジックもいくつかありますが--all
、これは単なる便利なことです。)
repo startのstart.py
ソースコードを見ると、主な違いはAndroid プロジェクトに含まれるマニフェスト ファイルの管理にあると思います。
マニフェストで指定されたリビジョンから開始して、開発の新しいブランチを開始します。
Trevor Johnsの回答に追加するには、「既存の Git ブランチがリモート ブランチを追跡するようにするにはどうすればよいですか?」(を使用していない場合repo start
)を確認する必要があります。
git checkout -b newBranch -t aosp/master
これにより、新しいブランチに関連付けられた構成でリモートとマージ ( -t
= "track") が設定されます。
単純なgit checkout -b
ものは何も設定せず、純粋にローカル ブランチを作成します (リモート リポジトリへのアップストリーム ブランチを追跡することはありません)。