본문 바로가기

Git

[GIT 정리] 이미 commit/push된 파일을 .gitignore에 등록하기 이 글은 GIT의 기초를 설명하기 보다는 흔히 현장에서 발생할 수 있는 상황에 대처할 수 있는 실용적인 방법들을 설명하기 위한 두번째 글이다. 프로젝트를 진행하다보면 뒤늦게, 혹은 실수로 이미 소스저장소에 올려진 파일을 .gitignore에 등록해야 할 때가 생긴다. GIT에 대한 이해가 적을 때, 이 작업은 무지 난해한 작업이었다. 그러나 자세히 정리해보니 생각보다 간단한 작업이었다. 1. .gitignore 파일이 정확히 동작하는지 확인하기.gitignore에 소스관리하지 않을 파일을 등록한 후 제대로 동작하는지 확인할 필요가 있다. 그러나 정확하게 명령을 내리지 않으면 정보가 누락되어 잘못된 판단을 할 수 있다. 우선 데모를 위해 이전회의 저장소 및 클론에서 몇가지 상황을 추가했다.클론저장소는 클론.. 더보기
[GIT 정리] 여러 조회 방법 및 충돌 파일 간단 처리 이 글은 GIT의 기초를 설명하기 보다는 흔히 현장에서 발생할 수 있는 상황에 대처할 수 있는 실용적인 방법들을 설명하기 위한 첫번째 글이다. 소스 공유 툴을 사용할 때, 모든 참여자들이 정확히 방법을 숙지하고, 정상적인 경우만 있다면 아무 문제가 없지만, 대부분은 누군가 이상한 작업을 해서 뒤죽박죽 뭔가 섞였을 때... 해결을 못하고 아마도 소스를 백업받고 아예 엎어치는 경우가 종종 있다. 이럴 때면 이걸 왜 쓰지 하는 생각이 들기도 한다. 게다가 SVN보다 GIT이 사용하기 어렵다. 솔직히 너무 어렵게 만든 것 같고 무엇보다도 명령어들이 나에게는 직관적이지 않아서 더욱 어렵다. 언젠가 확실히 이해할 필요가 있다고 생각하던 중, 시간이 되서 정리를 시작해 본다. 1. GIT 클론 저장소와 원격저장소간 .. 더보기
git 레포지토리에서 변경된 파일들중에서 원하는 파일들만 추리기 git 레포지토리에서 변경된 파일들을 모아서 제출할 필요가 있어서 사용한 명령어이다. $ git diff --name-only b847612f65a9d9024d5d943500ea0be502668341 HEAD | grep 'cc\|cpp\|h$' | xargs tar czf changed.tgz 먼저 git 레포지토리에서 변경된 파일만 찾아 파일명들을 출력하는 명령은 다움과 같다git diff --name-only commit-id commit-idcommit-id에는 HEAD 와 같은 예약어를 쓸 수 있다. 두번째 grep문장을 통해 원하는 확장자를 갖는 것들만 추리게 된다. grep의 정규식 규약을 따랐다. '$'는 행의 끝은 의미한다. 정규식의 의미는 cc 혹은 cpp 혹은 h로 끝나는 행(줄)만을.. 더보기