git remote / git clone / .gitignore

woolee의 기록보관소·2022년 10월 30일
0

개발환경

목록 보기
6/17

remote 저장소 확인하려면

git remote : 단축 이름 확인

git remote -v : 단축이름 + 원격저장소주소
=> 이렇게 원격저장소주소가 단축이름으로 저장되어 있으면, 이후에는 해당 단축이름으로 원격저장소의 내용을 fetch해오거나 로컬 변경사항을 push할 수 있다.

remote 저장소 추가하려면

git remote add <단축이름> <url>
단축이름에 내가 원하는 작명 적어도 되고,
그냥 단순히 origin이라고 작성해도 된다.

remote 저장소에 push

git push <리모트 저장소 이름> <브랜치 이름>

예) $ git push origin main

보통 $ git push -u ${원격저장소주소} ${브랜치명}로 작성하는데,
=> -u 옵션은 해당 주소를 기억하라는 의미이다. 한번만 -u 옵션을 사용하면, 그 다음부터는 git push만 입력해도 된다.

예를 들어 https://github.com/~~~~.git 같이 .git으로 끝나는 게 원격저장소주소인데 이걸 매번 작성할 수 없으므로 해당 원격저장소 주소를 단축이름 변수에 저장해놓고(위에서 git remote add <단축이름> <url>로 하면 된다) 그 다음부터는 그걸 불러오는 방식으로 사용하면 된다.

이렇게 단축이름에 변수로 저장한 저장소들 확인하려면 위에서처럼 git remote -v 로 확인하면 됨.

remote 저장소 이름을 바꾸거나 삭제

git remote rename <변경 전 리모트 저장소 이름> <변경 후 리모트 저장소 이름>

git remote remove <삭제할 리모트 저장소 이름>

예를 들어 git remote remove origin

원격저장소에 있는 디렉토리 내려받기 clone

git clone ${원격저장소 주소}

=> 원격저장소 주소는 2가지 HTTPS 형식과 SSH 형식

  • HTTPS 형식
    https://github.com/${USERNAME}/${REPOSITORY_NAME}.git
  • SSH 형식
    git@github.com:${USERNAME}/${REPOSITORY_NAME}.git

원격저장소를 가져올 때, -b 혹은 --branch를 사용하면 특정 브랜치나 태그 내용만 가져올 수 있다.

git clone --branch <branchname> <remote-repo-url>
또는 git clone -b <branchname> <remote-repo-url>

.gitignore

시스템에서 파일이나 폴더를 숨김으로 지정할 때 점(.)으로 시작한다.

원격저장소를 효율적으로 쓰기 위해 필요없는 파일은 저장소에 올리지 않아야 한다. 저장소에 올리지 않는 파일은 .gitignore에 작성해주면 된다. 여기에 작성된 파일들은 스테이징되지 않으므로 파일 관리가 편하다.

예를 들어 node_modules 같은 건 package.json에 잘 명시해두고 npm install 입력하면 자동으로 설치하니까 굳이 저장소에 올릴 필요가 없다.

  • 보안상 위험하거나, 프로젝트와 관계 없거나, 용량이 너무 크거나 등등

#를 붙여서 주석을 달 수 있다. 보통은 하나하나 등록하기 보다는 gitignore.io 같은 데서 초기값을 받아와서 추가값을 등록하는 방식으로 사용한다.

  • 특정 파일 제외 [파일명(확장자포함)]
  • 현재 경로에 있는 특정 파일 제외 /[파일명(확장자포함)]
  • 특정 폴더 안에 있는 파일 모두 제외 [폴더명]/
  • 특정 경로, 특정 파일 [특정경로]/[특정파일]
  • 특정 확장자 전부 제외 *.js
  • 예외 ![예외하고싶은파일]

.gitignore에 작성하지 않아서 실수로 원격저장소에 올렸다면?
다시 .gitignore에 꼼꼼하게 작성하고 저장한 뒤에, git rm -r --cached . 를 입력해서 다시 한번 확인해주는 작업을 거쳐야 한다.
(rm은 remove, r은 recursive => git으로 제거하려는 폴더/파일이 있는데 그 안에 또 뭔가 있을 수 있고 계속 그렇게 들어갈 수 있으므로, 즉 반복적으로 제거하려는 폴더/파일이 계속 있을 수 있으므로)
그러면 rm으로 삭제되었다고도 뜨고, 파일 목록도 D로 delete되었음이 표시된다. 그리고 나서 이제 다시 새로운 버전을 만들고 원격저장소로 push까지 해주면 된다. (add/commit/push)

git rm <삭제할 파일/폴더명> 을 사용하면 로컬, 원격저장소에 있는 게 전부 삭제되는 것이고.
git rm --cached <삭제할 파일/폴더명>을 사용하면 로컬에는 남아 있지만, 원격저장소에 있는 것만 삭제하는 것이다.

그러므로 git rm -r --cached .로 원격 저장소에 있는 애들을 전부 삭제하고(로컬에는 남아 있으므로) 그걸 다시 원격저장소로 push 해주면 된다.

참고

2.5 Git의 기초 - 리모트 저장소
Git Clone Branch – How to Clone a Specific Branch

Cloning a repository
git-clone - Clone a repository into a new directory

[Git] .gitignore이란? / .gitignore 사용법

profile
https://medium.com/@wooleejaan

0개의 댓글