1. 깃이란?
1) 깃이 제공하는 핵심 기능
- 버전관리하기
- 백업하기
- 협업하기
2) 깃 환경 설정하기
-깃은 사용하기 전에 먼저 사용자 정보를 입력해야 함
- 사용하는 운영체제가 윈도우라면 깃 배시를, 맥이라면 터미널 창을 연다.
- git config 명령을 사용하여 사용자 정보를 설정한다.
$ git config --global user.name "이름"
$ git config --global user.email "메일 주소"
→ --global 옵션을 사용하면 현재 컴퓨터에 있는 모든 저장소에서 같은 사용자 정보를 사용하도록 할 수 있음.
3) 리눅스 명령 연습하기
- pwd: 현재 디렉터리 확인하기
- ls: 현재 디렉터리에 어떤 파일이나 디렉터리가 있는지 확인
→ ls 명령 옵션
| 옵션 | 설명 |
| -a | 숨긴 파일이나 디렉터리도 함께 표시 |
| -l | 파일이나 디렉터리의 상세 정보를 함께 표시 |
| -r | 파일의 정렬 순서를 거꾸로 표시 |
| -t | 파일 작성 시간순(내림차순)으로 표시 |
- clear: 터미널 화면 비우기
- cd: 디렉터리 이동 ex) cd .. -> 현재 위치의 상위 디렉터리로 이동
→ 리눅스에서 디렉터리를 나타내는 기호
| 기호 | 설명 |
| ~ | 현재 접속 중인 사용자 디렉터리를 가리킴. 터미널 창에서 $ 기호 윗줄에 있는 ~가 사용자 디렉터리를 가리킴. |
| . | 현재 사용자가 작업 중인 디렉터리 |
| .. | 현재 디렉터리의 상위 디렉터리 |
-mkdir: 현재 디렉터리 안에 하위 디렉터리를 만들때 사용
-rm: 디렉터리 삭제
-exit: 터미널 종료
2. 깃으로 버전 관리하기
1) 깃 저장소 만들기
-git init: 현재 디렉터리에서 깃을 사용할 수 있도록 초기화
2)버전 만들기
-버전: 프로그램 개발에서는 수정 내용이 쌓이면 새로 번호를 붙여서 이전 상태와 구별하는데, 이렇게 번호 등을 통해 구별하는 것을 버전이라고 함.
-깃은 버전을 만든 시간과 수정 내용까지 기록할 수 있는 버전 관리 시스템임.
→ 원래 파일 이름은 그대로 유지하면서 파일에서 무엇을 변경헀는지를 변경 시점마다 저장할 수 있음. 또 버전마다 작업한 내용 확인 가능, 버전 되돌리기 가능.
-깃의 작업 영역
- 작업트리: 파일 수정, 저장 등의 작업을 하는 디렉터리. 우리 눈에 보이는 디렉터리
- 스테이지(stage): 버전으로 만들 파일이 대기하는 곳. 스테이징 영역이라고도 함.
- 저장소(repository): 스테이지에서 대기하고 있던 파일들을 버전으로 만들어 저장하는 곳
-버전이 생성되는 과정: 작업 트리에서 문서 수정 -> 수정한 파일 가운데 버전으로 만들고 싶은 것을 스테이지에 저장(add 명령) -> 스테이지에 있던 파일을 저장소로 커밋하면 버전이 만들어짐.(commit 명령)
3) 스테이지에 변경 사항 올리기
-git add: 깃에게 버전 만들 준비를 하라고 알려주는 것
→ 깃에서 untracked files는 버전을 아직 한 번도 관리하지 않은 파일을 의미. git add로 스테이징을 하고 나면 changes to be commited 라는 문구로 바뀜.
4) 스테이징한 파일 커밋하기
-버전 만드는 것을 깃에서는 커밋(commit)한다고 함.
-git commit: 파일을 커밋
→ -m 옵션으로 커밋 메시지를 함께 작성할 수 있음
$ git commit -m "message1"
$ git commit -am "message2"
→ -am 옵션으로 스테이징과 커밋을 한번에 처리할 수 있음.
5) 커밋 내용 확인하기
-git log: 커밋했던 기록을 살펴볼 수 있음. 이 명령을 입력하면 지금까지 만든 버전이 화면에 보이고 버전별 설명도 함께 나타남.
→ 커밋 로그: git log 명령을 입력했을 때 나오는 정보. 커밋 해시(;커밋을 구별하는 아이디), author, date 항목 등이 포함됨.
-git diff: 작업 트리와 스테이지에 있는 파일을 비교하거나 스테이지에 있는 파일과 저장소에 있는 최신 커밋을 비교할 수 있음
6) 버전 만드는 단계마다 파일 상태 알아보기
-작업 트리에 있는 파일은 크게 tracked와 untracked 상태로 나뉨.
→ tracked file: 한 번이라도 커밋한 파일은 깃이 계속해서 수정사항이 있는지 추적하므로 tracked 파일이라고 함.
→ untracked file: 한 번도 커밋하지 않은 파일.
-unmodified, modified, stage 상태
→ unmodified: 파일이 수정되지 않은 상태
→ modified: 파일이 수정만 된 상태
-파일이 커밋되고 나면 파일의 상태는 수정하기 직전인 unmodified 상태로 되돌아감.
7) 작업 되돌리기
-git restore: 작업 트리에서 수정한 파일 되돌리기(스테이징 하지 않은 상태)
-git restore --staged: 수정된 파일을 스테이징까지 했을때 스테이징을 취소하는 명령. 뒤에 파일 이름을 넣으면 해당 파일만 골라서 되돌릴 수 있음.
-git reset HEAD^: 최신 커밋이 취소 되고 스테이지에서도 내려짐.
-git reset 해시: 최신 커밋을 가리키는 HEAD를 특정 커밋으로 이동함. 즉 최신 커밋을 변경함.
-git revert: 커밋은 남겨두고 지정한 커밋 해시의 변경 이력을 취소함.
3. 깃과 브랜치
1) 브랜치가 필요한 이유
-메인 코드는 main 브랜치에 그냥 둔 상태로 새로 추가하는 기능이나 코드 수정 사항은 새 브랜치로 만들어서 작업할 수 있음.
2) 브랜치 기능 살펴보기
-깃으로 버전 관리를 시작하면 기본적으로 main 브랜치가 만들어지고, 기존 파일은 main 브랜치에 유지하면서 새 브랜치를 만들어 기존 팡리 내용을 수정하거나 새로운 기능을 추가할 수 있음.
-이렇게 main 브랜치에서 새 브랜치를 만드는 것을 분기한다라고 함.
-새 브랜치에서 작업을 다 끝내면 새 브랜치에 있던 파일을 원래 main 브랜치에 합칠 수 있음. 이렇게 분기했떤 브랜치를 메인 브랜치에 합치는 것을 병합한다(merge)라고 함.
3) 브랜치 만들기 및 이동하기
-git brach: 깃에서 브랜치를 만들거나 확인하는 명령. 새로운 branch를 만드려면 git branch 명령 다음에 만들려는 브랜치 이름을 적고, 현재 저장소의 브랜치를 확인하려면 git branch를 입력함.
-git switch: 브랜치 전환하기
-git merge: 브랜치 병합하기
-git branch -d 브랜치이름: 브랜치를 삭제하기
4. 깃허브 시작하기
1) 원격 저장소와 깃허브
-원격저장소: 지역 저장소가 아닌 컴퓨터나 서버에 만든 저장소를 말함.
→ 원격 저장소는 지역 저장소와 연결되어 있으면서 백업과 협업이라는 중요한 역할을 함.
-원격 저장소를 직접 구축할 수도 있지만 만들고 유지하는 것이 쉽지 않으므로 원격 저장소를 제공하는 서비스를 사용함. 그 중 대표적인 것이 깃허브.
-깃허브의 기능
- 원격 저장소에서 깃을 사용할 수 있음
- 지역 저장소를 백업 가능
- 온라인 개발 툴 사용 가능
- 협업 프로젝트에 사용 가능
- 자신의 개발 이력을 남길 수 있음
- 다른 사람의 코드를 살펴보고 오픈 소스에 참여 가능
2) 깃허브 가입하기
-지역 저장소: 사용자 컴퓨터에 있는 저장소
-원격 저장소: 깃허브에 있는 저장소
-푸시(push): 지역 저장소에서 원격 저장소로 커밋을 등록하는 것
-풀(pull): 원격 저장소의 변경 사항을 지역 저장소로 내려받는 것
-지역 저장소와 원격 저장소를 연결해놓으면 지역 저장소의 변경 사항은 항상 원격 저장소로 올려 두어야 하고, 원격 저장소에 변경 사항이 있다면 지역 저장소에 내려받아 두어야 함.(동기화)
3) 지역 저장소를 원격 저장소에 연결하기
-git remote add origin 복사한 주소 붙여넣기: 지역 저장소와 원격 저장소를 연결하기. 이때 복사한 주소는 깃허브의 원격 저장소의 https 주소임.
4) 지역 저장소와 원격 저장소 동기화하기
-git push: 지역 저장소의 브랜치를 origin(원격 저장소)의 main 브랜치로 푸시하라는 명령임.
$ git push -u origin main
→ -u 옵션은 지역 저장소의 브랜치를 원격 저장소의 브랜치에 연결하는 것으로 처음에 한번만 사용하면 됨.
-git pull: 원격 저장소에서 지역 저장소로 커밋을 pull 함.
$ git pull origin main
5) 깃허브에 SSH 원격 접속하기
-SSH란 secure shell의 줄임말로 보안이 강화된 안전한 방법으로 정보를 교환하는 방식임. SSH에서는 기본적으로 프라이빗 키와 퍼블릭 키를 한 쌍으로 묶어 컴퓨터를 인증함.
-SSH 원격 접속은 프라이빗 키와 퍼블릭 키를 사용해 사용하는 기기를 깃허브에 인증하는 방식임. 이 방식을 사용하면 자동 로그인 기능으로 매번 아이디와 비밀번호를 입력해야 하는 번거로움을 줄일 수 있음
-SSH 키 생성하기: ssh-keygen 명령 실행
ssh-keygen -t ed25519 -C "이메일 주소"
'ECC > Git' 카테고리의 다른 글
| [Git] DO IT! 5일 만에 끝내는 깃&깃허브 입문 5~8장 (0) | 2025.03.29 |
|---|