回答:
次のようにすべてのブランチをプルするようにGitに指示できます。
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
git fetch origin
を見ると.git/config
、次のようになります。
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = false
[remote "origin"]
url = https://github.com/owner/repo.git
fetch = +refs/heads/master:refs/remotes/origin/master
[branch "master"]
remote = origin
merge = refs/heads/master
rebase = true
これを完全なクローンと比較したところ、唯一の違いはの下の「フェッチ」[remote "origin"]
でした。
注:私はGitバージョン1.8.2を実行しています。古いバージョンのGitを実行している場合は、構成オプションが変更されている可能性があります。私のコマンドが機能しない場合は、.git/config
同様のものが表示されるかどうかを確認することをお勧めします。
git
あなたは(リポジトリがレイアウトされている方法を基本的にどのように理解すれば、あなたがそれをものの全体の多くを行うことができますので、コマンドラインツールは、(実際には、コマンドのほとんどは、他のコマンドの面で実装されている)信じられないほど強力である.git
フォルダの作品を)。
git show-ref tags
もまだ失敗します。
git clone --depth=1 --branch branchname git@github.com:foobar/repo.git destinationpath
単一のブランチを追加する場合は、以下を実行できます。
git remote set-branches --add origin [remote-branch]
git fetch origin [remote-branch]:[local-branch]
gitバージョン1.9.1で動作します
fetch =
、.git / configに複数の行が追加されます。これは、リモートで2つのブランチを切り替えたいが、他のブランチの束全体をフェッチしたくない場合に非常に便利です。ありがとう!
を使用してクローンされたローカルリポジトリに別のリモートブランチを追加するに--single-branch
は、次のように機能します。
git remote set-branches --add origin [remote-branch]
git fetch
git checkout [remote-branch]
[remote-branch]
たとえば、ワイルドカードを使用することもできます。
git remote set-branches --add origin release-1.*
git fetch
git checkout release-1.5
これはgitバージョン2.21.1を使用して動作します。git fetch origin [remote-branch]:[local-branch]
追跡されていない状態でローカルブランチを作成するため、実行することを提案する他の回答は機能しませんでした。実行するgit pull
と、最初にリモートブランチのすべてのコミットをローカルコミットに再度マージしようとしました。
元のリポジトリを新しいリモートとして追加し、そこから作業するだけですか?
git remote add path/to/myrepo myNewOrigin
git fetch myNewOrigin
必要に応じて、現在の「origin」リモートを削除し、「myNewOrigin」の名前を「origin」に変更することもできます。
そこから、プル/マージ/リベースできます。
.git/config
ローカルリポジトリのファイルを変更するだけfetch
です[remote origin] section
。
このようなものの前に
[remote "origin"]
url = https://github.com/owner/repo.git
fetch = +refs/heads/master:refs/remotes/origin/master
そうなると
[remote "origin"]
url = https://github.com/owner/repo.git
fetch = +refs/heads/*:refs/remotes/origin/*
私は最初にドミニクポーラックの回答を適用しましたが、うまくいきました。しかし、新しいブランチにさらにコードをコミットした後、私はそれ以上の変更をプルすることができませんでした。
single-branch
完全にリセットする別の方法がありますが、ここでは触れていません。
git remote remove origin
git remote add origin git@gitlab.com:{yourProject}/{yourRepo}.git
git branch --set-upstream-to=origin/{yourBranch} {yourBranch}
git pull
これにより、すべてが元にリセットされます。