Git

Git 명령어 정리

개발자 오리 2023. 8. 7. 18:26

저장소 생성(init)

 

$ git init

 

내용 설명

: 현재 디렉토리 안에 .git 하위 디렉토리 생성 => 새로운 git 저장소 생성

 

 

저장소 복제 / 다운로드(clone)

 

$ git clone <repository-URL> <directory>

 

내용 설명

: GitHub Repository에 있는 파일을 로컬 저장소로 복사

 

<repository-URL> : 원격 Repository의 주소를 작성

<directory> : 저장할 위치를 설정 (생략 가능)

 

 

저장소 연결(remote)

 

$ git remote add <저장소 이름> <URL>		# (1)
$ git remote remove <저장소 이름>		# (2)
$ git remote -v					# (3)
$ git remote <기존 이름> <변경할 이름>		# (4)

 

내용 설명

: 로컬에서 생성한 디렉토리를 원격 저장소와 연결

 

(1) : 해당 URL의 원격 저장소와 설정한 이름으로 연결

(2) : 해당 이름을 가진 저장소 삭제

(3) : 연결된 원격 저장소가 어떤 프로젝트와 연결되어있는지 URL까지 확인

  => -v 옵션 없이 사용할 경우 저장소의 이름만 확인 가능

(4) : 저장소의 이름을 변경

 

 

추가 및 확정(add & commit)

 

$ git add <파일명>		# (1)
$ git add .			# (2)
$ git add -A			# (3)
$ git commit -m "커밋 메시지"	# (4)
$ git status			# (5)

 

내용설명

: git add는 작업 디렉토리(working directory) 상의 변경 내용을 스테이징 영역(staging area)에 올리기 위해 사용

  git commit은 git add 명령어를 통해 스테이징 영역(staging area)에 저장된 내용들을 레포지토리(repository)로

 올리기 위해 사용

 

(1) : 작업 디렉토리의 변경 내용의 일부만 스테이징 영역에 넘김

  => 수정한 파일이나 디렉토리의 경로를 인자로 넘겨서 사용

(2) : 현재 디렉토리의 모든 변경 내용을 스테이징 영역으로 넘김

(3) : 작업 디렉토리 내의 모든 변경 내용을 모두 스테이징 영역로 넘김

(4) : 스테이징 영역에 있는 내용들을 레포지토리로 올리는데, 이때 commit message도 작성하여 함께 올림

(5) : 작업 디렉토리와 스테이징 영역의 상태를 확인

 

 

가지치기 작업 (branch)

 

$ git branch				# (1)
$ git branch -r				# (2)
$ git branch -v				# (3)
$ git branch -a				# (4)
$ git branch <브랜치이름>		# (5)
$ git branch -d <브랜치이름>		# (6)
$ git checkout <브랜치이름>		# (7)

 

내용 설명

: 브랜치(branch)란 여러 개발자들이 동시에 다양한 작업을 할 수 있게 만들어주는 기능이다.

  이 브랜치를 통해 하나의 프로젝트를 여러 갈래로 나누어 관리할 수 있으며, 각각의 독립된 브랜치에서 작업을 한 뒤

 원래 버전과 비교하여 새로운 버전을 만들 수 있다.

 

(1) : 현재 위치한 브랜치를 확인

  => * 가 붙은 브랜치가 현재 활성화된 브랜치

(2) : 원격 저장소의 브랜치 확인

(3) : 브랜치의 마지막 커밋 메시지 확인

(4) : 모든 브랜치 확인

(5) : 브랜치 생성

(6) : 브랜치 삭제

(7) : 해당 브랜치로 이동

 

 

변경사항 발행 (push)

 

$ git push 					# (1)
$ git push origin master			# (2)
$ git push origin <브랜치이름>			# (3)

 

내용 설명

: 원격 저장소(remote repository)에 변경된 파일을 업로드하기 위해 사용한다.

  commit을 통해 많은 내용들을 스테이징 영역(staging area)에 올려도 push를 통해 원격 저장소로 보내지 않으면

 원격 저장소에선 변경된 내용들을 확인할 수 없다.

 

(1) : 커밋을 현재 브랜치에 업로드

(2) : 커밋을 원격 서버에 업로드

(3) : 커밋을 원격 서버의 원하는 브랜치에 업로드

 

 

갱신 및 병합 (pull & merge)

 

