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
리눅스
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