git 정리
[10] 유데미 git 강의 - Github의 기초(2) _ git clone, push ,remote
개도필
2022. 6. 18. 13:36
다같이 뽀개봅시다. 이해가 잘 되시길 바라요!
이게 흐름만 잘 알면 이해가 다 된다는거지!!!!!!!!!!

첫 Github Repo 만들기
- 깃허브에 코드를 올리는 방법,
- 내 컴퓨터에 있는 로컬 깃 저장소를 가져오는 방법 , 그것을 호스팅된 깃 허브 저장소에 연결하는 방법을 알아보자~
두가지의 접근 방식
- 컴퓨터에 기존 저장소가 있는 경우
- 깃허브에서 새 저장소를 만든 다음, 원격(remote)이라는 것을 추가로 하여 로컬 저장소에 연결
- 원격을 로컬 컴퓨터에 추가한 다음, 변경 사항을 깃허브에 푸시
→이미 작업하고 있는 것, 이미 깃 기록이 있는 것, 이미 코드가 있는 것 들을 의미
2. 아직 작업을 하지 않은 경우, 어디에도 저장소가 없는 경우를 의미
- 내 컴퓨터에서 git init을 실행하는 대신 ,비어있는 내 깃허브 저장소를 클론하고, 거기서 작업을 시작해서 깃허브에 푸쉬한다.
- 로컬 저장소를 깃허브 저장소에 수동으로 연결할 필요가 없게됨.
- → 깃허브에서 이 저장소를 클론하면, 해당 깃허브 URL에 자동으로 연결되기때문에
→ 이럴 경우에는 깃허브에서 새 저장소를 만든 다음, 그것을 내 컴퓨터에 빈 저장소로 클론한다.
< 1번 상황 > github에 local코드 올리기
- 먼저 github에서 빈 repo를 만든다.
- 로컬 저장소는 이 상황을 아예모름, 연결 해줘야댐 github랑 로컬 저장소랑
2. 클라우드에 있는 이 빈 깃허브 저장소를 로컬에 가져와야한다.~ 그 후에 push하는거임
그러기 전에~~~??? 먼저 알아야할 것 git remote
Git Remote 집중학습
- 이미 컴퓨터에 기존의 코드가 있는 경우 필요함!
- git remote란 ?
- 깃에게 알려줄 목적지 URL에 이름을 멋지게 붙인 것
- 내 컴퓨터의 작업 공간이랑 github의 repo랑 연결이 돼야하는데, 연결시키는 것은 git remote라고하는거임
- 현재 저장소에 있는 원격들을 나열해서 보여준 것 (여러개의 github repo가 연결될 수 있기 때문에)
git remote -v
- 깃 클론을 한 저장소에 가서 git remote 를 쳐야함, 우리로 따지면 일단 위에서 datatime이 나올거임
원격을 만드는 방법
- url을 name으로 기억한다.
- 표준이름은 origin
- 아무이름이나 붙여도 된다
- 걍 github url에 별명붙이는거임, 왜냐면 url맨날 언제다써 !!!! 걍 url에 이름짓는거라고 생각하세용!
git remote add name url
→ 깃에게 “깃, 여기있는 URL은 name이라고 부를 거야”라는 말이다.
→ “내가 오리진을 말하면 이 URL얘기야! “라는 뜻이다.
- 여기서 말하는 url은 위에서 만든 빈 github repo url
연결하기
- 만약에 코드를 올리려고 하는 폴더에 git 저장소가 없다면 아래와 같은 command를 따라치기
=> 즉 git init을 해본적이 없는 폴더인경우
2. 만약에 코드를 올리려고 하는 경우에 폴더에 git repo가 이미 있다면
3. git remote add origin url을 하고 git remote -v를 했을 때 => 연결된거임
동일한 URL에 새로운 원격을 추가할 수 도 있다.
- 오픈 소스 프로젝트에 참여햐면 보통 원격은 여러개이다.
git remote add name url
원격 삭제
git remote remove <name>
원격 이름 변경
git remote rename <old> <new>
Git Push소개
- 현재 우리가 진행중인 것 ( 1번상황 → 작성된 코드를 저장소에 올리고 싶은 경우)
- 깃허브에 새 저장소를 만들고,
- 깃허브 저장소에 local repo를 연결한다. (git remote)
- change를 github에 보내기
- 커밋을 저장소로 push해야지 깃허브에 보인다.
- 보내려는 특정 브랜치를 호출한다.
git push <remote> <branch>
push한 코드들이 github에 생성됨
Git push 자세히 알아보기
- 로컬에 있는 브랜치와 깃허브의 브랜치간의 관계
- 로컬에 있는 브랜치와, 깃허브에 있는 브랜치는 확실히 다르다.
git push orgin 브랜치명
- 만약에 github에 있는 브랜치명이면 거기다가 push,
- github에 없는 브랜치명이면 브랜치 새로 만든다.
- 로컬에서 cats 브랜치에서 원격의 다른 브랜치에 push하고 싶다면?
git push origin cats:master
git push -u는 무슨의미일까?
git push -u origin master
- 새 저장소를 만들때 보게되는 옵션 -u
- 상류(업스트림)라는 의미 , 로컬 브랜치의 상류는 원격 브랜치를 가리키는 일종의 연결
- 로컬과 원격 브랜치를 연결시켜서, push 명령을 간결하게 이용 가능
- 깃에게 로컬 컴퓨터 내 저장소의 마스터 브랜치를 마스터로 푸시하라는 의미
- 원격(깃허브)에 있는 브랜치명과 로컬에 있는 브랜치명이 같을 경우 -u를 통해서 push코드를 간결하게 작성 가능
- 예시
git push
- -u를 통해 업스트림이 생성됐으므로, git push만 이용하여 dogs→dogs를 가리킬 수 있다. (로컬 → 원격)
- 로컬 브랜치에서 다른 원격 브랜치로 연결도 가능하긴함
git push -u origin 로컬:원격
- 보통 이렇게는 안함, 추천 x, 병합 문제가 생길 수도 있다.
기타 Github 워크플로우: 복제 우선
- 깃허브에 코드를 올리는 두번째 방법
- 내 로컬에 아무런 저장소가 없고, 프로젝트가 없을때, (깃허브에서 프젝을 시작할 때)
- 깃허브에서 repo만들기
- 깃허브에서 만든 repo clone받기
- 자동으로 원격 구성 됨
- 글고 변경사항있으면 push~
- 예시
1. 빈 저장소를 만들고
2. 클론하기
3. ls를 통해서 확인
원격을 연결해준 적도 없지만, 연결이 돼있음
=> github repo에서 시작했기 때문에
4. push 완료
5. github에 반영됨