誰かがgit Push Origin test
とともにtest
というブランチを共有リポジトリにプッシュしました。ブランチはgit branch -r
で見ることができます。
今、私はリモートのtest
ブランチをチェックしようとしています。
私はもう試した:
何もしないgit checkout test
git checkout Origin/test
は* (no branch)
を与えます。混乱しています。どのようにして "no branch"になることができますか?
リモートのGitブランチをチェックアウトするにはどうすればいいですか?
Jakubの答え 実際にこれを改善しています。 Gitバージョン≧1.6.6では、1つのリモコンだけで、次のことができます。
git fetch
git checkout test
ユーザーmasukomiがコメントで指摘しているように、あなたが複数のリモートを持っているとgit checkout test
は現代のgitでは動かないでしょう。この場合は
git checkout -b test <name of remote>/test
または速記
git checkout -t <name of remote>/test
リモートブランチでローカルに作業を開始する前に、以下の回答で示されているようにそれを取得する必要があります。
ブランチを取得するには、単にあなたがする必要があります:
git fetch Origin
これはあなたのために全てのリモートブランチを取得します。あなたはチェックアウトのために利用可能な枝を見ることができます:
git branch -v -a
リモートブランチが手元にある状態で、興味のあるブランチをチェックアウトし、ローカルの作業コピーを手に入れる必要があります。
git checkout -b test Origin/test
補足:現代のGit(> = 1.6.6 )では、あなたはただ使うことができます
git checkout test
( 'Origin'/test 'ではなく' test 'であることに注意してください)アップストリームがリモートトラッキングブランチ' Origin/test 'の場合、魔法の _ dwim _ - meryを実行してローカルブランチ' test 'を作成します。 '。
git branch
の出力の* (no branch)
は、いわゆる "detached HEAD"状態(HEADが直接コミットを指しており、ローカルブランチへのシンボリックリファレンスではない)で、名前のないブランチにいることを意味します。この名前のないブランチでコミットをした場合は、現在のコミットからいつでもローカルブランチを作成できます。
git checkout -b test HEAD
この場合、おそらくリモートのtest
ブランチを追跡しているローカルのtest
ブランチを作成したいでしょう。
$ git branch test Origin/test
以前のバージョンのgit
では、明示的な--track
オプションが必要でしたが、リモートブランチから分岐する場合は、これがデフォルトになりました。
最初に選択された答えは技術的には 正しい ですが、まだすべてのオブジェクトを取得しておらず、リモートリポジトリから参照していない可能性があります。その場合は、次のエラーが表示されます。
$ git checkout -b remote_branch Origin/remote_branch
fatal:git checkout:パスの更新はブランチの切り替えと互換性がありません。
コミットとして解決できない 'Origin/remote_branch'をチェックアウトするつもりでしたか?
このメッセージを受け取った場合は、git fetch Origin
を実行する前に、まずgit checkout remote_branch
を実行する必要があります。ここでOrigin
はリモートリポジトリの名前です。これが応答を含む完全な例です。
$ git fetch Origin
remote: Counting objects: 140, done.
remote: Compressing objects: 100% (30/30), done.
remote: Total 69 (delta 36), reused 66 (delta 33)
Unpacking objects: 100% (69/69), done.
From https://github.com/githubuser/repo-name
e6ef1e0..5029161 develop -> Origin/develop
* [new branch] demo -> Origin/demo
d80f8d7..359eab0 master -> Origin/master
$ git checkout demo
Branch demo set up to track remote branch demo from Origin.
Switched to a new branch 'demo'
ご覧のとおり、git fetch Origin
を実行すると、ローカルマシンで追跡するようにまだ設定されていないリモートブランチがすべて取得されます。ここから、リモートブランチへの参照があるので、git checkout remote_branch
を実行するだけでリモートトラッキングの利点が得られます。
私は上記の解決策を試しましたが、うまくいきませんでした。これを試して、それは動作します:
git fetch Origin 'remote_branch':'local_branch_name'
これはリモートブランチを取得し、local_branch_name
という名前の新しいローカルブランチを作成し(まだ存在していない場合)、その中にあるリモートブランチを追跡します。
Originという名前のリモートでは _ dwim _ になります( documentation ):
$ git checkout -t remote_name/remote_branch
新しいリモコンを追加するには、まず次の手順を実行する必要があります。
$ git remote add remote_name location_of_remote
$ git fetch remote_name
1つ目はGitにリモートが存在することを伝え、2つ目はコミットを受けます。
つかいます:
git checkout -b <BRANCH-NAME> <REMOTE-NAME>/<BRANCH-NAME>
私の良性の場合、他の答えは現代のGitではうまくいきません。リモートブランチが新しい場合は、最初にプルする必要があるかもしれませんが、私はそのケースをチェックしていません。
Gitリポジトリを複製するには、
git clone <either ssh url /http url>
上記のコマンドはすべてのブランチをチェックアウトしますが、master
ブランチだけが初期化されます。他のブランチをチェックアウトしたい場合は、次のようにします。
git checkout -t Origin/future_branch (for example)
このコマンドはリモートブランチをチェックアウトし、あなたのローカルブランチ名はリモートブランチと同じになります。
チェックアウト時にローカルブランチ名を上書きしたい場合は、
git checkout -t -b enhancement Origin/future_branch
これであなたのローカルブランチ名はenhancement
ですが、あなたのリモートブランチ名はfuture_branch
です。
あなたが試すことができます
git fetch remote
git checkout --track -b local_branch_name Origin/branch_name
または
git fetch
git checkout -b local_branch_name Origin/branch_name
まず、あなたがする必要があります:
git fetch
#ブランチ名がわからない場合
git fetch Origin branch_name
次に、次のようにしてリモートブランチをローカルにチェックアウトできます。
git checkout -b branch_name Origin/branch_name
-b
は選択したリモートブランチから指定した名前で新しいブランチを作成します。
コマンド
git fetch --all
git checkout -b <ur_new_local_branch_name> Origin/<Remote_Branch_Name>
等しい
git fetch --all
その後
git checkout -b fixes_for_dev Origin/development
どちらもdevelopment
からlatest fixes_for_dev
を作成します
次のコマンドを使います。
git checkout --track Origin/other_remote_branch
ブランチがOrigin
リモート以外のものにある場合は、次のようにします。
$ git fetch
$ git checkout -b second/next upstream/next
これはnext
リモートのupstream
ブランチをsecond/next
というローカルブランチにチェックインします。つまり、nextという名前のローカルブランチがすでにある場合、それは競合しません。
$ git branch -a
* second/next
remotes/Origin/next
remotes/upstream/next
git branch -r
は、そのブランチ名がGitのローカルブランチリストにないため、オブジェクト名が無効であると言っています。以下のコマンドでOriginのローカルブランチリストを更新してください。
git remote update
それからリモートブランチをもう一度チェックしてみてください。
これは私のために働きました。
私はgit fetch
が all remoteブランチを引っ張ってくると信じています。
これらの答えのどれも私のために働きませんでした。これはうまくいった:
git checkout -b feature/branch remotes/Origin/feature/branch
git fetch && git checkout your-branch-name
リモートブランチの名前を指定してgit checkout
を実行するだけです。 Gitは 自動的に - リモートブランチを追跡するローカルブランチを作成します。
git fetch
git checkout test
しかし、そのブランチ名が複数のリモートで見つかった場合、Gitはどちらを使うべきかわからないので機能しません。その場合は、次のどちらかを使用できます。
git checkout --track Origin/test
または
git checkout -b test Origin/test
2.19 では、Gitは checkout.defaultRemote
という設定を学びました。
上記のすべての提案に対してerror: pathspec 'desired-branch' did not match any file(s) known to git.
を見ている状況で立ち往生していました。私はgitバージョン1.8.3.1を使っています。
だから 私のために働いた :
git fetch Origin desired-branch
git checkout -b desired-branch FETCH_HEAD
その背後にある説明は、リモートブランチを取得するときにFETCH_HEADに取得されたことに気付いたことです。
$ git fetch Origin desired-branch
From github.com:MYTEAM/my-repo
* branch desired-branch -> FETCH_HEAD
git remote show <Origin name>
コマンドはすべてのブランチ(追跡されていないブランチを含む)をリストします。それからあなたはあなたが取得する必要があるリモートブランチ名を見つけることができます。
例:
$ git remote show Origin
リモートブランチを取得するには、次の手順に従います。
git fetch <Origin name> <remote branch name>:<local branch name>
git checkout <local branch name > (local branch name should the name that you given fetching)
例:
$ git fetch Origin test:test
$ git checkout test
他の人やギャルが解決策を出しますが、多分私はなぜあなたに言うことができます。
何もしないgit checkoutテスト
Does nothing
はdoesn't work
と同じではないので、端末に 'git checkout test'と入力してEnterキーを押してもメッセージは表示されず、エラーも発生しません。私は正しいですか?
答えが 'はい'であるならば、私はあなたに原因を言うことができます。
原因は、作業ツリーに 'test'という名前のファイル(またはフォルダー)があることです。
git checkout xxx
を解析すると、
xxx
をブランチ名として扱いますが、testという名前のブランチはありません。xxx
がパスであると考え、幸いなことに(または残念ながら)testという名前のファイルがあります。そのため、git checkout xxx
はxxx
ファイル内のすべての変更を破棄することを意味します。xxx
という名前のファイルもない場合、Gitはいくつかの規則に従ってxxx
を作成しようとします。規則の1つは、remotes/Origin/xxx
が存在する場合はxxx
という名前のブランチを作成することです。新しく作成されたブランチを取得する
git fetch
別のブランチに切り替えるには
git checkout BranchName
次のBashスクリプトを使って、すべてのリモートブランチの追跡を始めることができます。
#!/bin/bash
git fetch --all
for branch in `git branch -r --format="%(refname:short)" | sed 's/Origin\///'`
do git branch -f --track "$branch" "Origin/$branch"
done
これも単一行バージョンです。
git fetch --all; for branch in `git branch -r --format="%(refname:short)" | sed 's/Origin\///'`; do git branch --track "$branch" "Origin/$branch" ; done ;
リモートからフェッチしてブランチをチェックアウトします。
git fetch <remote_name> && git checkout <branch_name>
例えば。:
git fetch Origin && gitチェックアウト機能/ XYZ-1234-Add-alerts
fetch
を使用して、すべてのリモートをプルします
git fetch --all
リモートブランチをリストするには:
git branch -r
すべてのブランチをリストするには
git branch -l
>>outpots like-
* develop
test
master
ブランチをチェックアウト/変更するには
git checkout master
コマンドに従って空のフォルダを作成してください。それを入力して、このコマンドを使用します。
saifurs-Mini:YO-iOS saifurrahman$ git clone your_project_url
Cloning into 'iPhoneV1'...
remote: Counting objects: 34230, done.
remote: Compressing objects: 100% (24028/24028), done.
remote: Total 34230 (delta 22212), reused 15340 (delta 9324)
Receiving objects: 100% (34230/34230), 202.53 MiB | 294.00 KiB/s, done.
Resolving deltas: 100% (22212/22212), done.
Checking connectivity... done.
saifurs-Mini:YO-iOS saifurrahman$ cd iPhoneV1/
saifurs-Mini:iPhoneV1 saifurrahman$ git checkout 1_4_0_content_discovery
Branch 1_4_0_content_discovery set up to track remote branch 1_4_0_content_discovery from Origin.
Switched to a new branch '1_4_0_content_discovery'