저장소 생성(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 |