1. git디렉토리 생성하기
git init
프로젝트의 디렉토리를 git으로 버전관리할 수 있음
프로젝트의 디렉토리 안에 .git이라는 디렉토리가 생성됨 ->.git디렉토리 안에 버전관리를 위한 기능들을 알아서 관리해줌
(.git파일은 우리가 건드는 파일이 아니기 때문에 폴더에서 확인하면 찾을 수 없음! 기본적으로는 숨김파일 처리가 되어있음)
2. 사용자 정보 설정하기
(1) git을 사용하고 있는 사용자의 이름을 설정함
git config user.name "사용자이름"
(2) git을 사용하고 있는 사용자의 이메일을 설정함
git config user.email "사용자이메일"
=> 히스토리를 남긴 사용자의 정보를 확인할 수 있음
3. Staging Area에 Commit하기
commit : 특정 버전을 저장하는 것
◾ Working Directory : 실제로 다루고 있는 프로젝트 디렉토리 자체를 의미함
◾ Staging Area : 특정 버전으로 관리하고 싶은 파일들을 모아두는 장소
◾ Repository : 특정 시점의 Staging Area의 모습을 commit으로 남기면 그 commit들이 저장되는 영역
=> 커밋들이 레파지토리에 순차적으로 저장되면서 버전관리를 함
👇 중간에 Staging Area가 필요한 이유에 대해서는 아래의 포스팅에서 참고하기
https://github.com/yeoseon/tip-archive/issues/85
Staging Area에 올리는 명령어
(1) 특정 파일(들)을 올리기
git add 파일이름 #파일 하나만 올리는 경우
git add 파일이름 파일이름 파일이름 #여러개의 파일을 올리는 경우
(2) 전체 파일을 올리기
git add .
Staging Area에 있는 파일을 commit하는 명령어
git commit -m "커밋메시지" # -m 옵션은 메시지를 의미함
커밋메시지에는 어느 부분이 변경되었는지를 팀원들이 쉽게 파악할 수 있도록 친절하게 작성해주는 것이 좋음 = 협업을 위함
현재까지의 commit기록을 확인하는 명령어
git log
두 커밋을 비교하는 명령어
git diff 커밋1id 커밋2id
◾ 커밋id의 앞 네 자리만 입력해도 git이 인식할 수 있음
f371053ce09cd981adc2b0a18817ddf408e58012 => f371
◾ q를 눌러서 log창에서 나옴
4. Commit간에 이동하기
◾ HEAD : 현재 내가 위치해있는 커밋을 가리키는 식별자
◾ (기본적으로는 가장 최신 커밋에 위치해있음)
HEAD가 가리키는 커밋을 변경하는 명령어
git reset --hard 이동하고싶은커밋id
git reset --mixed 이동하고싶은커밋id
git reset --soft 이동하고싶은커밋id
◾ Hard : HEAD가 가리키는 커밋의 모습대로 Working Directory의 모습이 변경됨(파일 변경)
◾ Mixed : Working Directory상태는 변경되지 않고 Staging Area의 상태만 변경됨
◾ Soft : Working Directory, Staging Area의 상태는 변경되지 않고 HEAD만 이동
현재 git의 상태를 구체적으로 확인하는 명령어
git status
(1) Hard와 Mixed,Soft옵션의 차이점
Hard : Working directory를 건드림
Mixed,Soft : Working directory를 건드리지 않음 (변경 안됨)
(2) Mixed와 Soft옵션의 차이점
Mixed : Staging Area를 HEAD가 가리키는 커밋상태로 변경
Soft : Staging Area도 안건드림
(3) Mixed와 Soft옵션을 사용하는 이유
만약 레파지토리에 이미 commit6까지 상태인데 4~6까지의 커밋 내용은 마음에 들지 않고, commit3이 가장 만족스러운 상태이다. 그러면 mixed나 soft 옵션을 사용해서 레파지토리의 HEAD를 commit3에 위치시켜두고, 현재 내 Working Directory에 있는 commit7을 HEAD의 위치에 commit하게 되면 불만족스러워썬 commit4~6의 내용은 생략할 수 있다.
HEAD가 가리켰던 commit기록을 모두 보여주는 명령어
git reflog
5. 외부저장소에 commit하기
(1) 외부저장소 : Github, GitLab, Bitbucket 등..
(2) 외부저장소를 사용할 때 장점
◾ 프로젝트 복구 가능
◾ 협업과 동시에 버전 관리 가능
외부 저장소의 url을 알려주는 명령어
git remote add origin 외부저장소url
◾ git remote : 외부 저장소를 사용
◾ url이 가리키는 외부 서버의 프로젝트를 원격 저장소로 지정, 이름은 origin으로 설정
◾ 한 번만 remote해주면 됨!
외부저장소에 저장하는 명령어
git push -u origin master
◾ git push : 현재 내 프로젝트의 내용을 전부 origin에 업로드
외부저장소에 있는 프로젝트를 맨 처음 내 컴퓨터에 가져올 때 사용하는 명령어
git clone 원격저장소url
◾ 처음 한 번만 가져옴
◾ clone명령어로 프로젝트를 가져온 경우 새로 remote해줄 필요 없음
외부저장소의 내용을 가져오는 명령어
git pull
◾ 현재 remote되어있는 저장소에서 최신 프로젝트 내용을 가지고 옴
* 원격저장소의 경우 협업툴로 사용하는 경우가 많기 때문에 원격저장소의 프로젝트 내의 최신 커밋내용이 내가 커밋하려는 내용에 포함되지 않은 경우 업로드를 막아버림(강제로 push할 수 있지만 말그대로 협업툴이기 때문에 권장x)
원활한 사용을 위해서는 다음 단계로 작업하기 : pull -> 내용을 변경 -> push
'DevOps > Git' 카테고리의 다른 글
[GitLab] An error occurred while loading commit signatures 에러 (0) | 2021.07.11 |
---|---|
[git 이해하기3] Merge request를 이용한 협업 과정 (0) | 2021.07.07 |
[git 이해하기2] Git Branch, Merge (0) | 2021.07.07 |
댓글