본문 바로가기

기본공부/깃(Git)&깃허브(GitHub)

[깃, 깃허브 배우기] 깃 add명령어로 스테이징 에리어로 파일 옮기기 -4- (by. 드림코딩)

텍스트 파일로 프로젝트를 만들어보자.

깃이라는 폴더 안에 abc 총 3가지의 파일을 만들어 보는데 echo라는 명령어를 이용해서 간단하게 만들어본다.

 

"echo 작성할 내용 > 저장할 이름.txt" 로 입력하고, start 명령어로 폴더를 열어보면 a.txt가 생성된 것을 확인할 수 있다. 이렇게 b와c파일도 똑같이 만들어 준다. 

 

ls 명령어로 abc파일이 만들어진 것을 확인할 수 있다.

그리고 스크린샷을 보면 echo 명령어 입력하기 전에는 (master) 브랜치가 하얀색이었는데 주황색으로 색이 변경된 것을 확인할 수 있는데 이것은 워킹 디렉토리에 아직 커밋되지 않은 변경사항이 생겼다는 것을 알려준다.

 

여기에서 "git status"를 이용하면 지금 현재 파일의 상태들을 확인해 볼 수 있다.

 

 

대략적인 정보들을 확인해 볼 수 있는데, On branch master로 아직 마스터 브랜치에서 작업하는 중이고, No commits yet로 아직 커밋은 안된 상태이며, Untracked files 하며 abc파일들이 있고, 아래 noting added to commit but untracked files present (use "git add" to track)로 아직 커밋 할 것은 없지만, untrack된 파일들이 있기 때문에 "git add"명령어로 트랙킹할 수 있다라는 내용이다. 

 

깃이 트랙킹할 수 있도록 스테이징 에리어로 옮기려면 "git add"라는 명령어를 이용하면 된다. a라는 파일을 만들었고 이제 커밋할 준비가 되어 있다면 "git add a.txt"를 입력하면 된다.

 

"git add a.txt"를 하고 "git status"를 확인하면 커밋할 준비가 되어있는 변경사항 새로운 파일 a.txt를 확인할 수 있다.

 

a.txt를 add하고 상태를 확인하면, a.txt가 커밋할 준비가 되어있다고 나와있다. 이렇게 해당 파일은 준비가 되었고 스테이징 에리어로 옮겨야할 상황이 온다면 "git add"라는 명령을 이용하면 된다. ("git add b.txt c.txt"와 "git add *.txt"로 텍스트 파일을 쉽게 선택할 수 있다.)

 

abc파일 모두 커밋할 상태가 되어있다.

 

 

여기서 새로운 문자열인 yeony를 "echo yeony >> a.txt" 명령어로 다시 a.txt파일에 추가하고 다시 상태를 확인하면, 총 3가지 파일은 커밋할 준비가 되어있는데, a.txt 파일이 수정 되어져 있는것을 확인할 수 있다.

 

"echo yeony >> a.txt" 명령어로 수정사항이 생겨 tracked-modified에 a.txt파일이 있다.

 

시각적으로 각각의 파일의 상태를 조금 더 자세히 확인할 수 있는 소스트리를 보면 깃 리파지토리를 더블클릭하면 상세한 정보들을 확인할 수 있다.

 

 

스테이징 에리어에 있는 abc파일은 우리가 "git add"라는 명령어를 이용해서 추가할 당시 그 상태의 파일들이 저장되어 있는 것을 확인해 볼수 있다. 스테이징 에리어에 있는 파일들은 모두 "hello world!"의 내용이지만, 워킹 디렉토리에 있는 파일은 "hello world! yeony"로 yeony가 추가된 것을 볼 수 있다. 

 

스테이징 에리어에는 abc파일(hello world!)이 있고, 워킹디렉토리 tracked-modifed로 a파일(hellow world! yeony)이 있는 것이다. 여기서 "git add a.txt"를 입력하고 깃 상태를 확인하면 abc파일들이 다 스테이징 에리어에 옮겨진 것을 확인해 볼 수 있다.

 

수정된 a.txt를 "git add a.txt"명령어를 입력해서 스테이징 에리어에 옮겨진 것을 확인할 수 있다.

 

또한, 여기서 "git rm --cached <file>"명령어를 이용해서 다시 스테이징 에리어에서 워킹 디렉토리로 옮길 수 있다.

해당 명령어를 입력하고 깃 상태를 확인해보면 파일들이 untracked된 상태를 확인할 수 있다.

 

"git rm -cached *"명령어로 파일들이 untracked 상태가 되었다.

 

"git add *"를 입력하면 해당 경로에서 "ls"를 입력했을 때 나오는 파일 전부를 스테이지 에리어로 옮겨가는 것을 확인할 수 있다.

 

만약에 a.txt를 "rm a.txt"로 제거하고 "git add *"명령어를 입력하면, 삭제된 a파일은 디렉토리에 없었기 때문에 깃 스테이징 에리어에 추가되지 않는다. 

 

삭제된 a.txt는 스테이징 에리어에 추가되지 않는다.