repo sync로 소스를 새로 내려받으려 했더니 붉은 글씨로 Error가 찍혔다. 안드로이드 개발을 하면서 git 서버를 몇 달을 사용해왔는데 처음 보는 이 낯선 에러는 또 무엇일까. 내용인즉, contains uncommitted changes 란다. commit하지 않은 변경 내역을 포함하고 있다는 것 같다.
[ 우분투(ubuntu)에서 repo sync 를 입력하였을 때의 에러 화면 (회사 보안지침을 의식한 일부 모자이크;;;) ]
그 해결책으로 에러가 나타난 해당 경로에 들어가서 git checkout -f 를 모두 해 준 다음에 다시 repo sync를 해 주었더니 에러없이 소스를 잘 내려받을 수 있었다. 일일이 경로에 들어가서 체크아웃을 시키는 것은 꽤나 귀찮은 일인데 그나마 네 개여서 다행이었지 수십개의 이러한 에러가 발생한다면...좀 아찔하다. 그런 일이 다시 없길 바라자.
예를 들어 위처럼 Error : images/:contains uncommitted changes 라고 에러가 나타났다면,
$ cd images (에러가 발생한 폴더에 들어간 뒤)
$ git checkout -f (폴더 내 파일들을 원복시킨다)
git checkout -f 의 역할은 변경된 File 들을 Head 상태로 되돌려주는 것이라고 한다. 내 Work Area의 소스와 GIT 서버의 소스가 달라서 그럴 수 있다고 하던데, 내가 변경한 기억은 없지만(...) 나 혼자서 사용하는 소스도 아니니 누군가 GIT 서버에 새로 작업한 코드를 올렸을 수도 있겠다. git checkout은 기본적으로 '코드의 원복'이 목적이며, 해당 폴더내 파일들을 되돌리는 -f 옵션 이외에도 파일명을 지정하거나 ID를 지정하는 것들도 있지만 아무래도 사용 빈도가 높은 건 -f 인 것 같다.
'공부하는 개발자' 카테고리의 다른 글
| 파이어폭스로 PC에서 모바일웹 UI 확인하기 (2) | 2011/11/21 |
|---|---|
| repo sync를 하였을 때 에러가 발생하였다면 git checkout -f (0) | 2010/11/23 |