commit: 5개의 글
오늘 다루어볼 내용은 평소에 조금 헷갈렸던 Git reset과 revert이다. 깃에서 되돌리기 위한 방법은 크게 2가지가 있다. 바로 reset과 revert이다. 그렇다면 둘의 차이점은 무엇일까? reset : 시계를 마치 과거로 돌리는 듯한 행위 revert : 특정 사건을 없었던 일로 만드는 행위 git reset "돌아가고 싶은 커밋 hash" 먼저 reset을 알아보자. reset은 특정 커밋으로 돌아가는 행위다. 그말은 특정 커밋 이후의 커밋이력 모두 없어지게 되는 것이다.(물론 옵션마다 상태가 다르긴하다) reset에는 옵션이 3가지가 있다. hard, soft, mixed 각 옵션에 대한 설명은 아래와 같다. hard : 돌아가려는 커밋 이후의 모든 내용을 다 지워버린다. soft : 돌..
GitHub에 새로운 remote repository를 만들고 기존 IntelliJ 프로젝트(모듈)을 연동하는 방법에 대해 다룬다. IntelliJ는 2019.3 버전을 기준으로 한다. 과정은 다음 순서로 진행된다. GitHub remote repository 생성하기 IntelliJ에 GitHub 계정 등록하기 IntelliJ에 remote repository 등록하기 기존 프로젝트(모듈)로 Git local repository를 만들고 Commit, Push IntelliJ에서 Git을 사용하려면 PC에 Git을 설치하고 Git 바이너리 파일을 IntelliJ에 등록해야 한다. 이게 되어있지 않으면 다음 내용을 참고해서 선행해두어야 한다. Git 플러그인 확인 Settings - Plugins에서 설..
커밋로그 보기 전달인자 -1, -2,를 주어 출력수를 제한 할 수 있습니다. 전달인자 -p를 사용하여 변경된 내용을 같이 볼 수 있습니다. 전달인자 –graph를 사용하여 브랜치 트리를 볼 수 있습니다. git log 커밋로그 날짜범위 지정 전달인자 –since를 사용하여 원하는 시간 동안의 커밋로그를 볼 수 있습니다. 전달인자 –before를 사용하여 일정시간을 제외한 나머지 커밋로그를 볼 수 있습니다. 시간 형식은 24 hours, 1 minute, 2012.01.10, 2012-11-10등을 사용 가능합니다. git log --since="5 hours" git log --before="5 hours" 커밋로그 리비전 범위 지정 1. 전달인자 format:”%h %s”를 추가하여 짧은 해쉬와 커밋로..
BRANCH활용하기 기본적으로 하나의 브랜치 즉 마스터브랜치(타:trunk)만 사용해도 버전관리 시스템이 제공하는 모든 이점을 얻을 수 있습니다. BRANCH란? 우리는 일반적으로 여러가지 작업을 번갈아 가며 진행합니다. 새로운 기능을 추가하거나 유지보수가 쉽도록 리팩터링할 수도 있고 이따금씩 발생하는 버그를 수정하기도 합니다. 어떠한 작업도 무시할 수 없으며 적절히 균형을 마추며 진행해야 합니다. 단방향 이력은 이러한 요구를 다루리가 쉽지 않습니다. 그래서 브랜치가 필요합니다. git에서는 모든 것이 브랜치로 간주되므로 브랜치를 생성하는 비용이 크지않습니다. 모든 파일을 새로운 디렉토리로 복사하는 다른 시스템들과는 다르게 git의 브랜치는 해당 브랜치가 만들어진 시점부터 적용된 커밋만 추적합니다. 최신..
깃(Git)을 이용하여 작업을 하다가 리베이스(rebase) 실수 또는 잘못된 명령어나 조작 실수 등 다양한 이유로 인해 자신의 피땀눈물이 담긴 커밋(commit)들을 날려먹는 경우가 은근히 있다. remote에 push해서 백업을 만들어놓고 로컬에서만 작업했으면 다시 remote 저장소에서 받아오면 되지만, 그렇지도 않은 경우에는 어떻게 이 지워진 커밋들을 다시 읽어오거나 복원할 수 있을까?다행히도 한번이라도 commit이 된 내용이라면, 심지어 현재 보이는 git tree 상에 보이지 않는 commit들 까지도 local git repository안에 commit log들이 남아 있다. 덕분에 이를 검색해서 해당 commit 상태로 복원 할 방법이 존재한다.git의 명령어 중에 reference lo..