88

どのブランチを指定せずにこれを設定する構成方法はありますか?

4

6 に答える 6

93

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}
}
于 2011-05-18T23:07:42.810 に答える
70

私はちょうどこのようにそれをしました:

git pull origin "$(git branch | grep -E '^\* ' | sed 's/^\* //g')"

また

git pull origin $(git rev-parse --abbrev-ref HEAD)

これにより、から現在のブランチが抽出されgit branch、リモートオリジンからそのブランチがプルされます。

Seth Robertsonが言ったように、引数が与えられていない場合、現在のブランチのみが変更され、すべてのリモートブランチがフェッチされることに注意してください。すべてのリモートブランチをフェッチしたくないので、この方法で取得しました。

于 2014-04-27T21:44:10.723 に答える
14

アップデート

私が追加した古い答えはもう機能しません:/。しかし、私が置いたPUSHバージョンについていくつかの賛成票を受け取った後、私にとって、この答えは実際に検索エンジンからここに来る人を助けていることを意味するので、私はこの答えを保持します。

新しいバージョンのgitでこれを試してください:

$ git config --global push.default current
于 2015-02-09T20:11:50.253 に答える
2

--set-upstreamフラグは非推奨になり、削除されます。したがって、--trackまたは--set-upstream-to

例:このブランチの追跡情報を設定する場合は、次のコマンドを使用できます。

git branch --set-upstream-to=<remote>/<branch> develop
于 2015-07-10T09:26:02.460 に答える
1

はい、次のように変更できる構成があります.gitconfig

[push]
  default = current

これにより、現在のブランチがプッシュされ、受信側で同じ名前のブランチが更新されます。

チェック:

git config --global --get push.default

git-configを参照してください。

于 2015-10-24T17:11:33.490 に答える
0

originこれは、リモートがリモートであると想定せず、ブランチがリモートを追跡していない場合に処理するgitエイリアスです。

pullh = "!f() { set -e; set -o pipefail; arr=($(git rev-parse --abbrev-ref @{u} | sed 's/\\//\\n/')); git pull ${arr[0]} ${arr[1]}; }; f"

(免責事項:私は非常にbashの初心者であり、上記はおそらくかなり単純化される可能性があります。)

于 2020-08-20T11:28:16.713 に答える