どうでしょ削除、無効なリモート支店からの照Git?
-
21-08-2019 - |
質問
現在のレポ-レートして以下の出力:
$ git branch -a
* master
remotes/origin/master
remotes/public/master
したい削除 remotes/public/master
からの支店リスト:
$ git branch -d remotes/public/master
error: branch 'remotes/public/master' not found.
また、出力の git remote
は不思議なせていないのでリスト public
:
$ git remote show
origin
を削除したい'remotes/public/士課程-博士前期課程からの支店です。
更新していました git push
コマンド:
$ git push public :master
fatal: 'public' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
解決
が必要と清掃
git gc --prune=now
することが必要と、プルーン
git remote prune public
プルーン
すべて削除して陳腐追尾支店 <name>.これらの古枝てから取り除かれたリモートリポジトリによって参照される <name>が、まだ地域"でのご用意となりますremotes/<name>".
と--ドライランオプション報告書には何枝打にいとまがないが、無実際に剪定します。
しかし、これらのすべての清掃が挙げられ
git remote rm public
rm
削除のリモート名 <name>.すべてのリモート追跡支店および構成設定のリモート を除去します。
何をやってもうまくいかないき手-編集設定ファイルことはできませんでしたが発生しやすい特典です。
か施設まで格安料金プランを再度、何が起こるか見てみてください.
バキ
ご覧に 改定履歴, んだことを示唆より"正しい"技術によるもので、何らかの原因になりたい仕事をリポジトリ
私は疑いのOPを行っていたものを残ツリーで矛盾した状態で起こで行動するのが少し不思議と、 git gc
必要な修正を残cruft.
通常 git branch -rd origin/badbranch
なすのに十分であnuking地域追跡支店、または git push origin :badbranch
のためのnukingリモート支店 通常 ま ない 電話をする必要があり git gc
他のヒント
すべてを行う必要がある。
git fetch -p
これはリモートで削除されたすべてのローカルのブランチを削除いたします。
あなたはこれを自動的に設定することができます1.8.5+ gitの上にある場合
git config fetch.prune true
または
git config --global fetch.prune true
git push public :master
ケントフレドリックが指摘したように、これは、リモートブランチという名前master
を削除することになります。
リモート追跡ブランチを一覧表示するには:
git branch -r
リモート追跡ブランチを削除するには:
git branch -rd public/master
すべてを行う必要がある。
$ git branch -rd origin/whatever
これは単純なことです。ここでGCを呼び出すための理由はありません。
git gc --prune=now
は、あなたが望むものではありません。
git remote prune public
またはgit remote prune origin
位もし遠隔ソース厥
は、
何をしたいです受け入れ答えは私のために動作しませんでした。しかし、これは行います:
$ git remote add public http://anything.com/bogus.git
$ git remote rm public
私の場合は.git/packed-refs
で保存されたエントリを削除しようとしていました。あなたはこのプレーンテキストファイルを編集し、git br -D
が(少なくとも版1.7.9.5で)触れるする方法を知らないこと、それからエントリを削除することができます。
私はここで、この解決策を見つけた: https://stackoverflow.com/a/11050880/1695680 の
git push origin --delete <branch name>
私は同様の問題がありました。回答のどれも助けません。私の場合は、恒久的に現れて2つの削除リモートリポジトリを持っています。
私の最後の考えは手でそれへのすべての参照を削除することでした。
リポジトリは、「レポ」と呼ばれているとしましょう。私がやった:
find .git -name Repo
と
対応するファイルとディレクトリを削除grep Repo -r .git
これは私が対応する行を削除するいくつかのテキストファイルを見つけました。 今、すべてが正常であるように思われる。
通常はgitにこの仕事を残す必要があります。
私はgit branch -rd
知りませんでしたので、私は自分のために、このような問題を解決した方法は、リモートリポジトリとしての私のレポを扱い、遠隔削除を行うことです。 git push . :refs/remotes/public/master
。他の方法が機能しないと、あなたが取り除くしたいいくつかの奇妙な参照を持っている場合は、この生方法が確実なです。それは削除することがあなたに正確な精度を提供します(または作成します!)参照のいずれかの種類を。
わずかに関連したが、それでも私たちが持っていたのと同じような状況で役に立つかもしれません - 私たちはリモートリポジトリのためのネットワークファイル共有を使用します。先週の事は今週、我々はエラーを取得して、作業していた「遠隔起源は、分岐、参考文献/ヘッド/マスターのための文献を宣伝しませんでした。この文献は、リモートに存在していないか、または権限設定によって隠すことができる」
しかし、私たちは何も壊れて、物事に行われていなかったと信じていました。私はそれぞれの「以前のバージョン」を見直し、3日前に、リポジトリのMBでサイズは33メガバイトに282メガバイトから行っていた、約1403の新しいファイルやフォルダ300が現在存在していたことがわかりましたので、NFSは、スナップショットを行います。私は私の同僚を照会し、1は、その日のプッシュを行うにしようとした - それをキャンセル
。私はそれを復元するためにNFS「復元」機能を使用するだけでその日の前に、今何もかもが再び正常に動作。私は助けるように見えるdidntは、以前にプルーンを試してみました。多分厳しいクリーンアップが働いていると思います。
これは他の誰か1日を助けるかもしれない願っています!
ジェイ