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 |