달력

52024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

'복구'에 해당되는 글 2건

  1. 2010.12.08 git commit 복구하기 3
  2. 2010.03.03 홈페이지 텍스트큐브로 전환

git commit 복구하기

Tool/git 2010. 12. 8. 01:26
git를 사용하면서 과감히 commit을 삭제할 때가 있는데, 때로는 이걸 복구해야 할 때가 있다.
git reset --hard 혹은 git branch -D 를 실수로 했을 때가 그 대표적 예일 것이다.

결론부터 얘기하면 git reset --hard에 대해서 다음과 같이 복구할 수 있고,
$ git reset --hard HEAD@{1}
git branch -D에 대해서 다음과 같이 복구할 수 있다.
$ git branch <new branch> HEAD@{1}
=> $ git branch mybranch HEAD@{1}

사실상 git branch -D 는 실행 직후 아래와 같은 log를 참고하여
Deleted branch temp (was c64b6d0).
아래와 같이 복구할 수도 있다.
$ git branch <new branch> <commit>
==> $ git branch mybranch c64b6d0

이는 git 내부에 소위 쓰레기통 같은 것이 있어서 사용자가 reference를 삭제하더라도
reflog에서 30일간 reference를 유지하여 git의 garbage collection으로부터 보호하기 때문이다.
reflog는 HEAD의 commit 이동을 기록하며, 아래와 같은 명령으로 이를 확인할 수 있다.
$ git reflog
HEAD@{#}에서 #는 HEAD가 #번 이전에 reference한 commit으로 HEAD@{1}가 직전이기 때문에 위와 같이 복구할 수가 있는 것이다.

위 내용은 아래 참고 문서에서 보고 따라한 것으로
아래 문서에서는 git reset --hard를 하기 전에 git stash를 통해 임시 저장하거나,
cron과 같은 것을 이용해서 자동으로 매일 git stash 하여 저장하는 것을 추천하고 있다.

참고 : Git from the bottom up - Git from the bottom up

'Tool > git' 카테고리의 다른 글

git 알면 편한 기능  (0) 2010.11.13
git reference  (0) 2010.07.05
git staic build  (0) 2010.04.27
git init --bare 이용  (1) 2010.04.23
git init --bare 발단  (0) 2010.04.23
Posted by neodelicious
|
<배경>
기존 테터툴즈 프로그램에서 잘 쓰던 파일 업로드 기능이 안 되어서 해결 방법을 알아보던 중
텍스트큐브라는 이름의 테터툴즈 차기 버전으로 업그레이트 하면 해결된다고 한다.

이 와중에서 기존 mireene 호스팅 서버의 PHP 버전이 낮아서 서버 이전을 요청한 후 확인하니,
서버 이전은 되었는데 mysql 복구가 제대로 안 되어 있었다.
이를 해결하려고 mysql 전혀 몰라서 mysql 명령어도 찾아보고
별 짓을 다 해서 거의 6시간 이상 낑낑대어서 해결했다.

참고적으로 테터툴즈에서 기존에 사용하던 tt_ 접두사의 DB를 그대로 사용하면서 할 수도 있는 것 같은데,
기존의 것과 중복되는 것 같아 적당히 되는 것 같은(?) 확인만 했다.
아무튼 아래와 같이 해결했다.

<자료 복구>
우선 기존 서버에 있는 html 이하의 디렉토리를 모두 새 서버로 복사했고,
sql data 가 없어서 실제로 블로그가 정상 동작하지 않음을 확인했다.
그래서 우선 기존 서버의 mysql에서 다음과 같이 sql data를 파일로 추출했다.
mysqldump -u delicious -p delicious > dump_100228.sql
그리고 이 파일을 새 서버로 다음과 같이 sql에 적용하려 하니,
mysql -u delicious -p delicous < dump_10228.sql
적용된 것은 같은데 중복되는 값이 있다는 에러가 났다.
여튼 그래서 한참 찾다가 아래 주소를 통해 호스팅 업체에서
www.neodelicious.com/mysql
mysql를 편하게 이용할 수 있는 기능을 제공하고 있었다.
여기에서 기존에 delicious database의 잘못된 data를 모두 삭제(drop)하고,
또한 위에서 만든 dump_10228.sql 파일을 에러 없이 적용(sql > Location of the textfile)했다.

<텍스트큐브 설정>
다음과 같이 먼저 준비하고,
tar xvzf ./etc/textcube-1.8.2-expansion.tar.gz
mv ./tc/ ./html
chmod 757 ./html ./html/skin/blog/
아래 1~7단계를 모두 한 후에
아래와 같이 권한 설정을 복구했다.
chmod 755 ./html ./html/skin/blog/

1 단계
http://www.neodelicious.com/setup.php
2 단계
'새로운 텍스트큐브를 설정합니다'
3 단계
데이터베이스 관리 시스템 : MySQL
데이터베이스 서버 : localhost
데이터베이스 포트 : 3306
데이터베이스 이름 : delicious
데이터베이스 사용자명 : delicious
데이터베이스 암호 : **********
테이블 식별자 : tc_
4 단계
$ chmod 777 ./html ./html/skin/blog/
5 단계
단일 사용자 : 단일 블로그
6 단계
이메일 : kjwdelicious@naver.com
비밀번호 : *******
블로그 식별자 : delicious
필명 : delicious
7 이후 단계
'텍스트큐브 관리 툴'로 로그린 하신 후 필요사항을 수정하십니오
http://www.neodelicious.com/owner
그리고 아래 주소에 가서
http://www.neodelicious.com
설정 > 데이터 관리 > 데이터를 복원합니다.
$ cp ./Tattertools-Backup-20100228.xml ./html
웹에서 파일 가져오기
백업파일 URL : http://www.neodelicious.com/Tattertools-Backup-20100228.xml

'Personal Interest > ETC' 카테고리의 다른 글

ubuntu 10.10 netbook version - unity  (0) 2010.11.14
neodelicious git repos  (0) 2010.07.04
Eclipse bug in Ubuntu 9.10  (0) 2010.02.15
ssd 대신 tmpfs 을 쓰자  (0) 2010.02.14
넷북을 지르닷~~  (0) 2010.02.08
Posted by neodelicious
|