git 명령어들

명령어 설명
git clone [URL] URL의 깃허브 repo를 clone한다.
git config –global user.name [ID] 깃허브 아이디를 설정한다.
git config –global user.email [email]  
git config –global user.password [PW] 아이디에 해당하는 비밀번호를 설정한다. (토큰 가능)
git init 현재의 디렉토리를 git 디렉토리로 만든다.
git fetch repository에 변경사항이 있는지 확인(메타데이터를 다운로드)
git pull 깃허브 repo로부터 업데이트 사항을 로컬 PC로 받는다.
git add [DIR] 업데이트 사항을 스테이징 영역에 올린다.
git status 작업 디렉토리의 스테이징 영역 상태를 보여준다.
git commit 로컬 PC에서 진행한 사항에 대해 Commit 한다.
git commit -m “[hash]” commit을 진행하면서, 해당 commit에 이름을 붙인다.
git push 로컬 PC에서 진행한 사항에 대해 깃허브 repo로 push한다.
git rebase 바로 이전 commit 상태로 돌아간다.
git reset –hard [commit hash] 특정 commit 단계로 돌아가면서, 그 commit 단계 이후의 수정내용은 삭제된다.
git reset –soft [commit hash] commit을 한 기록만 삭제하며, 수정내용은 유지된다.

[ ] 대괄호 안의 내용은 본인 혹은 상황에 맞게 넣는 부분이다.
고로 대괄호는 빼고 작성해야 한다.

사용 예시

첫 사용시 : 사용자 설정

1
2
3
4
5
6
7
8
git config --global user.name 유저명
git config --global user.email 이메일주소@호스트.com
git config --global user.password 비밀번호

// 내 경우
// user.name은 필수로,
// user.email은 강력 권장,
// user.password는 선택

외부의 repository를 처음 받을 때

1
2
cd 디렉토리                // repo를 받을 디렉토리로 이동
git clone repository-url  // 현재 디렉토리에 clone

외부의 repository의 변경사항을 update 받을 때

1
2
git fetch     // 변경사항이 있는지 확인
git pull      // 변경사항이 있을 경우 pull로 업데이트 받기

로컬의 변경사항을 repository로 올릴 때

1
2
3
4
5
6
7
8
9
10
11
// 변경사항의 적용
git add 파일명          // 특정 파일의 변경사항을 스테이징 영역에 올림
git add .              // 현재 디렉토리의 변경사항을 "
git add -A             // 작업 디렉토리 내의 모든 변경사항을 "

// commit
git commit -m "메시지"  // 변경사항을 로컬에서 commit 함

// repository에 적용
git push                // 변경사항을 repository에 적용

git 설치

windows

https://git-scm.com/

리눅스

1
2
3
4
5
//데비안 계열
sudo apt-get install git

//레드햇 계열
sudo yum install git

MAC

1
2
3
// homebrew 설치 후

brew install git

commit의 개념

git의 commit 에는 여러 의미가 있는데..

우선은 소스(메인 브랜치)에 적용을 하기 전의 임시 저장이라고 보면 좋겠다. 여러 번 커밋할 수 있으며, 특정 커밋 지점으로 롤백할 수 있다.

그리고 분산 commit이라는 점에서 의미가 있다.
SVN의 경우에도 메인 소스 폴더로부터 checkout을 받아 각 작업자의 로컬에서 작업이 될 수는 있지만, 특정 버전을 저장하는 commit은 불가능하다.
하지만 git은 각 작업자의 로컬 또한 하나의 repository로 보고 commit 기능을 지원한다.

remote

(설명 틀릴 수 있음 주의)

remote는 외부의 repository(깃 repo가 아닌 단순 dir도 됨) 를 특정한 alias(별칭) 으로 만들어 관리하기 위한 기능이다.

예를 들어보자. project_01이라는 소스를 가진 디렉토리가 있다고 가정해보자. (이 디렉토리는 git repo가 아니다.) 이것을 git을 이용해 형상관리를 하고 싶다. 그런데 이 디렉토리는 위치를 이동하면 오류가 생기기 때문에 이동할 수가 없다! 이런 경우 git에서 remote를 통해 이동할 수 없는 외부 디렉토리를 가리키게 하는 것이다.

remote에는 두 가지의 필수 요소가 있다.

(1) alias : 별칭
(2) URL : 가리킬 대상 repository의 주소

1
2
3
4
5
6
7
8
// 외부 repository를 remote로 다루려면
git remote add [alias] [URL]

//예시
git remote add origin https:/127.0.0.1:9000/cantmovedir

// 127... 의 cantmovedir 이라는 directory를
// "origin"이라는 이름으로 관리하겠다.

수정사항을 remote repository에 적용하려면

1
2
3
4
5
6
git push [alias] [branch]

//예시
git push origin master

// origin(127.../cantmovedir) 의 master 브랜치에 push 한다.

만약 remote repository의 주소값이 바뀌었다면?

1
2
3
4
5
6
7
8
9
10
11
12
git remote -v
// 현재 remote 된 repository 정보 확인

> origin https:/127.0.0.1/cantmovedir (fetch)
> origin https:/127.0.0.1/cantmovedir (push)

git remote set-url [alias] [변경할 URL]

//예시
git remote set-url origin https:/127.0.0.1/move1


remote 연결을 끊는 경우

1
2
3
4
git remote remove [alias]

// 예시
git remote remove origin

레퍼런스

https://subicura.com/git/guide/basic.html#git-init-저장소-만들기
https://giseung.tistory.com/35
https://www.daleseo.com/git-add/
remote에 대한 설명 : https://kotlinworld.com/284
remote에 대한 설명 : https://docs.github.com/ko/get-started/getting-started-with-git/managing-remote-repositories
remote에 대한 설명 : https://cheershennah.tistory.com/217