Git 기초
Git 초기 설정
최초 한 번만 설정합니다.
매번 git을 사용할 때마다 설정할 필요가 없습니다.
- 커밋 작성자 정보 등록
$ git config --global user.email <깃헙에서_사용할_이메일> $ git config --global user.name <깃헙_닉네임>
- 커밋 작성자 정보 확인
$ git config --global -l 또는 $ git config --global --list
- 커밋 작성자 정보 변경(이 후 커밋 작성자 정보 등록 다시 실행)
$ git config --global --unset user.email $ git config --global --unset user.name
Git 기초 명령어
로컬 저장소
working directory
: 사용자의 일반적인 작업이 이뤄지는 곳.staging area
: 커밋을 위한 파일 및 폴더의 변경사항들이 (임시로) 저장되는 곳.repository (commits)
: staging area에 있던 파일 및 폴더의 변경사항들이 커밋으로 저장되는 곳- Git은 working directory(WD) => staging area => repsitory의 과정으로 버전 관리를 수행합니다.
git init
- 현재 작업중인 디렉토리(폴더)를 Git으로 관리하겠다는 명령어
.git
이라는 숨김 폴더를 생성하고, 터미널에는(브랜치 이름)
라고 표기됩니다.
! 주의 사항 🚫
1. 이미 Git 저장소인 폴더 내에 또 다른 Git 저장소를 만들지 않습니다. (중첩 금지)
2. 절대로 홈 디렉토리(또는 바탕화면)에서 git init을 하지 앖습니다.
3. 혹시라도 실수로 git init을 해버렸다면 아래 명령어로 해결합니다.
$ ls -a (현재 위치에 .git 폴더가 있는 지 확인)
$ rm -rf .git/ (.git 폴더 삭제)
git status
- working directory와 staging area에 있는 파일의
현재 상태
를 알려주는 명령어 - 어떤 작업을 시행하기 전에 수시로 status를 확인합니다.
- 상태의 종류
untracked
: Git이 관리하지 않는 파일 (한 번도 add를 한 적 없는 파일)- ex) 처음 생성한 파일
tracked
: Git이 관리하는 파일 (이전에 한 번이라도 add를 한 적 있는 파일)unmodified
: 최신 상태 (이전 비전에 비해 번경사항이 없는 상태)modified
: 수정되었지만 아직 satging area에 올라가지 않은 상태staged
: Staging area에 올라간 상태
- 파일 라이프 사이클
git add
- working directory에 파일을 staging area로 옮기는 명령어
- git이 해당 파일을 추적(관리)할 수 있도록 만듭니다.
- 여러 파일을 옮기기 위해서는 공백으로 구분을 지어줍니다.
untracked, modified => staged
상태를 변경합니다.- 예시
# a.txt만 staging area에 올리는 명령어입니다.
$ git add a.txt
# a.txt, b.txt를 staging area에 올리는 명령어입니다.
$ git add a.txt b.txt
# 현재 디렉토리의 모든 파일을 staging area에 올리는 명령어입니다.
$ git add .
git commit
- staging area에 올라온 파일의 변경 사항을 하나의 버전(커밋)으로 저장하는 명령어
커밋 메세지
는 현재 변경 사항들을 잘 나타낼 수 있도록의미 있게
작성하는 것을 권장합니다.- 각각의 커밋은
sha-1 알고리즘
에 의해 반환된 고유의 해시 값을 ID로 가집니다.
git log
- 커밋의 내역(Commit ID, 작성자, 작성 시간, 커밋 메세지 등)을 조회할 수 있는 명령어
- 옵션
--oneline
: 커밋 메세지를 한 줄로 축약해서 보여줍니다.--graph
: 브랜치와 머지 내역을 그래프로 보여줍니다.--all
: 현재 브랜치를 포함한 모든 브랜치의 내역을 보여줍니다.--reverse
: 커밋 내역의 순서를 반대로 보여줍니다. (최신 커밋이 아래로 가도록 설정)-p
: 파일의 변경 내용도 같이 보여줍니다.-2
: 원하는 개수 만큼의 커밋 내역을 보여줍니다.- 2대신 다른 숫자 가능
원격 저장소
git remote
- 로컬 저장소에 원격 저장소를
등록, 조회, 삭제
할 수 있는 명령어
- 원격 저장소 등록
git remote add <원격저장소 이름> <원격저장소 주소>
형식으로 작성합니다.
$ git remote add origin <{url}> [풀이] 원격 저장소를 origin이라는 이름으로 추가합니다.
- 원격 저장소 조회
git remote -v
를 작성합니다.
$ git remote -v [출력 예시] origin https://github.com/내_깃헙_닉네임/git_repository_name.git (fetch) origin https://github.com/내_깃헙_닉네임/git_repository_name.git (push)
- 원격 저장소 연결 삭제
git remote rm <원격저장소 이름>
형식으로 작성합니다.$ git remote rm origin
git push
- 로컬 저장소의 커밋을 원격 저장소에 업로드하는 명령어
git push <원격저장소 이름> <브랜치 이름>
형식으로 작성합니다.
$ git push origin master
[풀이]
나의 브랜치의 변경 이력들을 staging area에서 remote repository에 전송합니다.
느낀점
이 외에도 다양한 git 명령어가 있지만 일단 이 정도를 알아두면 대충 찾아보며 사용할 수 있을 것 같습니다.
다음에는 작업환경이 바뀌었을 때 remote repository
에 저장된 변경사항들을 local repository
로 가져오는 명령어에 관련된 글을 작성해볼까 합니다.
매일 남기는 말
배워가는 단계에 있는 새싹 개발자입니다. 오탈자나 틀린 정보가 있다면 알려주시면 감사하겠습니다. 행복한 하루 되세요🐹
'개발일기 > Git' 카테고리의 다른 글
[Git config] 깃헙 잔디 살리기 /local user.email 적용하기 (0) | 2023.09.26 |
---|---|
[Git] 깃랩(Gitlab)에서 깃헙(Github)으로 커밋 옮기기 (Repository 이동) + 커밋 기록 삭제하기 (0) | 2022.11.22 |
[Bash] Alias 등록하기 (0) | 2022.05.30 |
[Git 명령어] clone과 pull 알아보기 (0) | 2022.01.15 |
CLI 기초 명령어 배우기 (0) | 2022.01.12 |