붉은 글씨로 나오는 파일들은 Untracked files들은 로 형상 관리가 되지 않는 파일들이다.
git add
git add [파일/디렉토리경로]
작업 디렉토리의 변경 내용의 일부만 스테이징 영역에 넘기고 싶을 때는수정한 파일이나 디렉토리의 경로를 적으며 된다.
git add .
현재 디렉토리의 모든 변경 내용을 스테이징 영역으로 넘기고 싶을 때는, .을 하면 모든 파일들이 변경 내용으로 된다.
git add -A.과 같은 기능이다.
하지만 차이점은 -A 옵션은 디렉토리 어디에 위치하든 모든 변경 내용을 넘기고
. 옵션은 실행한 디렉토리 하위에서 발생한 변경 내용을 넘긴다.
(만약 git add .를 최상위 디렉토리에서 실행하면 -A와 동일하다.)
git commit
git commit -m [커밋명]
커밋명을 적으면 add로 스테이징한 파일들을 커밋해서 거의 영구적으로 기록할 수 있다.
commit 옵션
-m : vim에서 별도의 메세지를 작성할 필요없이 인라인 형식으로 바로 커밋 메세지 작성한다.
-a : 별도의 add명령어를 사용하지 않고 수정된 파일에 대해 add, commit을 한번에 수행한다. (단, 한번도 add되지 않은 파일은 add를 따로 작업 해줘야함.)
-am : a, m의 옵션을 합친 형태이다.
git log
커밋 기록을 확인 할 수 있다.
git reset
git reset [옵션] [일련번호6자리]
옵션
--hard : 돌아가려는 이력 이후의 모든 내용을 지워 버린다.
--soft : 돌아가려 했던 이력으로 돌아가고, 이후의 내용이 지워지지 않고,
해당 내용의 인덱스(스테이지)도 그대로 있다.
--mixed : 돌아가려는 이력 이후에 변경된 내용에 대해서는 남아 있지만, 인덱스는 초기화 된다.
git revert
이 기능은 특정 commit을 되돌리는 작업도 하나의 commit으로 간주하여 commit history에 추가하는 방식이다.
reset의 --soft, --mixed와 동일한 결과를 가져오지만 history가 다르다.
3.3. Branch: 동시에 여러 코드를 관리하기
브랜치 확인
git branch
실행 결과를 보면 branch들을 볼 수 있다.
그 중 *가 있는 것은 현재 활성화된 branch이다.
브랜치 생성
git branch [브랜치명]
브랜치 이동
git checkout [브랜치명]
브랜치 옵션
git branch -D[브랜치명] // 삭제
git branch -r // 원격 저장소의 브랜치 확인
git branch -v // 브랜치마다 마지막 커밋 메시지 확인
git branch --merged[브랜치명] // [브랜치명]에 merge가 된 브랜치 확인한다.
// 만약 [브랜치명]을 따로 입력하지 않으면 현재 선택된 브랜치에 머지된 브랜치 목록 조회한다.
git branch --no-merged [브랜치명] //위와 반대로 merge가 되지 않은 리스트 조회한다.