2022. 8. 1. 18:32ㆍ개발공부 기강잡자/Git
요즘 개발 회사들 다 git 쓰던데..
왜 전직장에서는 git의 g 도 얘기 나온 적이 없었는지...😥
그동안 공부하면서 git의 기본 명령어 정도는 알게됐지만 좀더 배워보고자 지옥에서 온 git - 이고잉 님의 강의를 열심히 들어보려고 합니다. 아자아자 화이팅
(git 설치는 이미 했으니까 스킵)
git 관리할 프로젝트 폴더 신규 생성
: 일단 프로젝트를 git으로 관리하기 위한 명령을 내려야한다!
두가지 방법이 있는데, git init
을 통해 저장소를 신규로 생성하거나 혹은 git clone
명령어를 통해 원격에 있는 저장소를 복사해와야한다.
우선 신규 저장소를 생성하는 방법부터 학습했다.
1. git으로 관리하려는 폴더로 이동
cd [폴더경로]
2. git repository(저장소) 초기화 → .git 디렉토리 생성
git init
* .git 폴더 : 버전 정보를 관리하는 디렉토리 .git 폴더가 있으면 > local repository가 있다는 뜻
버전 관리할 파일 Add
폴더에 파일을 생성하거나 수정했을 경우, 해당 파일의 버전을 관리하기 위해선 git add 명령어를 통해 버전관리 시스템에 add 해야한다.
git status
: 프로젝트 폴더 내의 파일들의 상태 확인
Untracked files : 아직 git을 통해 버전 관리가 되고 있지 않은 파일들
→ 신규 생성된 파일을 버전관리 하기 위해서 git add 명령어를 통해 버전관리가 되도록 해야한다.
git add
: Staging Area에 커밋할 파일들을 추가하는 명령어
git add [파일명]
: 파일을 git으로 관리하도록 함
다시 git status
를 통해 파일의 상태를 확인해보면
Untracked files → New file
으로 변환된 것을 확인할 수 있다.
→ 임시로 필요한 파일의 경우, 버전관리에선 배제하기 위해선 관리해야할 파일을 명확하게 git에게 알려야한다!
버전 기록을 위한 Commit
버전 : 의미있는 변화를 의미하며 버전은 완결된 상태여야 한다.
로컬 저장소에 변경 내용을 기록하기 위해서 git commit
명령어를 실행한다.
1. 작성한 버전들에 자신이 만든 것을 알리기 위해서 이름과 이메일 설정이 필요하다.
(프로젝트는 여러명이 사용하기 때문이다.)
git 초기 설정을 위한 명령어는 다음과 같으며, 처음 한번만 설정하면 된다.
git config --global user.name [이름]
git config --global user.email [이메일]
2. git commit
> vim이 실행되어 버전과 관련된 커밋메세지를 작성할 수 있다.
(vim > i 키를 눌러 편집모드로 커밋메세지를 작성하고 , ESC 키를 눌러 명령어 모드로 다시 전환 후 :wq 명령어로 저장 후 vim 편집기에서 나온다)
> 버전이 생성된다!
git commit -m "커밋 메세지"
: vim 편집기를 사용하지 않고 커밋 메세지를 기록하는 명령어
3. 변경이력 확인
git log
: 버전과 관련된 로그를 확인하는 명령어, 버전 변경 이력을 확인할 수 있다.
커밋 이후 파일 수정을 한 경우
git status
를 통해 프로젝트의 상태를 확인해보면
Changes not staged for commit의 modified 상태인 파일을 확인할 수 있다.
수정되었지만 로컬 저장소에 add 되지 않은 상태로, 버전관리 중인 파일을 수정했을 경우, 수정된 파일을 git add
하여 버전 관리 시스템에 add해서 버전관리를 해야한다.
git add f1.txt
를 실행한 후 git status를 해서 파일의 상태를 확인하면, Changes to be commited로 commit이 될 수 있는 상태로 전환된다.
Git Stage Area
commit 하나는 하나의 작업을 담고 있는 것이 이상적이지만, 프로젝트를 하면서 commit 시기를 놓칠 수 있다.
git은 모든 수정 내역을 한번에 commit 하는 것이 아니라 add 된 파일만 commit 이 되기 때문에, 선택적으로 파일을 commit 하며 버전 기록이 가능하다.
선택적으로 버전 기록 하는 법
f1.txt와 f2.txt를 모두 수정한 상황에서 git status
실행
→ 수정된 두개의 파일이 Changes not staged for commit 상태로 남아있음
f1.txt와 f2.txt 수정 내역을 서로 다른 버전으로 기록하려면,
1. git add f1.txt
명령을 통해 f1만 commit 대기 상태로 변경
2. git commit
실행
→ f1.txt만 commit 되고, f2.txt는 commit 되지 않음
이렇게 하면 버전기록을 각각 따로 할 수 있다!
$ git add
→ 커밋 대기 (Stage로 이동) → $ git commit
→ commit 된 결과가 저장 (Repository)
- Working Directory : 내가 작업하고 있는 프로젝트의 디렉토리
- Staging Area : 커밋을 하기 위한 파일들이 모인 공간 , 커밋 대기 상태($ git add 로 추가된 파일)
- Repository : 커밋이 모인 저장소
∴ Staging Area 에 추가된 파일들을 Commit 하면 Repository에 저장됨
'개발공부 기강잡자 > Git' 카테고리의 다른 글
[Git - 지옥에서 온 git] 4일차 - git의 원리 공부 (branch와 HEAD) (0) | 2022.08.09 |
---|---|
[Git - 지옥에서 온 git] 3일차 - branch 수련 (git-scm의 Documentation 보기) (0) | 2022.08.04 |
[Git-지옥에서 온 git] 3일차 - branch (0) | 2022.08.04 |
[Git-지옥에서 온 git] 2일차 - git의 원리 (0) | 2022.08.03 |
[Git] 지옥에서 온 git - 1일차 (log/diff/reset) (0) | 2022.08.01 |