Status
git작업 상태는 다음과 같은 구조로 되어있다.
Working Tree : 작업된 파일, 버전으로 만들어지기 전 단계.
Staging Area : 버전으로 만들 대상파일을 올려놓는 곳.
Repository : Staging Area
에 올려있던 파일을 버전으로 저장하는 곳.
Create
먼저 테스트 파일을 생성한다.
git status
: 이 명령어는 Working Tree
의 작업 상태를 확인.이제 git status
명령어를 입력하여, 상태를 확인해보자.
git add filename
: Working tree
에 있는 filename
을 Staging Area
에 올린다. Working Tree
에 있는hello1.txt
파일이 보이고, 해당 파일이 Untracked files
라고 표기 된것을 볼 수 있다. Untracked files
은 직역하면 추적되지 않은 파일이라는 뜻으로, 버전관리 대상이 아닌 파일이라는 뜻이다.
해당 파일을 버전관리 대상으로 전환하기 위해서는 파일이 생성되고 한 번은 Staging Area
에 올려져야 한다. git add hello1.txt
를 입력하고 다시 상태를 확인 한다.
해당 파일이 new file
로 인식된것을 볼 수 있다. Staging Area
에 파일이 올라가고 이제 버전관리대상 파일로 지정된 것이다.
이제 버전을 만들보자.
git commit
: Staging Area
에 있는 파일을 버전으로 만든다(Repository
에 저장). 뒤에 옵션이 없을 경우 commit editor
가 뜬다. 옵션 -m
을 추가하면 에디터 없이 commit messege
를 바로 입력 할 수 있다.
git log
: Repository
에 commit
된 버전들을 확인.
--stat
를 주게되면 연관된 파일들과 commit
사항을 좀더 자세히 알아 볼 수 있다. -p
를 주면 각 버전과 파일들의 내부 변경 내용을 볼 수 있다. 다시한번 Working Tree
를 확인해보면
위와 같이 확인 할 수 있다. 수정된 파일이 없다는 의미로 관리할 변경사항이 없다는 의미다.
파일을 수정하여 변화를 살펴보자.
파일의 내용을 수정하고.
Working Tree
를 확인해보면,
파일이 수정된것을 인식하는 것을 볼 수 있다.
나머지는 위와 동일한 방법으로 진행하면 된다.
git add
- > git commit
로그에 새로운 버전이 올라가 있는것을 확인 할 수 있다.
여러개의 파일을 버전으로 묶어서 관리하고 싶다면?
먼저 hello1.txt
파일을 수정하고, hello2.txt
파일을 생성한뒤, Working Tree
를 보면 다음과 같다.
여기서, 새로 생성된 hello2.txt
를 Untracked
상태로 Staging Area
로 올려줘야 한다.
두개 파일을 모두 Staging Area
로 올려주자. git add
뒤에 .
을 붙여 주면,
모든 파일을 올려줄 수 있다. commit
하고 로그를 확인해보자.
두개의 파일이 하나의 버전으로 묶여있는 것을 확인 할 수 있다.
추가
git commit -am "Message"
명령어로 add
와 commit
을 동시에 할 수도 있다.
하지만 새로 추가되어 Untracked
상태인 파일은 먼저 git add
로 추가해준뒤에 실행해야 오류가 나지 않는다.
commit
할 때 뜨는 기본 에디터는 다음과 같이 변경할수 잇다.
git config --global core.editor "Editor Name"
주로 nano
를 사용하므로 git config --global core.editor "nano"
로 입력하면 기본 에디터가 nano로 설정된다.
출처
https://opentutorials.org/course/301
https://stackoverflow.com/