[解決済み] Git 削除された (リモート) ブランチを復元する
2022-11-13 03:38:01
質問
プッシュ時に削除してしまった二つの Git ブランチを復元する必要があります。
これらの2つのブランチは別のシステムで作成され、その後私の "shared" (github) リポジトリにプッシュされました。
私のシステム上では、(どうやら)フェッチ中にブランチを取得しました。
~/myfolder> git fetch
remote: Counting objects: 105, done.
remote: Compressing objects: 100% (58/58), done.
remote: Total 62 (delta 29), reused 0 (delta 0)
Unpacking objects: 100% (62/62), done.
From github.com:mygiturl
* [new branch] contact_page -> origin/contact_page
731d1bb..e8b68cc homepage -> origin/homepage
* [new branch] new_pictures -> origin/new_pictures
その後すぐに、ローカルでの変更をセントラルリポに送るためにプッシュを行いました。何らかの理由で、これらのブランチは私のローカル システムとセントラル リポの両方から削除されました。
~/myfolder> git push
Counting objects: 71, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (43/43), done.
Writing objects: 100% (49/49), 4.99 KiB, done.
Total 49 (delta 33), reused 0 (delta 0)
To [email protected]:mygiturl.git
- [deleted] contact_page
+ e8b68cc...731d1bb homepage -> homepage (forced update)
bb7e9f2..e0d061c master -> master
- [deleted] new_pictures
e38ac2e..bb7e9f2 origin/HEAD -> origin/HEAD
731d1bb..e8b68cc origin/homepage -> origin/homepage
e38ac2e..bb7e9f2 origin/master -> origin/master
* [new branch] origin/contact_page -> origin/contact_page
* [new branch] origin/new_pictures -> origin/new_pictures
生みの親のマシンからブランチを取り出すのは恐ろしく簡単ではないので、可能であればローカルから復旧を試みたいと思います。
私がググった git の "undo" の情報はすべて、失われたコミットを回復するためのものでした。私はこれらのブランチのコミット UID を持っていないので、それがここで適用されるとは思えません。
どうすればこれらを取り戻すことができるのか知りたいです。また、それらがそもそもどのように削除されたのか、そして今後どのようにこれを避けることができるのかを知りたいです。
EDIT: リクエストにより、私のレポの構成は以下のとおりです。
user.name=Craig Walker
[email protected]
alias.unadd=reset HEAD
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
[email protected]:MyGitURL.git
remote.origin.mirror=true
branch.master.remote=origin
branch.master.merge=refs/heads/master
alias.undo=reset --hard
alias.test=push -f ci HEAD:master
alias.st=status
alias.ci=commit
alias.br=branch
alias.co=checkout
alias.ch=checkout
alias.df=diff
alias.lg=log -p
alias.who=shortlog -s --
remote.ci.url=ContinuousIntegrationGitURL
remote.ci.fetch=+refs/heads/*:refs/remotes/ci/*
branch.photo.remote=origin
branch.photo.merge=refs/heads/photos
remote.foo.url=FooGitURL
remote.foo.fetch=+refs/heads/*:refs/remotes/cynthia/*
branch.homepage.remote=origin
branch.homepage.merge=refs/heads/homepage
どのように解決するのですか?
私は専門家ではありません。しかし、あなたは試すことができます
git fsck --full --no-reflogs | grep commit
で、削除されたブランチの HEAD コミットを探し出し、それらを取得します。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] 新しいローカルブランチをリモートの Git リポジトリにプッシュし、それを追跡するにはどうすればよいのでしょうか?
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
-
[解決済み】既存のGitブランチをリモートブランチに追従させる?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
gitlab をアップロード ! [リモート拒否] dev -> dev (受信前のフックが拒否されました)
-
エラーが発生しました。マージされていないファイルがあるため、プリングはできません
-
致命的 リモートレフマスターが見つからない
-
Git はファイル名の大文字と小文字を無視し、修正する
-
コミットメッセージが空だったため、コミットを中止する git commit
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] JenkinsのGitプラグイン。特定のタグをビルドするには?
-
[解決済み] GitHubで、既存のレポを追加するときにすべてのブランチをプッシュするにはどうしたらいいですか?
-
[解決済み] なぜgit AuthorDateはCommitDateと違うのですか?
-
[解決済み] Git: リモートブランチの情報を更新する