$ git pull						# (1)
$ git merge <다른 브랜치이름>				# (2)
$ git diff <branch or commit> <branch or commit>	# (3)

 

내용설명

:  git은 주로 협업에서 많이 사용이 된다. 따라서 원격 저장소에 있는 파일들이 내가 아닌 다른 사람들이 파일을

 추가하기도 삭제하기도 한다. 이때 변경된 사항들을 내 로컬 저장소에 가져오기 위해선 갱신을 해주는

 명령어가 필요하다.

  협업을 할 때 브랜치를 하나 만들어 새로운 기능을 구현하고 완성된 기능은 다른 브랜치와 합쳐야한다. 그 과정을

 merge라고 하며 그 과정을 하기 위해 필요한 명령어가 git merge 이다.

  git diff는 commit이나 branch 사이의 혹은 파일이나 저장소와 작업 디렉토리 사이의 다른 점을 확인하고 싶을 때

 사용하는 명령어이다.

 

(1) : 원격 저장소의 내용을 가져와 현재 브랜치와 병합

(2) : 현재 브랜치에 다른 브랜치의 수정사항 병합

(3) : 첫번째 branch 혹은 commit 과 두번째 branch 혹은 commit 의 변경사항 확인 

 

 

태그 작업(tag)

 

$ git log -p			# (1)
$ git log -p -2			# (2)
$ git log --stat		# (3)
$ git log --pretty		# (4)
$ git log --graph		# (5)

 

내용설명

 : 저장소의 히스토리를 보고 싶을 때 히스토리를 조회하는 명령어

 

(1) : 각 커밋의 diff 한 결과를 보여줌

(2) : 최근 두 개의 커밋만 diff 한 결과를 보여줌

(3) : 각 커밋에서 수정된 파일의 통계정보를 보여줌

(4) : 지정한 형식으로 보여줌, 옵션에는 oneline, short, full, fuller, format이 있음

(5) : 브랜치와 머지 히스토리 정보까지 아스키 그래프로 보여줌

 

 

Git 설정 작업 (config)

 

$ git config --list					# (1)
$ git config --global user.name "이름"			# (2)-1
$ git config --global user.email "이메일"		# (2)-2
$ git config --unset user.name "이름"			# (3)-1
$ git config --unset user.name "이메일"			# (3)-2
$ git config --unset --global user.name "이름"		# (4)-1
$ git config --unset --global user.name "이메일"	# (4)-2

 

내용설명

: 사용자의 이름과 이메일 주소를 설정하는 것으로 Git은 커밋할 때마다 이 정보를 사용한다.

 한 번 커밋한 후에는 정보를 변경할 수 없다. 때문에 프로젝트마다 다른 이름과 이메일 주소를 사용하고 싶다면

 --global 옵션을 빼고 명령을 실행해야한다.

 

(1) : 전체 config 리스트 확인

  => 1 : 이름, 2 : 이메일

(2) : git config 설정하는 방법

(3) : git config 삭제하기

(4) : 삭제해도 남아있다면 global 옵션을 주어 설정했기 때문, 따라서 global 추가하여 삭제 

 

 

정리하면서

 최근 git bash를 통해 git 명령어들을 사용해보고 있다. 하지만 주로 똑같은 명령어만 사용하기 때문에 다른 명령어들에

대해서는 조금 더 연습이 필요할 것 같다. 지금 당장 사용하진 않지만 이후에 협업이나 프로젝트 진행시 많이 쓰일 것

같은 명령어들을 위주로 공부를 하면서 정리해보았다. 

 블로그를 작성하며 명령어들에 대해서 많이 찾아보고 공부를 하였는데, 비슷한 것 같으면서도 다르게 사용되는

명령어나 옵션들이 많아서 공부를 하면서도 많이 헷갈렸다. 나름대로 정리를 해봤지만, 차마 정리하지 못한 명령어도

많았다. 따라서 지금부터 시작이다 생각하고 천천히 사용해보면서 자주 사용하는 혹은 중요한 명령어들만이라도

확실하게 알 수 있도록 조금 더 공부도 하고 명령어들로 이것 저것 많이 시도해봐야겠다.

'Git' 카테고리의 다른 글

Git의 기본 개념  (0) 2023.08.02
GitHub이란?  (0) 2023.07.28
Git이란?  (1) 2023.07.25