3.1. 초기 설정
(사용자 정보 입력)
이름: $ git config --global user.name "John Doe"
이메일: $ git config --global user.email johndoe@example.com
편집기: $ git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -nosession"
설정 확인 : $ git config --list
※ 도움말
$ git help <verb>
<verb> 안에 commit, config 등을 넣으면 해당 명령어 목록을 보여줌.
3.2. Git 저장소 만들기
- 기존 디렉토리 사용
$ cd c/Users/my_project 와 같은 방식으로 사용 후
$ git init 명령어 사용으로 .git 하위 디렉토리 생성
$ cd .. → 상위 폴더로 이동
- 기존 저장소 클론
$ git clone 저장소명
3.3. 상태 확인
$ git status
생성된 파일들의 상태를 확인할 수 있다.
수정된 파일이 있는지, 커밋할 상태인지 등을 확인할 수 있다.
※ $ git status -s 로 파일 상태를 간략하게 확인할 수 있다.
A: Staged 상태로 추가한 파일 중 새로 생성한 파일
M: 수정한 파일
??: 아직 추적하지 않은 새 파일
3.4. 파일 생성
$ touch 파일명
- 빈 내용의 파일 생성
- 동일한 이름이 존재하면 타임 스탬프만 갱신 → 해당 파일은 unstaged 상태로
$ echo 'My Project' > README
- README라는 이름의 파일에 'My Project'라는 내용을 추가
- 이미 존재하는 파일에 >> 를 사용하면 내용 추가
3.5. 파일 추적
$ git add README
파일을 commit 할 수 있는 상태로 만듦
add 명령어를 수행한 이후 파일을 수정하면 수정한 파일은 unstaged 상태가 된다. add 명령을 실행했을 때의 버전이 커밋되기 때문이다. 그렇기 때문에 파일을 수정했다면 다시 한번 add 명령을 실행해서 staged 상태로 만들어야 한다.
3.6. .gitignore
Git이 관리할 필요가 없는 파일들을 관리
echo 명령어를 사용하여 내용 추가
$ cat .gitignore 를 통해 내용 확인 가능
3.7. 수정 내역 확인
$ git diff
파일에서 어떤 내용이 변경되었는지 확인할 수 있다.
commit 이후 수정한 모든 내역을 확인할 수 있는 것이 아니라 unstaged 상태인 것들만 보여준다.
3.7.1. $ git diff --cached
staged 상태인 파일을 보고 싶다면 해당 명령어를 사용하면 된다.
3.8. commit
$ git commit -m "message"
로 커밋할 수 있다.
3.8.1. $ git commit -a
앞서 언급했듯이 파일을 수정하고 나서는 add 명령어를 사용하여 staged 상태로 만들어야 한다.
하지만 -a를 사용하면 해당 단계를 생략할 수 있다(tracked 상태인 파일만). (사용엔 조심해야 할 듯)
3.9. 파일 삭제
$ git rm 삭제할파일
3.10. 파일명 수정
$ git vm 이름바꿀파일 어떤이름으로바꿀지
4. 커밋 히스토리 확인
$ git log
※ git log 탈출법: q 누르면 됨
4.0.1. $ git log -p
- 커밋할 때의 수정 내역들을 확인할 수 있다.
4.0.2. $ git log -2
- 가장 최근 2개의 결과만 확인할 수 있다.
4.0.3. $ git log --stat
- 몇 개의 파일이 변경되었나, 또 각 파일이 어떻게 수정되었나(몇 개의 라인을 추가 삭제했는지) 확인할 수 있다.
4.0.4. $ git log -S 검색
- 검색에 해당하는 특정 텍스트가 포함된 커밋 결과를 알려준다.
4.1. $ git commit --amend
- 방금 전 커밋에 덮어쓰기를 한다. 이 명령어를 수행하면 이전의 커밋은 일어나지 않은 일이 된다.
파일 하나를 누락하거나 오타 수정 등의 불필요한 커밋을 줄일 수 있다.
4.2. 원격 저장소 확인하기
$ git clone 원격저장소
$ git remote add 별칭 원격저장소 → URL 대신 별칭 사용 가능
4.3 fetch
- 로컬에는 없지만 원격저장소에 올라가 있는 데이터를 모두 가져옴
$ git fetch 별칭
4.4. push
- commit한 파일을 원격 저장소에 올리는 명령어
$ git push 원격저장소 브랜치이름
4.5. pull
- 원격 저장소의 데이터를 가져오고, 자동으로 현재 작업하는 로컬 브랜치와 병합
$ git pull 원격저장소 브랜치이름
5. 브랜치
- 개발할 수 있는 환경의 갈래
5.1. 브랜치 생성
$ git branch 이름
5.2. 브랜치 변경
$ git checkout 이름
5.2.1. checkout 명령어는 특정 version으로 이동할 때도 사용된다.
$ git checkout 커밋해쉬
명령어를 사용하면 된다.
commit hash는 commit을 했을 때 자동으로 생성되는 40개의 문자를 의미하고, 주로 앞에 7글자로 축약해서 사용한다.
5.3. 브랜치 병합
checkout 명령어를 이용하여 master 브랜치로 이동 후
$ git merge 이름
5.4. 브랜치 삭제
$ git branch -d 이름
6. 충돌(conflict)
- 두 브랜치에서 같은 파일의 한 부분을 동시에 수정하고 Merge 할 때 발생하는 문제
$ git status 명령어로 충돌이 일어난 부분 확인 후 수작업, add, commit 명령어 차례로 수행
'GIT' 카테고리의 다른 글
| git reflog (1) | 2023.10.24 |
|---|---|
| git rebase (0) | 2023.08.30 |
| git merge (0) | 2023.08.30 |
| GIT? + 용어 + 설치 (0) | 2023.08.24 |