gitで中途半端な状態になった後、ワーキングコピーは捨てて、
リポジトリを再利用して、元(clone元)のツリーと同期を実行する
※もちろんgit上修正したファイルは消えるものとして
新規ディレクトリにgit cloneしたのと意味は同じだが、
中間ファイル等を残す。
それに伴った一部make処理の省略が主眼。
初期状態
$ git pull Updating f76c2f8..f41f3a6 error: Entry 'debianmeetingresume2009-natsu.tex' would be overwritten by merge. Cannot merge. $ git pull You are in the middle of a conflicted merge. $ git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # new file: debianmeetingresume200907.tex # new file: debianmeetingresume200908.tex # modified: image2009-natsu/README # # Changed but not updated: # (use "git add <file>..." to update what will be committed) # # unmerged: debianmeetingresume2009-natsu.tex # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # 0001-add-debianmeetingresume2009-natsu.tex.patch # 0001-add-image2009-natsu-2009-summer.eps-image2009-natsu.patch
git logで最後にclone元からMergeに成功したタイミングの手前のcommit
= clone元にあると思われる正常なcommitを確認
$ git log Date: Sat Jul 11 23:58:29 2009 +0900 add debianmeetingresume2009-natsu.tex commit fcaef6f5072e51e66a39f448bc42a69c692e7ec3 Date: Sat Jul 11 23:54:02 2009 +0900 add image2009-natsu/2009-summer.eps image2009-natsu/README commit 282a7f6d760245db2c0ff28544c95753870a468d Merge: 526798f... d1c4396... Date: Sat Jul 11 22:00:43 2009 +0900 Merge branch 'master' of git://git.debian.org/git/tokyodebian/monthly-report commit d1c43962ff1f5e7eabbf9f074c9c673ffd76b162 Date: Wed Jul 8 22:55:15 2009 +0900 support command-line option for git push
git reset --hardでリポジトリを正常なcommitまで戻す
$ git reset --hard d1c43962ff1f5e7eabbf9f074c9c673ffd76b162 HEAD is now at d1c4396 support command-line option for git push $ git status # Untracked files: # (use "git add <file>..." to include in what will be committed) # # 0001-add-debianmeetingresume2009-natsu.tex.patch # 0001-add-image2009-natsu-2009-summer.eps-image2009-natsu.patch # debianmeetingresume2009-natsu.tex # debianmeetingresume200907.tex # debianmeetingresume200908.tex # image2009-natsu/2009-summer.eps # image2009-natsu/README nothing added to commit but untracked files present (use "git add" to track)
git clean -fで(巻き戻った)リポジトリに未登録のファイルを消す
$ git clean -f Removing 0001-add-debianmeetingresume2009-natsu.tex.patch Removing 0001-add-image2009-natsu-2009-summer.eps-image2009-natsu.patch Removing debianmeetingresume2009-natsu.tex Removing debianmeetingresume200907.tex Removing debianmeetingresume200908.tex Removing image2009-natsu/2009-summer.eps Removing image2009-natsu/README Not removing monthly-report/
git statusでworking directory cleanになったことを確認。
$ git status # On branch master nothing to commit (working directory clean)
git pullの実行で正しくリポジトリを更新できることを確認
$ git pull remote: Counting objects: 14, done. remote: Compressing objects: 100% (12/12), done. remote: Total 12 (delta 8), reused 0 (delta 0) Unpacking objects: 100% (12/12), done. From git://git.debian.org/git/tokyodebian/monthly-report 4aa66ea..f41f3a6 master -> origin/master Updating d1c4396..f41f3a6 Fast forward debianmeetingresume2009-natsu.tex | 7466 +++++++++++++++++++++++++++++++++++++ debianmeetingresume200907.tex | 158 + debianmeetingresume200908.tex | 203 + image2009-natsu/2009-summer.eps | 2032 ++++++++++ image2009-natsu/README | 1 + 5 files changed, 9860 insertions(+), 0 deletions(-) create mode 100755 debianmeetingresume2009-natsu.tex create mode 100644 debianmeetingresume200907.tex create mode 100644 debianmeetingresume200908.tex create mode 100644 image2009-natsu/2009-summer.eps create mode 100644 image2009-natsu/README $ git pull Already up-to-date.