본문 바로가기
Env

[Git] 명령어 정리

by DenverAlmighty 2022. 7. 17.
# 버전 확인
$ git --version
# 저장소 만들기 위한 디렉터리 초기화
$ git init
# 새 디렉토리 만들면서 저장소로 초기화
$ git init <디렉터리 이름>

# 수정한 파일 스테이징
$ git add <파일명>

# 상태 확인
$ git status

# 스테이지에 올라온 파일 커밋하기
$ git commit -m "<message>"

# 스테이징 + 커밋
$ git commit -am "<message>"

# 저장소에 저장된 버전/기록 확인
$ git log
# 커밋에 관련된 파일까지 함레 보기
$ git log --stat
# 커밋 간략하게 확인. 한 줄에 한 커밋씩 보여줌.
$ git log --online


# 변경 사항 확인하기
$ git diff

# 버전 관리에서 제외시키기
.gitignore 파일 생성해 목록 지정. (파일에 파일명, 확장자, 디렉터리 이름 입력)

Github 연결하기

# 원격저장소에 origin 추가하겠다. origin 이라는 단어로 깃허브 저장소 주소 줄여서 추가.
$ git remote add origin <https://github.com/원격저장소주소>

# 원격저장소 연결 확인
$ git remote -v

# 원격 저장소에 파일 올리기. 원격저장소(origin)의 master브랜치로 푸쉬
$ git push origin master
$ git push -u origin master # -u : 지역 저장소 브랜치를 원격 저장소의 master 브랜치에 연결. 맨 처음에만 사용)

# 원격 저장소에서 파일 내려받기
git pull origin maser

# Github에 SSH 원격 접속하기.
홈디렉토리로 이동
$ ssh-keygen # ssh 키 저장 디렉토리 경로 표시됨.
# 값 입력 안하고 엔터, 엔터, 엔터 누르면 ssh 통해서 다른 컴퓨터 접속 비미ㄹ번호 생성됨
프라이빗키 : id_rsa, 퍼블릭 키 : id_rsa.pub

# 깃허브에 퍼블릭 키 전송하기
퍼블릭키 내용 복사 - Github web - settings - SSH and GPG keys - New SSH Key - 붙여넣기
-> SSH 만든 컴퓨터는 github 저장소의 ssh 주소만 알고있으면 로그인 안하고 저장소에 접속 가능

#SSH 주소로 원격 저장소 연결하기
Create Repository - 저장소 생성후 SSH 눌러서 SSH 주소 표기, 복사
$ git init <Repository>
$ cd <Repository>
$ git remote add origin <복사한 주소>

 

 

작업 되돌리기

# 최근 커밋한 메세지 수정(명령어 입력시 vim 실행됨. 맷 첫줄 커밋 메시지 수정 후 저장,종료)
$ git commit --amend

# 작업 트리에서 수정한 파일 되돌리기
$ git checkout -- <파일명>

# 스테이징 되돌리기
$ git reset HEAD #스테이지에 있는 모든 파일 되돌리기
$ git reset HEAD <파일명>

$ 커밋 되돌리기
$ git reset HEAD^
 == $ git reset --mixed HEAD^ # default. 최근 커밋 , 스테이징 전 상태로 작업트리 되돌리기
# 최근 커밋 전 상태로 작업 트리 되돌리기
$ git reset --soft HEAD^
# 최근 커밋,스테이징, 파일 수정 전 상태로 작업 트리 되돌리기. 이 옵션으로 되돌리면 복구 불가.
$ git reset --hard HEAD^

# 특정 커밋으로 되돌리기
# reset A : 최근 커밋을 A로 리셋함. A커밋 이후 커밋 삭제, A커밋으로 이동하기
$ git reset <커밋해시>

# 커밋 삭제하지 않고 되돌리기
$ git revert

 

브랜치

# 브랜치 확인
$ git branch
$ git log 명령어 입력했을 때 커밋 로그에서 (HEAD -> main, branch1) : 현재 작업 브랜치 main. 브랜치 main, branch1 있음.

# 새 브랜치 만들기
$ git branch <브랜치이름>

# 브랜치 이동하기
$ git checkout <브랜치 이름> (git 1version)
$ git switch <브랜치이름> (git 2 version)


# 각 브랜치의 커밋 확인
$ git log --branches
# 브랜치와 커밋 관계 쉽게 보기위해 그래프
$ git log --branches --graph

#브랜치 사이 차이점 알아보기(branchA에는 없고 branchB에만 있는 것 보여줌)
$ git log <branchA>..<branchB>

브랜치 병합하기

# B 브랜치를 A브랜치로 병합하기
$ git swtich <A>
$ git merge <B>

# 같은 파일 같은 위치 수정한 경우 -> 충돌남
<<<<<<< HEAD
<이 사이 내용은 현재 브랜치서 수정한 내용>
=======

=======
<o2 브랜치가 수정한 내용 위치>
>>>>>>> o2

# 병합이 끝난 브랜치 삭제하기
$ git branch -d <브랜치이름>

# 브랜치 관리하기
# 다른 브랜치 커밋 골라서 최신 커밋으로 지정하기. 명령 실행 후 브랜치와 연결 끊긴 커밋은 삭제됨
$ git reset <커밋 해시>

# 파일 수정 후 커밋 하지 않은 상태에서 다른 파일 커밋해야 할 경우 작업중인 파일 감추기
# git status 를 확인해보면 stash 명령어 사용 후 modified(수정됨) 사라짐
# stash stack 방법(FILO)으로 감춰짐.
$ git stash
# 최근 항목 되돌리고, 저장한 내용 그대로 두기
$ git stash apply
# 감춘 파일 꺼내오기
$ git stach pop
# stash 목록에서 가장 최근 항목 삭제
$ git stash drop

 

'Env' 카테고리의 다른 글

[Tistory] 대표 이미지 숨기기  (0) 2022.07.23
[Git] Git 2.x 설치  (0) 2022.07.23
[Git] GitLab에서 Github 레포지토리 가져오기  (0) 2022.07.08
[Git] Github 토큰 생성하기  (0) 2022.07.08
Jupyter Notebook 티스토리에 올리기  (0) 2020.08.24