목차
반응형


Git 용어 정리
- 구성요소
- 워크스페이스(workspace) : 작업폴더
- 인덱스(Index) : Git의 장바구니 개념(add으로 추가, unstage로 삭제)
- 로컬 리포지토리(local repository): 로컬 저장소(git init을 통해 등재된 작업폴더 내부의. git 폴더)
- 원격 리포지토리(remote repository) : 원격 저장소(github의 리포지토리 주소, .git으로 끝납니다)
- 명령어
- 추가(add) : 작업폴더에 있는 파일을 인덱스에 저장
- 언스테이지(unstage) : Git의 인덱스에 담겨 있는 파일을 제거
- 커밋(commit) : Git의 인덱스에 담겨 있는 파일을 로컬 리포지토리에 저장
- 체크아웃(checkout) : Git의 커밋된 타임라인과 해당 내용으로 돌아가는 것
Git Bash 명령어
1. 디렉터리 이동 관련
- `clear` : Git bash 창 초기화
- `ls` : 디렉터리에 있는 파일 조회
- `ls -a` : 디렉토리에 있는 파일(숨김폴더 포함) 조회
- `ls -al` : 디렉토리에 있는 파일 + 수정 이력까지 조회
- `cd "디렉토리명"` : 해당 디렉터리로 이동
- `cd..` : 상위 디렉터리로 이동
- `pwd` : 현재 디렉토리 위치 확인
2. 로컬 저장소 및 브랜치 지정 관련
- `git init` : 현 디렉터리를 로컬 저장소(리포지토리)로 생성합니다.(. git 파일 생성)
- `rm -rf. git` : 현 디렉터리를 로컬 저장소(리포지토리)에서 해제합니다.(. git 파일을 삭제)
- `git branch` : 현 디렉터리에 연결되어 있는 브랜치를 확인합니다. (연결되어 있지 않으면 출력되지 않음)
- `git checkout -b "브랜치명"` : 브랜치명의 브랜치를 생성합니다.
- `git checkout "브랜치명"` : 해당 브랜치명의 최신 커밋버전으로 전환합니다.
- `git branch -d "브랜치명"` : 해당 브랜치명의 브랜치를 삭제합니다.
- 브랜치 삭제를 위해서는 사전에 타 브랜치명의 브랜치로 전환이 요구됨
- `git config --global init.defaultBranch` : 현재 PC의 디폴트 브랜치를 확인합니다.
- `git config --global init.defaultBranch "브랜치명"` : 현재 PC의 디폴트 브랜치 이름을 브랜치명으로 변경합니다.
- 기존에 생성되어 있었던 리포지토리의 브랜치는 변경되지 않으니 유의
3. 디렉터리 내 파일 및 디렉토리 생성 관련
- `touch "파일. 확장자명"` : 현재 디렉터리에 있는 해당 명의 파일을 생성합니다.
- `mkdir "디렉토리명"` : 현재 디렉터리에 있는 해당 명의 디렉토리를 생성합니다.
- `rm -rf "파일명` : 현재 디렉토리에 있는 해당 명의 파일을 삭제합니다.
- `rm -rf *` : 현재 디렉토리에 있는 모든 파일을 삭제합니다. (. git 파일 포함)
- `*`: 와일드카드, 경로 내의 모든 파일을 뜻합니다.
4. 로컬 워크스페이스 ~ 로컬 리포지토리 간 작업 관련
- `git status` : Git의 로컬 저장소(. git)의 최근 상태와, 작업 폴더의 상태의 차이를 조회합니다.
- `git add "파일명"` : 해당 파일을 Git의 인덱스에 추가합니다.
- `git add.` : 해당 경로에 있는 모든 파일을 Git의 인덱스에 추가합니다.
- `git rm --cached "파일명"` : 해당 파일을 Git의 인덱스에서 제거(unstage) 합니다.
- `git reset` : Git의 인덱스에 있는 모든 파일을 제거(unstage) 합니다.
- `git log` : 커밋 이력 열람(작성자와 커밋 일자)
- `git log --oneline` : 커밋 이력을 간략하게 조회합니다.
- `git commit` : 인덱스에 있는 파일을 커밋 (vim으로 화면 넘어감)
- `git commit -m "text"` : 인덱스에 있는 파일을 커밋 (vim이 아닌 간략하게 텍스트를 기재해 커밋할 때 사용)
- `git checkout "로그명"` : 해당 로그명이 커밋된 파일 버전으로 돌아갑니다.
- `git checkout "브랜치명"` : 가장 최근에 커밋된 해당 브랜치명의 최신 버전으로 다시 돌아갑니다.
- 디렉터리에서 커밋되지 않은 변경사항이 있을 때는 돌아갈 수 없습니다.
- `git reset --soft "로그명"` : 해당 로그 파일 버전으로 돌아갑니다. 이후 커밋 이력과 인덱스는 남아있습니다.
- `git reset --hard "로그명"` : 해당 파일 파일 버전으로 돌아갑니다. 이후의 커밋 이력과 인덱스는 전부 삭제됩니다.
5. 로컬 리포지토리 ~ 원격 리포지토리 간 작업 관련
- `git remote -v` : 현재 연결되어 있는 원격 리포지토리 목록을 조회합니다.
- `git remote add "별명" "원격 리포지토리 주소"` : 해당 주소를 현재. git의 원격 리포지토리로 등록합니다.
- 한 개의. git 파일에 여러 개의 원격 리포지토리 등록이 가능합니다.
- 로컬 리포지토리와 가장 많이 연관되는 원격 리포지토리는 `origin` 으로 통칭됩니다.
- ex) `git remote add origin "https://github.com/Bisi3asi/DemoRepository.git"`
- `git push "원격 리포지토리명" "브랜치명"` : 현재 로컬 저장소의 브랜치를 해당 원격 리포지토리로 업로드합니다.
- 해당 원격 저장소에도 동일한 브랜치가 생성됩니다.
- ex) `git push origin main` : 현재 로컬 저장소 main 브랜치를 origin 원격 리포지토리로 업로드합니다.
- `git pull "원격 리포지토리명" "브랜치명"` : 원격 리포지토리로 등록된 origin에 있는 main 브랜치 내용을 현재 로컬 리포지토리의 메인 브랜치로 다운로드합니다.
- `git pull "원격 리포지토리명" "브랜치명 --allow -unrelated-histories"` : 신규로 만든 로컬 리포지토리를 기존에 있는 원격 리포지토리와 연결할 때 사용합니다.
- 신규 프로젝트는 기존 프로젝트와 공통적으로 같은 조상을 보고 있지 않아 다른 프로젝트로 인식하기 때문,
- 따라서 병합을 위해 --allow -unrelated-histories 사용
- `git pull "원격 리포지토리명" "브랜치명 --allow -unrelated-histories"` : 신규로 만든 로컬 리포지토리를 기존에 있는 원격 리포지토리와 연결할 때 사용합니다.
- `git clone "원격 저장소 주소".` : 현재 디렉터리를 로컬 저장소로 만들고 해당 원격 저장소와 연결시키며, 원격 저장소에 있는 모든 내용을 현재 지정한 디렉터리에서 만든 로컬 저장소로 복사해 옵니다.
- `git clone == git init + git remote add origin + git pull origin main`
- `git config --global user.name` : 현재 PC의 사용자 이름 확인(깃허브 연동 ID)
- `git config --global user.name "ID"` : 현재 PC의 사용자 이름 추가(깃허브 연동 ID)
- `git config --global user.email` : 현재 PC의 사용자 이메일 확인(깃허브 연동 이메일)
- `git config --global user.email "USER_EMAIL"` : 현재 PC의 사용자 이메일 추가(깃허브 연동 이메일)
시나리오 1 : 다른 PC에서 기존 원격저장소를 연결하는 로컬 저장소 생성 세팅
java
닫기# 1. 사용자 이름, 이메일 설정 git config --global user.name "USER.NAME" git config --global user.email "USER.EMAIL" # 2. 작업 디렉토리 설정 mkdir my_project cd my_project # 3. 기존 원격 저장소 복제 git clone "GITHUB.REPOSITORY.URL" # 4. (선택) 업데이트 내용 pull git pull # 5. (선택) 로컬 브랜치 변경 git checkout -b "BRANCH.NAME" # 6. (선택) 기존 브랜치 전환 git checkout "ORIGINBRANCH.NAME" # 7. (선택) 원격 저장소 연결 확인 git remote -v
Git Bash 기본 단축키
- `Ctrl + Insert` : 복사
- `Shift + Insert` : 붙여 넣기
- `Ctrl + C` : vim, 서버 구동 등의 화면에서 콘솔 입력 창으로 복귀
유의사항
- 기본적으로 빈 폴더는 Git에서 취급하지 않는다. add도 안 올라간다. (Git의 정책으로 인해)
- 단, . gitkeep 파일 설정을 통해 폴더명을 추가할 시 빈 폴더 또한 Git에 추가가 가능하다.
- .gitkeep 파일은 빈 디렉터리를 유지함으로써 프로젝트의 구조를 명확하게 할 수 있다.
- . gitignore에 특정 파일명을 추가함으로써 파일의 내용이 변경되어도 git의 인덱스에 추가되는 것을 방지할 수 있다.
- 개인 환경마다 설정이 변경되어야 하는 파일, 프로젝트와 관계없는 파일 등 목적에 맞게 설정이 가능하다.
반응형
'DEV > Git' 카테고리의 다른 글
[Github] 깃허브 일일 자동 잔디 심기(오토 커밋) 툴 소개 (0) | 2024.06.29 |
---|---|
[Git 기초] 원격 리포지토리의 특정 브랜치를 현 브랜치와 병합하기 (1) | 2023.12.05 |
[Git 기초] 깃 특정 시점 커밋 열람하고 다시 돌아가는 명령어 (2) | 2023.11.20 |
[Github] 깃헙 플로우(Github-Flow) 의 이해와 절차 (0) | 2023.10.30 |