Xilinx wiki で説明されているように、gitを使用して master-nextブランチ からソースコードをダウンロードしたい。
私はこれを試しました:
#git clone git://github.com/Xilinx/u-boot-xlnx/tree/master-next.git
Initialized empty Git repository in /home/Hannan/master-next/.git/
fatal: remote error:
Xilinx/u-boot-xlnx/tree/master-next is not a valid repository name
Email [email protected] for help
これでも失敗しました:
# git clone git://github.com/Xilinx/tree/master-next/u-boot-xlnx.git
Initialized empty Git repository in /home/Hannan/u-boot-xlnx/.git/
fatal: remote error:
Xilinx/tree/master-next/u-boot-xlnx is not a valid repository name
Email [email protected] for help
機能するコマンドは次のとおりです。
git clone git://github.com/Xilinx/u-boot-xlnx.git
しかし、これが実際に master-next branch をフェッチし、 master branch をフェッチしないことをどのようにして知ることができますか? gitを使用して特定のブランチを正しくフェッチするにはどうすればよいですか?
PuTTY経由でアクセスするRHEL 6を使用しています。
エラーメッセージが示すように、git clone
はgitリポジトリを想定しています。そのようなパスにブランチの名前を「追加」することはできません。 gitのブランチ を参照してください。
単一のブランチ(およびその履歴)を複製できます:git clone <url> --branch <branch> --single-branch
git help clone
をご覧ください。
ただし、実行したcloneコマンドを実行すると、リポジトリ全体のコピーが提供されます。既存のブランチはgit branch
で確認でき、それらの詳細はgit show-branch
で確認できます。
git checkout branch-name
を使用して、目的のブランチに切り替えます。
Pro Git ブック(オンラインで入手可能)の最初の章では、基本的なコマンドについて詳しく説明しています。
このコマンドは機能するはずです。
$ git fetch Origin [branch]
上記のコマンドは、リモートリポジトリからメタデータをフェッチするだけで、ソースのマージは行いません。
ソースをフェッチしてマージする場合、コマンドは次のようになります。
$ git pull Origin [branch]
マージコマンドを実行しているブランチに注意してください。ソースがマージされる場所です。
gitリポジトリにはすべてのブランチが含まれています(ただし、圧縮されているため差異のみがあり、サイズの問題が発生することはめったにありません)。
したがって、プロジェクト全体を正常に複製できます。これは、1つのブランチだけに関心がある場合でも、リポジトリを取得する標準的な方法です。
.git構造には、そのリポジトリで行われたallブランチが含まれます。
特定のブランチを使用するには、git checkout [branch_name]
ブランチが存在する場合、ファイルはローカルで使用できるようになります(それだけで、プロジェクトディレクトリの現在のファイル)。
git status
を実行すると、現在のブランチであるブランチが表示されます。次に例を示します。
レイアズによれば、特定のブランチを複製することができます。実際には、これを行ったことはありません。さらなる研究では、それは比較的新しいものであり、git 1.7.10(2012年4月)で追加されたことがわかります。ブランチの履歴を示さないタグはフェッチされません。例えば:
git clone -b master-next --single-branch git://github.com/Xilinx/
ここで、「リンカー」アプリケーションの場合、ブランチをチェックアウトしていますv3.0.10