본문 바로가기

SCM/Git

(23)
15. Git 브랜치 합치기 - git merge 브랜치를 여러개 만들었을 때 다른 두 개의 소스를 병합해야 하는 경우가 생긴다. 이때 사용하는 명령이 git merge 이다. git merge 아래 명령은 master 브랜치에 develop 에 있는 소스를 병합한다. $ git checkout master $ git merge develop 병합은 아래와 같은 상황이 있을 수 있다. Fast forward Merge 현재 작업하는 프로젝트의 상태가 아래와 같을때 아래 명령중 하나로 브랜치를 하나 만들고 HEAD 포인터의 위치를 옮겨보자. $ git branch iss53 $ git checkout iss53 $ git checkout -b iss53 여차 저차 해서 아래와 같은 상황이 되었을 때 (현재 브랜치인 Master 가 가리키는 C2 가 Mer..
14. Git 브랜치 만들고 이동하기 - git branch, git checkout Git 에서 사용하는 브랜치는 Repository 내부의 디렉토리 정도로 이해해도 된다. 필요에 따라 디렉토리를 나누고 특정 파일을 각각의 디렉토리에 저장하며 필요에 따라 각 디렉토리의 싱크를 맞추는 작업이 필요하다. 이를 위해 Git 에서는 브랜치를 다루는 git branch 명령을 제공한다. git branch 브랜치를 생성, 수정, 삭제하는 기본적인 명령은 아래와 같다. $ git branch [브랜치명] // 브랜치 생성 $ git branch -d [브랜치명] // 브랜치 삭제 $ git branch -m [기존 브랜치명] [바뀔 브랜치명] // 브랜치 이름 변경 조건으로 Commit 된게 하나도 없다면 브랜치는 생성할 수 없다. 왜냐하면 master 라는 브랜치는 포인터라서 먼가 가리키는게 필..
13. Git 완료된 커밋과 비교 - git diff 다른 커밋과 현재 Working 디렉토리를 비교하는 명령은 git diff 를 사용한다. git diff $ git diff // 현재 브랜치의 마지막 커밋과 차이점 비교 $ git diff [Commit ID] // 특정 커밋과 차이점 비교 $ git diff [Commit ID] -- [파일 경로] // 특정 커밋과 특정 파일의 차이점 비교
12. Git 완료한 커밋을 되돌리기 - git reset 완료한 커밋을 되돌리기 완료한 커밋을 수정해야 할 때는 --amend 옵션을 사용한다. $ git commit --amend 예를 들어 어떤 파일을 깜박한 경우에는 아래와 같이 사용하면 된다. $ git commit -m 'initial commit' $ git add forgotten_file $ git commit --amend 이렇게 명령을 치면 config 에 등록한 editor 가 열리는데 이때 커멘트를 수정하면 된다. 결과적으로 해당 커밋에 수정한 내용이 추가되게 되면 커맨트가 새롭게 변경된다. 파일 상태를 Stage 에서 Unstage 로 변경하기 따로 따로 커밋을 해야 하는데 실수로 모두 Staging Area 에 올린 경우 ( git add * 따위로 ) 몇몇 파일을 Unstage 로 변..
11. Git 커밋 이력조회 - git log 저장소에 있는 Commit 이력을 조회할 경우 git log 명령을 사용한다. git log 대표적으로 간단히 사용하는 형식은 아래와 같다. $ git log // 커밋 이력 상세 조회. 가장 최근의 커밋이 먼저 나오고 스페이스 바를 누르면 변경 이력이 하나씩 보여진다. $ git log --oneline // 커밋 이력 중 커밋 ID 와 타이틀 메시지만 조회 $ git log --oneline --decorate --graph --all// 모든 브랜치 커밋 이력 조회 $ git log --index.html // 특정 파일의 변경 커밋 조회 $ git log -p // diff 를 보여준다. $ git log -p -2 // 최근 두 개의 결과만 diff 를 보여준다. --stat 옵션으로 각 커밋의..
10. Git 레포지토리에 커밋하기 - git commit Git 은 파일을 레포지토리에서 파일을 레포지토리에 저장하는 명령인 git commit 가 있다. 이 명령을 수행할 수 있는 파일은 Staged 영역에 올라온 파일만 가능하다. 앞서 살펴본 Git 레포지토리에서 파일의 라이프 사이클에서 Staged => Unmodified 에 해당한다. git commit git commit 명령은 아래와 같은 형식으로 할 수 있다. git commit 명령을 실행할 때 -a 옵션을 추가하면 modified 상태의 파일을 자동으로 Staging Area 에 넣고 git commit 해준다. 그래서 git add 명령을 실행하는 수고를 덜 수 있다. 단 Untracked 된 파일의 경우는 -a 옵션을 줘도 아무 의미가 없다. $ git commit // git commit..
09. Git 파일 관리 - git mv git 의 mv 명령을 사용하면 파일의 이름을 바꿀 수 있다. $ git mv file_from file_to 그리고 status 명령을 보면 이미 renamed 되었다는 것을 추적하고 있다. $ git mv README.md README $ git status On branch masterChanges to be committed: (use "git reset HEAD ..." to unstage) renamed: README.md -> README 사실 git mv 는 아래의 명령을 내부적으로 수행해서 이를 추적하는 것이다. $ mv README.md README $ git rm README.md $ git add README 즉 git mv 는 일종의 단축 명령어이다.
08. Git 파일 관리 - git add Git 은 파일을 레포지토리에서 파일을 추적하도록 하는 명령인 git add 가 있다. 파일을 추적하는 것이지 실제 레포지토리에 저장된 상태는 아니다. 앞서 살펴본 Git 레포지토리에서 파일의 라이프 사이클에서 Untracked => Staged 에 해당한다. git add 즉 git add 명령은 working directory 파일을 레포지토리의 staging area 로 올리게 된다. 이 상태는 git commit 명령으로 로컬 저장소에 올리기 전에 최종 점검을 위한 Area 로 Git Repository 에서 관리하는 ( Tracked ) 된 상태가 된다. 아래와 같이 사용할 수 있다. git add //특정 파일을 Staged 상태로 변경 git add . // 모든 파일을 Staged 상태로 ..