728x90
본 내용은 인프런의 제대로 파는 Git & GitHub - by 얄코 및 Codeit 으로 공부한 내용을 복붙 및 정리
했습니다.
👉 Git의 3가지 작업 영역
- working directory
- 작업을 하는 프로젝트 디렉토리
- staging area
- git add를 한 파일들이 존재하는 영역
- repository
- 커밋들이 저장되는 영역

👉 변화를 타임캡슐에 담아 묻기
일단 Git에서 파일들은 크게 다음 2가지 상태를 가진다.
- Untracked 상태 (빨간색 상태)
- 추적되지 않고 있는 상태
- Tracked 상태 (초록색 상태)
- Git에 의해 그 변동사항이 추적되고 있는 상태
그리고 Tracked 상태는 다시 아래와 같은 3가지 상태로 나눌 수 있다.
visual studio code 에서 U, M, A 라고 표시 되어있다.
- Tracked 상태
- Staged 상태 (A)
- Unmodified 상태 (U)
- Modified 상태 (M)
👉 git add .
git add 를 하면 Staging Area 에 파일이 올라가게 된다.
# 모든 파일 타임캡슐(버전)에 담기
git add .
# 특정 파일 타임캡슐(버전)에 담기
git add tigers.yaml
# 타임캡슐(Staging Area)에서 취소하고 싶을 때
git rm --cached <파일명>
git restore --staged <파일명>
# 모든 파일 타임캡슐(버전)에 담기
git add .
# 특정 파일 타임캡슐(버전)에 담기
git add tigers.yaml
# 타임캡슐(Staging Area)에서 취소하고 싶을 때
git rm --cached <파일명>
git restore --staged <파일명>
👉 git commit -m “ 커밋 내용"
1. 하나의 커밋에는 한 단위의 작업을 넣도록 한다.,
- 한 작업을 여러 버전에 걸쳐 커밋하지 않는다.
- 여러 작업을 한 버전에 커밋하지 않는다.
2. 커밋 메세지는 어떤 작업이 이뤄졌는지 알아 볼 수 있도록 작성한다.
type: subject
커밋의 작업 내용 간략히 설명
body (optional)
길게 설명할 필요가 있을 시 작성
footer (optional)
- Breaking point 가 있을 때
- 특정 이슈에 대한 해결 작업일 때
🔥 주의사항 🔥
중요한 정보가 원격 저장소에 올라가는 경우가 종종 있다.
이를 해결하기 위해서는 아래와 같이 명렁어를 입력하자
(확실하게 안전하게 된다고 말은 못하겠다!!, 찾아보고 있습니다 ㅎㅎ)
# 이전 commit 해쉬로 돌아간다.
git reset HEAD^
# 원격 저장소에도 알려준다.
git push -f origin <브랜치명>
👉 git push origin <리모트 브랜치>
- 로컬 저장소에 있는 내용을 원격 저장소로 올리게 된다.
- 리모트 브랜치 이름에 따라 main 또는 새로운 브랜치를 생성하면서 원격 저장소에 올라가게 된다.
👉 fetch vs pull
📌 git pull ?
원격저장소에 있는 프로젝트의 변경사항을 그대로 로컬저장소에 옮겨와 자동으로 병합
팀 단위로 사용하는 계정이 아닌 개인적으로 깃허브를 사용하는 사람들이라면 git pull 명령어를 가장 많이 사용할 것이다.
"변경 사항을 가져옴과 동시에 자동으로 병합이 되기 때문에 무엇이 추가되고 병합되었는지 확인이 안 됨"
📌 git fetch ?
원격저장소에 있는 프로젝트의 변경사항을 가져오기만 한 후 병합(merge)은 따로
깃 입문자 또는 깃허브를 개인적으로 사용하는 사람이라면 git fetch 명령어는 거의 사용하지 않을 것이다.
"다른 사람이 수정한 부분을 확인하고 병합할 수 있다는 장점이 있음"
[fetch 사용 방법]
- git fetch origin
- 원격의 변화를 일단 merge 하지 않고 가져온다
- 로컬 파일에 직접 추가 되지 않는다..! - git checkout origin/main
- 바뀐 내용이 로컬에 적용된다.(직접 적용되는 것은 아니다)
- 따라서, 어떤 변화가 생겼는지 로컬 데이터를 바꾸지 않고 코드를 돌려볼 수 있다.
- 문제가 있으면 되돌리면 된다.(git swtich main) - git pull or git merge
- 확인 결과, 괜찮으면 병합하면 된다.
# 차이점을 알려준다.
git diff <로컬 브랜치> <리모트 브랜치>
👉 git clone
- git clone <git url> <폴더 명>
clone이라는 단어처럼 원격저장소의 내용을 새로운 폴더에 그대로 복사하는 것!
👉 참고사이트
'Computer Science > Version Control System' 카테고리의 다른 글
Discard / Update branch (0) | 2024.01.17 |
---|---|
Git - part 3 (0) | 2022.08.17 |
Git - part 5 (0) | 2022.07.15 |
Git - part 4 (0) | 2022.07.04 |
Git - part 1 (0) | 2022.07.04 |