2012-04-18 13 views
4

私はgitに関してかなり新しくなっています。通常はgit commit、pull、pushが私の唯一のコマンドです。 私のコミットがデフォルトの名前と電子メールに設定されていて、それを変更したいと気づいたことが最近気付いた。 は愚か私はどこかの記事で見つけたこの走っ:'git filter-branch -f --env-filter'を復帰させる方法

git filter-branch -f --env-filter "GIT_AUTHOR_NAME='Newname'; GIT_AUTHOR_EMAIL='newemail'; 
GIT_COMMITER_NAME='Newname'; GIT_COMMITTER_EMAIL='newemail';" HEAD 

私はこれが唯一の私のコミットを変更するだろうと思ったが、代わりにそれは私の名前とメールアドレスを持っているレポ内のすべてのコミットを変更しました。もちろん私の "愚かさ"を続けるために、私は変更を押しました。

また、私は履歴が失われているようだし、github上のすべてのコミットも重複しているようです。 1つは私の名前と電子メールと元のものです。

これを元に戻す方法はありますか?元の情報をプッシュするために以前のプルのコピーを使用していますか?

+0

これをチェックしましたか?http://stackoverflow.com/questions/1983101/git-duplicate-commit-issueそれは重複しているようです – Learath2

+0

それは多かれ少なかれ同じですが、私は情報を元に戻したいのですがそれらのコミットにも、重複を取り除くだけでなく、ありがとう。 – WhiT3Kr0w

答えて

1

同僚は、いくつかのgitの長所と私と話すことができました以前のコピーの 'git push -f'がこの問題を解決したようです。また、私はgit pull --rebaseをコピーする必要がありました。

あなたの助けを借りてくれてありがとう。

7

あなたは、フィルタ分岐命令をした後に緩やかなオブジェクトをクリーンアップするために何もしていない場合、あなたはmasterブランチをリセットすることができます(あなたがコマンドを与えたときHEADを仮定すると、マスターだった):

git reset --hard refs/original/master 
+0

あなたは私より速いです:) – Learath2

1

あなたがクリーンアップされなかった場合、まだあなたとあなたのブランチをリセットすることができます。git reset --hard refs/original/masterこれはすべて元のファイルを再ロードされます前に、あなたの試みに、その後の操作を行います。

git filter-branch -f --env-filter "GIT_AUTHOR_NAME='Newname'; GIT_AUTHOR_EMAIL='newemail'; GIT_COMMITER_NAME='Newname'; GIT_COMMITTER_EMAIL='newemail';" "--tag-name-filter cat -- --all"

関連する問題