📝 기존 Git 관련 명령어 정리자료들이 여기저기 흩어져있어서, 이 곳으로 정보들을 합치는 중입니다.
Git은 모든 파일을 추적(tracking)하는 버전관리시스템입니다.
따라서, 내가 언제 파일이 변경되고, 만들고, 삭제되었는지를 알게 해줍니다.
Github은 파일공유소라고 보면 되겠습니다.
<>는 무시하고(typing하지말고) 적어주세요!
Git 기본설정
Git 하위 디렉토리 생성 (깃 저장소 생성) | |
git init | 해당 폴더에 git이 없을 때 사용한다. |
Git 정보 확인 | |
git --version | 깃(git) 버전 확인 |
git log | 커밋(commit)내역 확인 |
git remote -v | 원격저장소(github repository) 확인 |
Github에 있는 repository 가져오기 (깃헙과 로컬 연결이 자동적으로 되어있다.) | |
git clone <Github repository URL> | Github repository가 로컬에 복제된다. (폴더생성) |
git clone <Github repository URL> <폴더명> | <폴더명>으로 Github repository가 로컬에 복제된다. |
레포지토리 관리
upstream repository 설정하기 | |
git remote add <닉네임> <upstream repository URL> | upstream repository이 설정된 닉네임으로 등록된다. |
git push <닉네임> master | upstream repository에 push하고 싶으면 꼭 설정된 닉네임을 이용해야한다 |
로컬에 있는 repository 삭제하기 (Git 명령어 아님) | |
rm -rf <local repository name> | 로컬에 있는 레포지토리를 삭제하는 방법이다. 폴더삭제와 같다. Github에 있는 레포지토리는 삭제되지 않는다. |
Local repository와 Github repository 연결하기 (깃헙레포과 로컬레포가 연결이 되어있지 않을 때) | |
git remote add <Github repository URL> | 원격 저장소(Github repository)와 연결 |
git remote -v | 원격 저장소(github repository) 정보 확인 연결이 잘 이루어졌는지 확인한다. |
원격 저장소 정보 삭제하기 | |
git remote rm <Github repository URL> | 깃헙 레포지토리와 연결 |
원격 저장소 버전 받아오기
이미 로컬 저장소와 원격 저장소가 연결된 상태여야 합니다.
버전 받아오기 | |
git pull | 버전을 가져온다. |
git pull <원격닉네임> <브랜치이름> | 지정된 저장소의 지정된 브랜치의 버전을 가져온다. |
pull 취소하기
종종 pull을 취소해야될 경우가 생긴다. 특히나 pull을 받았는데 conflict가 뜬다면...
pull 취소하기 | |
git reset --hard ORIG_HEAD |
커밋하기
CLI(Command-line interface)로 커밋(Commit)하기 | |
git add <파일명.확장자> | <파일명.확장자> 파일을 스테이징(staging) 상태로 만든다. |
git add . | 로컬에 있는 추적되지않은(untracked) 모든 파일을 스테이징 상태로 만든다. |
git status | 현황을 확인하여 빠뜨린 파일이 더 있는지 확인한다. untracked file이 있다면, git add .를 다시 해주자! |
git commit -m "커밋메세지" | 커밋(commit)메세지 작성(버전 제목) |
git commit -am "커밋메세지" | add랑 commit이랑 같이 할 때 사용한다. |
git push origin master | public repository(=github repository)에 전송 |
git push origin master --force | 강제 푸시 |
이미 커밋했지만, 빠뜨린 파일이 있거나 메세지를 수정할 때는
커밋을 한 번 더 하는 것이 아니라, 마지막 버전을 수정해주자!
이미 커밋된 버전 수정 (빠뜨린 파일이 있거나, 포함하고 싶지 않은 파일이 있을때 사용) | |
git add <파일.확장자> | <파일.확장자>파일을 스테이징 |
git rm <파일.확장자> | <파일.확장자>파일을 스테이징에서 삭제 |
git rm /<폴더명> | <폴더명>폴더를 스테이징에서 삭제 |
git status | 현황을 확인하여 빠뜨린 파일이 더 있는지 확인한다. untracked file이 있다면, git add .를 다시 해주자! |
git commit --amend | 마지막 커밋에서 <파일.확장자>파일을 추가해준다. |
📌 git rm이 실행되지 않을때 참고!
더보기
혹시 커맨드창에서 (use --cached to keep the file, or -f to force removal)를 발견하였다면,
당황하지말고, --cached를 붙여주면된다.
ex)git rm <파일.확장자> --cached
이미 커밋된 버전 메세지 수정 | |
git commit --amend -m <커밋메세지> | 마지막 커밋의 메세지를 <"커밋메세지">로 변경시켜준다. |
* Working directory
tracking 되지 않은 파일(새로만들거나 수정, 삭제된 파일)과
이미 tracked가 되어서, git repository에 저장되어있는 파일이 공존한다.
* Staging area
Commit 전 준비 단계 공간
* git repository
Staging area 안에 있던 파일들이 하나의 버전으로 최종적으로! 이 공간에 저장된다.
원격 저장소에 버전 업데이트(push)하기
버전 업데이트하기 | |
git push | 버전 업데이트하기 |
git push <원격닉네임> <브랜치이름> | 지정된 저장소의 지정된 브랜치의 버전을 가져온다. |
git push -u <원격닉네임> <브랜치이름> | push의 디폴트설정 바꾸기 git push만 하면 디폴트로 설정된 곳으로 push된다. |
브랜치 관리
브랜치(branch) 생성&삭제 | |
git branch <브랜치명> | <브랜치명>으로 된 브랜치(branch) 생성 |
git branch -d <브랜치명> | <브랜치명>으로 된 로컬 브랜치 삭제 |
git push origin --delete <브랜치명> |
<브랜치명>으로 된 원격 브랜치 삭제 |
이전 버전에서 브랜치 생성하기 | |
git checkout <SHA-1 체크섬> | <SHA-1 체크섬> 파일을 스테이징(staging) 상태로 만든다. |
git checkout -b <브랜치명> | 위의 버전(시점)에서 <브랜치명>으로 된 브랜치 생성 |
git checkout <SHA-1 체크섬> -b <브랜치명> | 위의 내용을 하나로 합친 명령어이다. 따라서 <SHA-1 체크섬>의 버전에서 <브랜치명>으로 된 브랜치를 생성한다. |
git checkout master | 본래의 버전(시점)으로 돌아간다. |
* SHA-1 체크섬
log 기록에 나오는 각 버전의 해시값이다.
원격저장소 정보 가져오기 (Fetch)
fetch | |
git fetch -p <브랜치 이름> | 원격저장소 브랜치정보 가져오기 |
📌 Git의 관리에서 항상 제외시키기 (ignore)
더보기
터미널에서 touch .gitignore 을 입력한다. (굳이 커맨드 사용하지 않고 .gitignore이라는 파일을 만들면된다.)
.gitignore 파일안에 제외시킬 파일명&폴더명을 적는다.
이미 github repository에 올라간 파일을 .gitignore 에 적용하고 싶다면? | |
git rm -r --cached | |
git add . |
'📝 꾸준함이 무기 > Information' 카테고리의 다른 글
React js 개발자를 위한 고급 로드맵 (0) | 2021.10.12 |
---|---|
웹 개발자들을 위한 17개의 추천 웹사이트 (0) | 2021.10.12 |
Github actions을 이용한 AWS S3 자동배포 (1) | 2021.10.06 |
TypeScript를 써야만 하는 이유 (0) | 2021.09.22 |
SPA 프레임워크 ( React, Vue, Angular ) (0) | 2021.09.21 |