[解決済み] どのブランチとマージしたいかを言わずにpullするように言われました。
質問
TL;DR: "tracked" ブランチがありますが、プルすることができません。
というわけで、私は今、バケツ 4 にいます。
$ git branch -v
bucket-1 410f7b5 * gh-53 * gh-48 * "Share App"
bucket-2 7ed70a2 * upgrade to SOLR 3.3.0
bucket-3 400ffe4 * emergency fix prod issue
* bucket-4 64c2414 Merge branch 'bucket-3' into bucket-4
master 8dc4854 [ahead 1] * gh-73
リモートから変更を取り込みたいのですが。
$ git pull
You asked me to pull without telling me which branch you
want to merge with, and 'branch.bucket-4.merge' in
your configuration file does not tell me, either. Please
specify which branch you want to use on the command line and
try again (e.g. 'git pull <repository> <refspec>').
See git-pull(1) for details.
If you often merge with the same branch, you may want to
use something like the following in your configuration file:
[branch "bucket-4"]
remote = <nickname>
merge = <remote-ref>
[remote "<nickname>"]
url = <url>
fetch = <refspec>
See git-config(1) for details.
うーん、おかしいな、すでにトラッキングブランチとして "bucket-4" を追加したはずなのですが。見てみましょう。
$ git remote show origin
* remote origin
Fetch URL: [email protected]:abcd/main.git
Push URL: [email protected]:abcd/main.git
HEAD branch (remote HEAD is ambiguous, may be one of the following):
bucket-3
master
Remote branches:
bucket-1 tracked
bucket-2 tracked
bucket-3 tracked
bucket-4 tracked
master tracked
Local branches configured for 'git pull':
bucket-1 merges with remote bucket-1
bucket-2 merges with remote bucket-2
bucket-3 merges with remote bucket-3
master merges with remote master
Local refs configured for 'git push':
bucket-1 pushes to bucket-1 (up to date)
bucket-2 pushes to bucket-2 (up to date)
bucket-3 pushes to bucket-3 (up to date)
bucket-4 pushes to bucket-4 (local out of date)
master pushes to master (fast-forwardable)
確かに、bucket-4 は "tracked" としてマークされていますが、なぜか push 用に設定されており、pull 用には設定されていないようです。
私の
.git/config
ファイルを見ると、ほとんどのブランチで "remote" と "merge" の項目がありますが、bucket-4 にはありません。これなしで、どのように "tracked" と見なされるのでしょうか?
[remote "origin"]
url = [email protected]:abcd/main.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[branch "rel-2011-07-07"]
remote = origin
merge = refs/heads/rel-2011-07-07
[branch "bucket-1"]
remote = origin
merge = refs/heads/bucket-1
[branch "bucket-2"]
remote = origin
merge = refs/heads/bucket-2
[branch]
autosetupmerge = true
[branch "bucket-3"]
remote = origin
merge = refs/heads/bucket-3
ここで可能性の高い解決策は
remote/merge
エントリを追加することだと思います。しかし、これなしで、どのように "追跡されたとみなされるのでしょうか?
今後、すべてのローカルブランチがリモートを適切に追跡するために、私が追加できる設定はあるのでしょうか?
どのように解決するのですか?
次のように表示されます。
bucket-4 pushes to bucket-4
と書かれているのは、ブランチをプッシュするときのデフォルトが、リモートの一致する名前のブランチにプッシュすることだからです。 (これはまだデフォルトであることに注意しましょう。
であっても
がリモート追跡ブランチを追跡していて、リモート追跡ブランチがリモートリポジトリの別の名前のブランチに対応している場合でも、これはデフォルトであることに注意してください)。
の間の関連付けを設定する最も簡単な方法は、"get" をクリックすることです。
bucket-4
と
bucket-4
で
origin
は、次に押すときに確認することです。
git push -u origin bucket-4
あるいは、こうすることもできます。
git branch --set-upstream-to origin/bucket-4
いくつかの質問に直接お答えします。
<ブロッククオートこれがないと、どのように"tracked"と見なされるのでしょうか?
この場合、リモート追跡ブランチを追跡しているとは言えません。
branch.bucket-4.merge
または
branch.bucket-4.remote
を git の設定に追加します。 からの出力は
git remote show origin
の出力は、デフォルトでプッシュされるブランチの場所を示しているだけです。
将来的にすべてのローカルブランチがリモートを適切に追跡するために追加できる設定はありますか?
それはないと思います。 あなたが
bucket-4
をローカルに作成したときには、リモート追跡ブランチは存在しなかったので、その時点で設定することはできません。 この場合、デフォルトの挙動が非常にわかりにくくなります。
-u
を最初の
git push
をそのブランチの上流レポジトリに追加します。
少しでも参考になれば幸いです。
関連
-
[解決済み] リモートにないトラッキングブランチを削除
-
[解決済み] detached HEADとmaster/originの連携はどうすればいいですか?
-
[解決済み] Git で単一のブランチをクローンする方法を教えてください。
-
[解決済み] ブランチが追跡しているリモートを変更するには?
-
[解決済み] 古いリモート git ブランチのクリーンアップ
-
[解決済み] GitHub から特定のブランチをプルする
-
[解決済み] git pull --all "でローカルブランチをすべて更新できますか?
-
[解決済み] Heroku: 異なるローカルGitブランチをHeroku/masterにプッシュする方法
-
[解決済み] この "u "は具体的に何をするのですか?"git push -u origin master" と "git push origin master" の違い。
-
[解決済み】Gitのワークフローとrebaseとmergeの質問
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
undefinedGit Git がファイルをコードクラウドにプッシュする際に報告されるエラーを解決します: ! [拒否] master -> master (最初にフェッチ)
-
gpg: "xxx" をスキップ: 秘密鍵のための1つの解決策が利用できない
-
hint: 現在のブランチの先端が hint: そのリモートカウントより遅れているため、更新が拒否されました。
-
コミットメッセージが空だったため、コミットを中止する git commit
-
[Gitラーニングノート】Gitのコンフリクト:マージする前に変更をコミットするかstashする。
-
なぜこのマージが必要なのかを説明するコミットメッセージを git に入力してください。
-
gitlabの紹介と使い方
-
[解決済み] Gitの本番環境へのプッシュ(FTP)
-
[解決済み] GitHubの特定のブランチにあるコードを検索する
-
[解決済み] TortoiseGitを使ったチェリーピック