web-dev-qa-db-ja.com

「git pull」を使用するときに、現在のブランチから自動的にプルするようにGitを構成するにはどうすればよいですか?

現在の設定では、プルを行うときは常にブランチ名を入力する必要があります(例:git pull Origin feature-branch "。あるブランチから別のブランチにプルするミスを犯しました。 。git pullと入力するだけで現在のブランチがプルされるようにGitを設定することで、これを回避したいと思います。

どうすればいいですか?

33
Brandon Durham

追跡ブランチを作成できます。 Git Bookから( http://git-scm.com/book/en/Git-Branching-Remote-Branches ):

リポジトリを複製すると、通常、Origin/masterを追跡するmasterブランチが自動的に作成されます。 git Pushgit pullは、他の引数なしでそのまま使用できる理由です。ただし、必要に応じて、Originのブランチを追跡せず、masterブランチを追跡しない追跡ブランチを設定できます。単純な例は、git checkout -b [branch] [remotename]/[branch]を実行した先ほど見た例です。 Gitバージョン1.6.2以降を使用している場合は、--track短縮形も使用できます。

$ git checkout --track Origin/serverfix
Branch serverfix set up to track remote branch refs/remotes/Origin/serverfix.
Switched to a new branch "serverfix"
11

私もgit pullだけを入力して、すべての魔法を取得するのが好きです。

次の2つのオプションがあります。

1)git config --global branch.autoSetupMerge always

これにより、リモートブランチをチェックアウトするか、新しいブランチを作成するかが確実になります。追跡情報はgitによって自動的に処理されます。その後、あなたはできるようになります

git clone <some_repo>
git checkout -b <new_branch>
git Push
git pull

キーワードなしでPushを使用するには、Pushオプションも設定する必要があることに注意してください。 matchingに設定しましたが、誰もが好みを持っています。 (git config --global Push.default matching

詳細:autosetupmergeのデフォルトはtrueです。 trueに設定すると、リモートで既存のブランチをチェックアウトするときにgitが追跡を実行できます。たとえば、git checkout <branch>を実行すると、gitは追跡情報を処理するため、そのブランチでgit pullを実行できます。 ただし、-bオプションで作成したブランチではこれを実行しません。 autosetupmergealwaysに設定すると、gitは常に追跡情報を処理します。

2)新しいブランチをチェックアウトする場合、Originからプルするようにブランチを設定する必要があります(トラッキング)。

git checkout -b <branch> --track <remote>/<branch>

ブランチが一時的な場合、これはあまり役に立ちません。まれに新しいブランチを作成する場合は、これを使用する必要があります。ただし、masterブランチのみが永続的であり、すべての機能に独自の新しいブランチがある私のような場合は、オプション1がより便利です。

Git設定--globalを作成する必要がないことに注意してください。そこに--localと書くだけで、その設定をそのリポジトリのみに固有にすることができます。

24
batilc

これは私のために働いた:

git branch --set-upstream-to=Origin/branch_name branch_name

これを実行した後、次の構文を使用できます。

git checkout branch_name
git pull --rebase
git Push
10
Samuel

git Pushがリモートブランチ名を自動的に把握するように構成されている場合、-uを渡すことができ、追跡ブランチも自動的に設定されます。

Git Pushをセットアップして、同じ名前のリモートブランチを使用するには:

git config --global Push.default current`

-ugit help Pushオプションの説明:

-u, --set-upstream
    For every branch that is up to date or successfully pushed, add
    upstream (tracking) reference, used by argument-less git-pull(1) and
    other commands. For more information, see branch.<name>.merge in
    git-config(1).

現在のブランチが<branch_name>であると仮定します:

$ git Push -u
Branch <branch_name> set up to track remote branch <branch_name> from Origin.
Everything up-to-date
5
ハセン