https://opentutorials.org/course/2708
code -> stage (commit 전 대기) -> repository (commit 후)
https://git-scm.com/
https://git-scm.com/book/ko/v2
한글 매뉴얼 지원
프로젝트(레파지토리) 폴더 생성
git init
git status
git add [관리할파일명]
git config --global user.name [유저이름]
git config --global user.email [이메일]
이걸 하지 않고 진행하는 경우 --global to set the identity only in this repository 매세지가 보이게됨
git commit
만약 윈도우10에서 git commit 실행시 vim으로 실행 안된느 경우 다음 코드 실행 : git config --global core.editor vim
vim 이 실행되었을 때 commit message를 작성
git log
git add [업데이트할파일명]
처음 추가할 때도, 버전 업 할 때도 add를 사용함
git log -p
자세한 내용 출력
git log [commitID]
해당 id 이전만 보여줌
git diff [begin commit id] [end commit id]
git diff [begin commit id]..[end commit id]
해당 id 구간만 보여줌
git diff
현재 작업 중인 (commit 전) 변경 사항을 보여줌
이전 log로 되돌리기
git reset VS git revert
설명카툰 : https://www.popit.kr/개발바보들-git-back-to-the-future/
git reset [commit id] --hard
commit을 삭제하고 이전 commit으로 최신화 하고 싶음
만약 --hard를 안했다면 git diff로 변경사항이 보이고, git reset --hard 하여 바꿀수 있음
--soft 등의 옵션도 존재함
과거로 되돌리는 것(돌아가는 이전까지 모든 내역이 사라짐)
server로 push 하기 전이라면 reset
git revert [commit id]
이전 log로 돌아가면서 새로운 버전을 만드는 것
특정 사건을 없었던 일로 만드는 것(돌아가는 이력까지 log로 남음)
server로 push 한 후라면 revert
git commit -help
도움말
git commit -a
git commit --all
git add 없이 바로 stage area에 업로드
단, 기존에 add 해둔 파일들만 가능 (새로운 파일은 add 해야함)
git commit -m ["코멘트"]
git commit --message ["코멘트"]
코멘트 바로 넘김
git commit -am ["코멘트"]
-a, -m 옵션을 동시에 (즉 여러 옵션을 연달아 나열할 수 있음)
Ref. https://git-scm.com/book/ko/v2/Git-브랜치-브랜치와-Merge-의-기초
git branch
현재 브랜치 리스트 확인
git branch [브랜치 이름]
현재 기준 새로운 브랜치 생성
git checkout [브랜치 이름]
브랜치 변경
git checkout -b [브랜치 이름]
현재 기준 새로운 브랜치 생성하고 바로 전환
git branch [브랜치 이름]
git checkout [브랜치 이름]
git branch -d [브랜치 이름]
브랜치 삭제
git branch -D [브랜치 이름]
병합하지 않은 브랜치를 강제 삭제
git log --branches --graph
모든 브랜치의 로그를 보여주며(브랜치 이름을 보여주며), 그래프처럼 앞에 수직 라인으로 연결관계를 보여줌
git log --branches --graph --oneline
모든 브랜치의 로그를 보여주며(브랜치 이름을 보여주며), 그래프처럼 앞에 수직 라인으로 연결관계를 보여줌
stash
현재 브랜치의 작업중인 내용을 commit 하지 않고 stage에 임시로 저장하는 것
버전관리 되고 있는 파일/폴더만 해당 (즉, tracked files만)
WIP (working in process; 작업중)
git stash apply
stash 했던 내역을 다시 작업 할 때
git stash list
임시 작업 목록을 보여줌
git reset --hard HEAD
현재 작업 중인 것을 최신 commit 버전으로 복구함
단, stash 내용가지 날라가진 않음
git stash drop
가장 최근 stash 를 삭제
git stash pop
git stash apply ; git stash drop
위 두개 명령과 동일
HEAD
현재 checkout한 브랜치의 최신 commit을 알려줌
git init [저장소이름]
하위 디렉토리로 repository 생성
git init -bare remote [저장소이름]
하위 디렉토리로 작업은 불가능하고 저장만 가능한 repository 생성 (수정 불가능)
git remote add [원격저장소별명] [원격저장소경로]
원격 저장소 연결
git remote -v
원격 저장소 목록
git config --global push.default simple
원격 저장소에 업로드 하는 방식을 결정, simple (선택한 파일만) or defalut (알아서)
git push --set-upstream origin master
git push
원격 저장소로 업로드
git site에서 fork 하게 되면 해당 저장소를 내 계정으로 가져옴
git clone [복제하려는원격저장소주소] [저장소이름]
복제하려는 원격저장소를 현재 디렉토리의 하위 저장소로 가져옴
만약 이미 저장소 디렉토리가 있고, 현재 디렉토리라면 저장소 이름을 .으로 하면됨
git log --reverse
로그를 거꾸로 보기
git commit --amend
마지막 commit의 코멘트를 수정 (지역 저장소)
git pull
원격 저장소로부터 가져오기
Secure Shell (SSH)
ssh_keygen
id_rsa - private key - server / server
id_rsa_pub - public key - remove / client
github.com 사이트에 setting -> SSH and GPG keys -> SSH keys -> New SSH key 로 추가함
이후 git push 했을 때
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
'Study > Etc.' 카테고리의 다른 글
[JUPYTER] 주피터 노트북 실행 시 500 번 오류 (500: Internal Server Error) (2) | 2019.03.26 |
---|---|
[anaconda] anaconda 환경에서 jupyter 실행 시 kernel 목록에 env 목록이 보이지 않는 경우 (0) | 2019.03.05 |
[Windows 10] AMD RAID 미인식 (인식 불가) 문제 및 해결 (1) | 2019.01.07 |
인터넷 개인 정보 해킹을 방어하는 최소한의 생활 팁 (0) | 2016.11.17 |
[크롬/Chrome] local file 문서 간 데이터 교환 오류 문제 - (SecurityError: Blocked a frame with origin) (0) | 2015.04.09 |