article thumbnail image
Published 2022. 3. 4. 10:21

프로젝트(레파지토리) 폴더 생성

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

모든 브랜치의 로그를 보여주며(브랜치 이름을 보여주며), 그래프처럼 앞에 수직 라인으로 연결관계를 보여줌

각 브랜치를 한줄로 요약함
 
git log [브랜치1]..[브랜치2]
브랜치1에 없지만 브랜치2에 있는 걸 보여줌
 
git diff [브랜치1]..[브랜치2]
내용 차이를 비교해줌
 
git checkout master
master 브랜치에 다른 브랜치를 병합(merge)하려면
 
git merge [다른브랜치]
vim 창이 뜨면서 comment 입력 가능
 
merge 시에 충돌이 발생한 경우 git status 로 충돌이 난 파일을 확인하여 수정 후 commit 하면 됨
 

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

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.

이렇게 나온다면 해당 client에서 만들어진 SSH private key인 id_rsa를 찾을 수 없거나 틀린 경우임
 
Everything up-to-date
이렇게 나온다면 정상적으로 commit 된거임

 



출처: https://redcarrot.tistory.com/227 [빨간당무 마을]

'🚦 Server > git' 카테고리의 다른 글

git commit 다루기  (0) 2021.10.26
git, GitHub 시작하기  (0) 2021.10.22
복사했습니다!