IT 지식

[Git] Git 명령어

Dhey 2021. 7. 27. 03:54
반응형

git init

  : 프로젝트 디렉터리 안에 .git이라는 디렉터리 생성,

   특정 프로젝트 디렉터리를 Git으로 버전 관리할 수 있는 상태로 만들어 줌

 

git config user.name "이름"

  : 사용자 이름 설정

 

git config user.email "이메일주소"

  : 사용자 이메일 설정

 

git config --global --list

  : 설정 정보 확인

 

git add file명 or .

  : 파일을 Staging Area에 올림

  (. 을 사용할 경우 새롭게 추가되거나 수정된 파일을 한번에 Staging Area에 올릴 수 있음)

 

git commit -m "commit_message"

  : Staging Area에 있는 모든 파일을 하나의 커밋으로 만들어 repository에 저장 (m옵션- 해당 커밋에 대한 설명)

 

git log

  : 이때까지 한 commit의 기록을 시간순으로 확인

  *option

   --all: HEAD가 가리키는 Branch 뿐만 아니라, 모든 Branch를 확인

   --graph: Branch와 Commit의 관계를 그래프 형식으로 출력

   -u: 해당 커밋의 내용과 함께 변경점을 보여줌

   -u commit ID: 해당 ID 커밋에 대한 내용과 diff의 내용 확인

   -숫자: 최신 커밋을 기준으로 최대 몇개까지의 커밋을 출력할지를 입력할 때 사용

   --name-only: 변경된 파일 목록도 함께 확인

   --oneline: 커밋을 한 줄로 출력

   --reverse: 오래된 순으로 확인

 

git diff id1 id2

  : id1과 id2를 비교하여 commit 사이의 차이점을 보여줌

 

 git revert commit ID

  : 히스토리는 유지한 채 반영한 커밋을 되돌림

 

git reset --option commit_id or HEAD@number

  : Head가 가리키는 commit 변경

  *Head: 현재 위치해있는 커밋을 가리키는 식별자

  *HEAD@number: 현재부터 number개 이전의 이력으로 되돌림

  *option (hard는 위험한 option)

   --hard: 돌아가려는 이력 이후의 모든 내용 지움

   --mixed: 이후 변경된 내용은 남아있지만, 인덱스는 초기화 됨(변경된 내용은 추가해야 하는 상태)

   --soft: 이후의 내용과 인덱스가 지워지지 않고 그대로 남아있음

git reset의 option

 

git status

  : 현재 폴더내 파일의 상태를 자세히 출력, 생성 or 수정 된 파일이 Staging Area에 잘 올라갔는지 확인

 

git reflog

  : Head가 가리켰던 commit 기록을 모두 보여줌 (Head 옆 숫자가 작을수록 최근 기록)

 

git remote

  : 내 컴퓨터에서 외부 저장소에 관한 작업을 할 때 사용

   (ex. git remote add origin URL ⇒ URL이 가리키는 외부 서버의 프로젝트를 원격 저장소로 지정하는데,

   이름은 origin 이라고 하겠다 라는 의미)

  *option

   -v : 현재 등록된 원격 저장소의 상세 정보 확인 

 

git push

  : 현재 내 프로젝트의 내용을 전부 원격 저장소의 프로젝트로 업로드

  (.git 디렉터리 내부에서 관리되던 Repository 영역을 업로드 한 것!)

 

git pull

  : Gitlab의 프로젝트에서 새로운 커밋이 생성되었을 때 그 커밋을 다시 내 컴퓨터로 가져오는 것

 

git clone

  : Gitlab서버의 프로젝트를 맨 처음 내 컴퓨터로 가져올 때 (디렉터리 형태로 가져옴)

 

∑ git branch

  : 현재 작업중인 Branch를 확인함

  *option

   -v: 각각의 Branch가 어떤 커밋을 가키리고 있는지 확인

   -d branch_name: 브랜치 삭제

 

git branch branch_name

  : Branch 생성

 

∑ git checkout branch_name

  : 해당 브랜치로 이동

 

∑ git checkout - b branch_name

  : Branch 생성 및 이동을 동시에 할 수 있음

 

git merge branch_name

  : 다른 Branch의 최신 Commit 내용을 합침

  ('현재 HEAD가 브랜치를 통해 가리키고 있는 커밋'과 'merge 뒤에 쓴 브랜치가 가리키고 있는 커밋'을 합칠 때 사용)

 

git show commit ID

  : git log -u 'commit ID'와 같은 결과

 

 git show tag_name

  : 해당 tag의 상세한 정보 출력

 

 git tag -a tag_name -m "tag_message"

  : 태그 생성

반응형