- GitHub에 원격 저장소 추가 후 푸시하기
깃헙에서 레퍼지토리를 생성 후 HTTPS 프로토콜을 사용하여 기존에 있던 디렉토리를 올려보자
레포지토리를 생성 후 HTTPS 프로토콜을 선택하면 코드를 복사하는 곳이 2개가 생긴다.
맨 마지막에 있는 코드를 복사해서 붙여넣기 후 실행하면 레퍼지토리에 디렉토리에서 커밋한 모든 것들이 업로드 되는 것을 확인할 수 있다.
git remote add origin (원격 저장소 주소)
- 로컬의 Git 저장소에 원격 저장소로의 연결 추가
- 원격 저장소 이름에 흔히 origin 사용. 다른 것으로 수정 가능
git branch -M main
- GitHub 권장 - 기본 브랜치명을 main으로
git push -u origin main
- 로컬 저장소의 커밋 내역들 원격으로 push(업로드)
- -u 또는 --set-upstream : 현재 브랜치와 명시된 원격 브랜치 기본 연결
git remote 명령어로 원격 목록 보기가 가능하며
자세히 보기를 원할 경우에는 git remote -v 명령어로 확인할 수 있다.
원격 지우기(로컬 프로젝트와의 연결만 없애는 것으로 GitHub의 레퍼지토리는 지워지지 않는다)
git remote remove (origin 등 원격 이름)
- GitHub에서 프로젝트 다운받기
Codes를 누르면 Download ZIP이 있는데 이것은 파일들을 다운 받는 것이며 Git 관리내역은 제외된다.
git clone 명령어를 사용하여 Git 관리내역을 포함하여 다운로드를 받자
먼저 프로젝트를 다운로드 받을 디렉토리로 이동하여 우클릭 후 git bash here 클릭
다운로드 받을 프로젝트의 Codes에서 HTTPS 프로토콜 복사 후 붙여넣기 실행하면 디렉토리에 잘 다운로드 되는 것을 확인할 수 있다.
- 원격으로 커밋 밀어올리기(push)
내 컴퓨터에서 작업을 한 후에 GitHub에 올리려면 아래 명령어로 올리면 된다.
git push
(이전에 git push -u origin main으로 대상 원격 브랜치가 지정되었기 때문에 가능한 것)
완료된 후 GitHub에서 확인을 해보면 커밋이 제대로 된 것을 확인할 수 있다.
- 원격의 커밋 당겨오기(pull)
GitHub 페이지에서 수정이 되거나 다른 사람이 수정하여 변경된 내용을 가지고 오려면 아래 명령어를 실행시키면 내 컴퓨터에도 적용이 된다.
git pull
로컬에서 파일과 로그를 살펴보면 잘 가지고 온 것을 확인할 수 있다.
- pull 할 것이 있을 때 push를 한다면?
1) 로컬(내 컴퓨터)에서 파일을 수정하고
2) GitHub에서 파일을 수정한 후에
push를 해보면 에러가 발생함
본인은 Leopards.yaml 파일을 로컬에서는 manager를 Dooli로 수정하고 GitHub에서는 coach를 Lupi로 수정한 뒤 VS code에서 push를 하니 에러 발생
위와 같은 상황이 생겼다면 원격저장소(GitHub)에 있는 것을 먼저 pull 해야한다.
여기서 로컬 소스트리를 보면
Add Dongho To Leopards 다음에 Edit Leopards manager인데
GitHub에서는 Edit Leopards coach 으로 되어 있다.
여기서 어떤 커밋을 살려야할지 정해야 하는데..
이런 경우 2가지 방법을 사용할 수 있다.
merge 방식 => git pull --no-rebase
위의 명령어를 실행시키면 원격과 로컬의 히스토리가 남겨지고 하나의 main으로 합쳐지게된다.
merge 방식은 로컬과 원격의 어긋난 시간 선을 한군데로 모아준 다음에 push 하는 것이다.
rebase 방식 => git pull --rebase
pull 상의 rebase는 다름(협업시 사용 가능)
git pull --rebase 명령어를 실행시킨 후 git push를 하면 아래처럼 로컬과 원격을 하나의 브랜치로 합친다.
rebase 방식은 원격에 맞춰서 먼저 원격 커밋을 가져와 붙이고 그 다음에 로컬의 커밋을 잘라서 붙인 다음 push 하는 것
- 협업시 발생하는 충돌 해결하기
git pull --no--rebase 해결 방법
로컬과 원격에서 수정을 하고 git pull --no-rebase 명령어를 실행시키면 다음과 같은 화면이 나타난다.
여기서 원하는 값을 선택을 하거나 새로운 값으로 수정을 해준다.
(로컬은 Maruchi를 원격은 Arachi를 추가)
본인은 새로운 값으로 수정한 뒤 git add . 명령어 실행 후 git commit 명령어를 실행시킨 뒤 아래와 같이 성공했다는 메시지를 출력받았다.
이 상태에서 i를 눌러서 메시지를 수정할 수 있고 수정을 안한다면 :wq로 나가면 된다.
소스트리로 확인을 해보면 Maruchi와 Arachi의 히스토리는 남고 협의를 본 뒤에 수정했다는 사실을 알 수 있다.
git pull --rebase 해결 방법
git pull --rebase 명령어를 실행시킨 후 원하는 값을 선택 후 git add . 명령어 실행 git rebase --continue를 실행시키면 되는데 원하는 값을 어떤 것을 선택함에 따라 커밋의 갯수가 달라진다.
- 로컬의 내역을 강제로 push 해보기
협업 중이라면 꼭 내용을 공유하고 서로 다 동의를 했을 시에만 사용할 것
1) 로컬의 내역 충돌 전으로 reset
2) 아래 명령어로 원격에 강제로 적용
git push --force
소스트리를 사용해서 브랜치를 초기화한 뒤에 VS code에서 명령어를 실행시킨 뒤 확인
panthers.yaml에 오늘 작업했던 것들이 다 사라졌고 GitHub에서도 사라진 것을 확인할 수 있다.
'Git,GitHub' 카테고리의 다른 글
[Git] 기존 Project에 버전 관리에 포함되어 있는 파일 명령어로 삭제 (0) | 2022.07.18 |
---|---|
[GitHub] GitHub_#2 (0) | 2022.06.12 |
[Git] Git_#3 (0) | 2022.06.07 |
[Git] Git_#2 (0) | 2022.06.07 |
[Git] Git_#1 (0) | 2022.06.07 |