loading

새소식

Cloud/Git, Github

[Git] Git 사용 방법

  • -
728x90
반응형

[9주차] 2023.10.16 (월)

🔷 GIT 🔷

1. 파일 관리

 (1) 코드 기록을 추적 가능하다.

 (2) 팀 단위의 협업이 가능하다.

 (3) 의도하지않은 덮어쓰기를 방지하고 코드 변경 사항을 기록할 수 있다.

 

2. 버전 관리 시스템(Version Control System) or 형상관리도구 : 변화를 시간에 따라 기록하고 특정 시점의 버전을 다시 꺼내올 수 있는 시스템 => 파일을 잃어버리거나 잘못 고쳤을 때도 쉽게 복구 가능

3. Git 구성 요소

 (1) 저장소 : 모든 변경사항을 추적하는 "컨테이너"

 (2) 스테이징 영역(인덱스)

   1) 커밋이 준비되는 공간

   2) 작업 디렉토리의 파일과 저장소의 파일을 비교

 (3) 작업 디렉터리 / 작업 트리 : 작업중인 공간

4. Git 의 3가지 상태

 (1) Committed : 데이터가 로컬에 안전하게 저장된 상태

 (2) Staged: 수정된 데이터를 저장할 것이라고 표시한 상태

 (3) Modified : 수정된 데이터가 로컬에 저장되지 않은 상태

 

5. Git Bash (Linux) 명령어

clear : 화면 지우기

pwd : 현재 위치

ls, ls -al : 파일 목록

 

🔷 GIT 연습 🔷

★ Git Bash (Linux) 명령어 ★

# 화면 지우기
$ clear

# 현재 위치
$ pwd

# 파일 목록
$ ls
$ ls -al

# 이전 입력한 명령어 보기
$ history

 

1. Git 최초 설정

 (1) 사용자 정보

$ git config --global user.name (사용자명)
$ git config --global user.email (이메일)

 

 (2) 설정 확인

$ git config --list 
$ git config user.name
$ git config user.email

 (3) 설정이 저장된 파일 : .gitconfig 

 

2. Git CRUD 연습

 (1) 저장소 생성(git init)

$ git init

 (2) 파일 등록 ( Untracked => Tracked / Staged ) (git add) = 스테이징(Staging)

$ git add (파일이름)

 (3) 저장하기(git commit)

# 모두 커밋 #
$ git commit

# 파일 하나 지정해서 커밋 #
$ git commit -m (파일이름)

# unstaged 상태의 파일 모두 커밋 #
$ git commit -a -m (파일이름)

   => 편집기(VI) 나가기 : esc -> :q 입력 -> Enter

 

 (4) 수정하기(git vi)

$ vi (파일이름)

   => 편집기(VI) 수정 후 나가기 : esc -> :wq 입력 -> Enter

 

(5) 상태 확인

  1) 단순한 파일의 변경사실 확인(git status)

$ git status

   2) 라인 수정 등 내용을 확인(git diff)

$ git diff
$ git diff --staged

 

 (6) 파일 삭제(git rm)

# 파일 삭제 #
$ git rm (파일이름)

# Staged 상태인 파일 강제삭제 #
$ git rm -f (파일이름)

 

 (7) 파일 이름 변경(git mv)

# 1
$ git mv (기존파일명) (변경파일명)

# 2
$ mv (기존파일명) (변경파일명)

 (8) 되돌리기

# 메시지, 누락된 파일 #
$ git commit --amend

# 스테이징 취소 #
$ git reset HEAD (파일명)

# 커밋 삭제 #
$ git reset HEAD ^

# 마지막 커밋 상태로 복구 #
$ git checkout --(파일명)

 

3. 기존 저장소 Clone

 (1) git 저장소를 복사하는 기능

 (2) 다른 VCS 와의 차이점은 프로젝트 모든 히스토리를 받아온다는 것.

 

4. 로그 출력(git log)

★ 주요 옵션 ★

 (1) 커밋한 작업들 보기

$ git log

 (2) 커밋별 diff 정보, 개수 지정

$ git log -p -1

 (3) 커밋별 통계 정보

$ git log --stat -2

 (4) 기본 형식 외의 다양한 모습으로 출력

$ git log --pretty=oneline

 (5) 출력 형식을 직접 지정 후 출력 

$ git log --pretty=format: (출력 형식)

# ex
$ git log --pretty=format: "%h - %an, %ar : %s"

   => 옵션

- 커밋 해시 : 커밋과 관련된 모든 내용을 포함하는 식별자

- 트리 해시 : 파일 및 폴더 구조에 대한 내용을 포함하는 식별자

- 부모 해시 : 커밋 간의 관계 정보를 포함하는 식별자

 

 (6) 그래프 출력

$ git log --graph

 

5. 리모트 저장소 확인하기

 (1) 등록된 리모트 저장소 확인

$ git remote

# 목록보기
$ git remote -v

 (2) 기존 워킹 디렉토리에 새 저장소 추가

$ git remote add [단축이름] [url]

 

6. 브랜치(Branch) : 원래 코드와는 상관없이 독립적으로 개발하도록 지원해주는 것 =>새로운 버전을 출시, 새로운 기능을 추가, 버그 수정 시 사용

# 로그 조회 
$ git log --oneline --decorate

$ git log --oneline --decorate --graph --all

 (1) 브랜치 생성하기

$ git branch (브랜치 이름)

 

 (2) 브랜치 조회하기

$ git branch

 

 (3) 브랜치 이동하기

$ git checkout (브랜치 이름)

 

 (4) 브랜치 합치기(Merge)

# git checkout master (Merge 를 수행할 운영 브랜치로 이동)
$ git merge (합칠 브랜치 이름)

 (5) 브랜치 삭제

git branch -d (브랜치 이름)

 (6) 충돌(Conflict)

    1) Merge 도구를 이용하여 충돌을 해결

git mergetool

    2) 일반 편집기를 사용하여 충돌을 해결

 - 위쪽 : Head 버전(merge 명령을 실행한 브랜치)의 내용
 - 아래쪽 : testing 브랜치의 내용
    => 위쪽이나 아래쪽 내용 중에서 고르거나 새로 작성하여 Merge

728x90
반응형
Contents

📝 포스팅 주소를 복사했습니다 📝

이 글이 도움이 되었다면 공감 부탁드립니다👍