GDSC/웹기초

[생활코딩]git

Hanee_ 2021. 11. 2. 12:52

https://youtube.com/playlist?list=PLuHgQVnccGMA8iwZwrGyNXCGy2LAAsTXk

 

지옥에서 온 Git

 

www.youtube.com

다음 강의를 참고하였습니다.

 

init

 .git 이라는 하위 폴더를 생성하여 해당 폴더를 git으로 관리할 수 있게 해주는 명령어

git init                           
//.git 하위 디렉토리 생성 (폴더를 만든 후, 그 안에서 명령 실행 => 새로운 git저장소 생성)

 

clone

저장소(Repository)로 부터 프로젝트를 복제한다.

git clone <https:.. URL> // 기존 깃 소스 코드 다운로드/복제

 

add

작업 위치(Working Directory 이하 WD) 폴더에 작업한 파일이 있을 경우 add를 통해서 staging Area로 옮길 수 있다.

git add <파일명> //해당 파일을 Staging Area로 이동
git add * //커밋에 단일 파일의 변경 사항을 포함(인덱스에 추가된 상태)
git add -A //커밋에 파일의 변경 사항을 한번에 모두 포함

 

commit

커밋 메시지는 현재 버전에 대한 내용을 명확하게 작성해야 한다

git commit //Staging area에 있는 파일을 원격저장소로 커밋. vi editor을 통해 메시지 작성
git commit -m "커밋 메시지" //editor 호출 없이 커밋 생성(실제 변경사항 확정)

status

Git 프로젝트의 상태를 확인할 수 있는 명령어이다.

git status //파일 상태 확인(staged, untracked, ..)

branch

필요에 의해 만들어지는 각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행할 수 있다.

git branch //브랜치 목록 조회
git branch <브랜치이름> //새 브랜치 생성 (local로 만듦)

checkout

특정 브랜치를 사용 하겠다고 명시적으로 지정해 준다.

git checkout -- <파일명> //  로컬의 변경 사항을 변경 전으로 되돌림
git checkout -b <브랜치이름> //브랜치 생성 & 이동
git checkout -b <브랜치 이름> <커밋아이디> // 커밋 아이디로 브랜치 만들고 head로 이동
git checkout master  //master branch로 되돌아 옴
git branch -d <브랜치이름>//브랜치 삭제

push

원격 저장소(remote repository)에 변경된 코드 사항을 업로드한다.

git push origin <브랜치이름> //만든 브랜치를 원격 서버에 전송
git push origin master //변경사항 원격 서버에 업로드
git push < remote > <브랜치이름> //커밋을 원격 서버에 업로드
git push -u < remote > <브랜치이름> //커밋을 원격 서버에 업로드

 

log

저장소에 있는 commit 이력을 조회

git log // commit 로그 확인
git log -p //각 커밋의 diff 결과

diff

파일의 수정 내용을 비교

git diff//commit된 파일상태와 현재 수정중인 상태 비교
git diff --staged //commit된 파일상태와 add된 파일 상태 비교
git diff <아이디1> <아이디2>//commit간의 상태 비교
git diff <브랜치이름><다른 브랜치이름>// 변경 내용 merge 전에 바뀐 내용을 비교할 수 있음

 

remote

현재 프로젝트에 등록된 리모트 저장소를 확인

//클라우드 주소 등록 및 발행(git에게 새로운 원격 서버 주소 알림)
git remote add origin <등록된 원격 서버 주소> 
//클라우드 주소 삭제
git remote remove <등록된 클라우드 주소>

 

reset

특정 사건으로 되돌아가게 되는데 과거로 되돌아 갔으니 해당 사건 이후의 사건들은 모두 사라진다.

git reset <커밋 id>

 

revert

특정 사건을 골라서 없던일로 만든다. reset은 과거의 이력이 커밋에 안남고 깔끔히 과거로 돌아가지만 revert는 특정 사건을 revert 했다는 이력이 커밋에 남게 된다.

git revert <커밋id>

 

pull

클라이언트 상에 아무것도 없을 때 서버의 프로젝트를 내려받는 명령어

//원격 저장소의 변경 내용이 현재 디렉토리에 가져와지고(fetch) 병합(merge)됨
git pull

 

merge

다른 브랜치를 현재 Checkout된 브랜치에 Merge 하는 명령이다. Merge 하고 나서 현재 브랜치가 Merge 된 결과를 가리키도록 옮긴다.

git merge <다른 브랜치이름> //현재 브랜치에 다른 브랜치의 수정사항 병합

fetch

원격 저장소의 최신 이력을 확인할 수 있음. pull 을 실행하면, 원격 저장소의 내용을 가져와 자동으로 병합 작업을 실행하게 된다. 그러나 단순히 원격 저장소의 내용을 확인만 하고 로컬 데이터와 병합은 하고 싶지 않은 경우에는 fetch 명령어를 사용할 수 있다.

git fetch

 

stash

아직 마무리하지 않은 작업을 스택에 잠시 저장할 수 있도록 하는 명령어이다. 이를 통해 아직 완료하지 않은 일을 commit하지 않고 나중에 다시 꺼내와 마무리할 수 있다.

git stash
git stash apply // 가장 최근의 stash를 가져와 적용
git stash list //저장된 stash 목록 확인
git stash drop //가장 최근의 stash 제거
git stash drop <stash 이름> // stash 이름에 해당하는 stash 제거
git stash pop // apply+drop 형태

'GDSC > 웹기초' 카테고리의 다른 글

[생활코딩] MySQL+Node.js  (0) 2021.11.30
[생활코딩] MySQL  (0) 2021.11.23
[생활코딩] JAVASCRIPT  (0) 2021.11.08
[생활코딩] CSS  (0) 2021.10.12
[생활코딩] HTML  (0) 2021.10.12