どのブランチを指定せずにこれを設定する設定方法はありますか?
回答:
Gitはすでに現在のブランチのみをプルしています。ブランチをトラッキングブランチとして設定している場合は、リモートブランチを指定する必要はありません。 git branch --set-upstream localbranch reponame/remotebranch
追跡関係を設定します。次に発行するgit pull [--rebase]
と、そのブランチのみが更新されます。
もちろん、すべてのリモート追跡ブランチとリモートのすべての参照が更新されますが、変更されるのはローカル追跡ブランチのみです。
この一般的な操作の入力を減らすのに役立つBashエイリアス:
# Add an alias to pulling latest git changes into your same branch
alias pullhead='git pull origin $(git rev-parse --abbrev-ref HEAD)'
同じことを行うPowershell関数:
Function pullhead {
$cur_head="$(git rev-parse --abbrev-ref HEAD)"
& git pull origin ${cur_head}
}
私はちょうどこのようにそれをしました:
git pull origin "$(git branch | grep -E '^\* ' | sed 's/^\* //g')"
または
git pull origin $(git rev-parse --abbrev-ref HEAD)
これにより、から現在のブランチが抽出されgit branch
、そのブランチがリモートオリジンからプルされます。
Seth Robertsonが言ったように、引数が指定されていない場合、現在のブランチのみが変更され、すべてのリモートブランチがフェッチされることに注意してください。すべてのリモートブランチをフェッチしたくないので、この方法で取得しました。
git branch
ブランチ情報について実際に解析するべきではありません。この情報はで利用可能であるgit rev-parse
コマンドを作る:git pull origin $(git rev-parse --abbrev-ref HEAD)
git pull origin <current-branch>
とにかく、コマンド置換の結果、どちらがデフォルトになりますか?他のリモートブランチ(たとえば、origin / other-branchなど)が更新されていないため、トラフィックが減少していることを意味していますか?
git pull
で、のようなメッセージが表示される場合がありますThere is no tracking information for the current branch. Please specify which branch you want to merge with.
。その後、常に入力することになりますgit pull origin my-feature-branch
。追跡情報がないという状況がどのようにして発生するのか、本当に知りたいです。
更新
私が追加した古い答えはもう機能しません:/。しかし、私が配置したPUSHバージョンについていくつかの賛成票を受け取った後、私にとって、この回答は実際に検索エンジンからここに来る人を助けていることを意味するので、この回答を保持します。
新しいバージョンのgitでこれを試してください:
$ git config --global push.default current
pull.default=current
。私git clone
もデフォルトで追加されているようですremote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
が、それはかなり標準的です。
pull.default
変数はありません。それをgitconfigに入れても、何も起こりません。
はい、次のように変更できる構成があります.gitconfig
。
[push]
default = current
これにより、現在のブランチがプッシュされ、受信側で同じ名前のブランチが更新されます。
チェック:
git config --global --get push.default
git-configを参照してください。
ザ・ --set-upstream
フラグが廃止されて除去されます。したがって、--track
または--set-upstream-to
例:このブランチの追跡情報を設定する場合は、次の方法で行うことができます。
git branch --set-upstream-to=<remote>/<branch> develop
--set-upstream-to=
、追跡情報がわからない場合はgitによって言及され続けます。非推奨については言及されていません。