現在の設定では、プルを行うときは常にブランチ名を入力する必要があります(例:git pull Origin feature-branch
"。あるブランチから別のブランチにプルするミスを犯しました。 。git pull
と入力するだけで現在のブランチがプルされるようにGitを設定することで、これを回避したいと思います。
どうすればいいですか?
追跡ブランチを作成できます。 Git Bookから( http://git-scm.com/book/en/Git-Branching-Remote-Branches ):
リポジトリを複製すると、通常、
Origin/master
を追跡するmaster
ブランチが自動的に作成されます。git Push
とgit 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"
私も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
オプションで作成したブランチではこれを実行しません。 autosetupmerge
をalways
に設定すると、gitは常に追跡情報を処理します。
2)新しいブランチをチェックアウトする場合、Originからプルするようにブランチを設定する必要があります(トラッキング)。
git checkout -b <branch> --track <remote>/<branch>
ブランチが一時的な場合、これはあまり役に立ちません。まれに新しいブランチを作成する場合は、これを使用する必要があります。ただし、masterブランチのみが永続的であり、すべての機能に独自の新しいブランチがある私のような場合は、オプション1がより便利です。
Git設定--global
を作成する必要がないことに注意してください。そこに--local
と書くだけで、その設定をそのリポジトリのみに固有にすることができます。
これは私のために働いた:
git branch --set-upstream-to=Origin/branch_name branch_name
これを実行した後、次の構文を使用できます。
git checkout branch_name
git pull --rebase
git Push
git Push
がリモートブランチ名を自動的に把握するように構成されている場合、-u
を渡すことができ、追跡ブランチも自動的に設定されます。
Git Pushをセットアップして、同じ名前のリモートブランチを使用するには:
git config --global Push.default current`
-u
のgit 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