Written by coh at home

[Git]github 본문

Etc/git

[Git]github

och 2023. 9. 17. 00:50

협업을 할 때 github에 있는 것을 통해 작업을 하고 올린다.

이때 누군가 먼저 올렸다면 나는 바로 올릴 수 없고 내 컴퓨터에 최신화를 한 후 올릴 수 있다. 이때 만약 충돌이 발생하면 내 컴퓨터에서 먼저 해결하고 올릴 수 있다.

 

이와 같이 github는 중간교통정리를 담당해준다.  

 

github의 초기세팅.

 

token 발행하고 음.. 일일이 치는 거 귀찮으니까 MAC같은 경우 key chain에 저장.

repo 만들고 이제 지금까지 git으로 작업한 내용을 올려보자. 

 

- Github에 올리는 방법. 

git remote add orgin (원격저장소주소) # git remote add 는 원격저장소를 추가하는데 origin이라는 이름으로 추가한다는 것이다. github이나 bucket 등등 원격저장소의 주소를 지정할 수 있다. 

 

git branch -M main # 기본 branch이름을 main으로 변경한다. 

 

git push -u origin main # git push 는 원격저장소에 없는 것들을 넣어준다는 의미. 그리고 -u origin main 은 어떤 원격저장소의 어떤 branch를 기본으로 지정할 건지를 의미한다. 즉, origin이름의 저장소의 main branch에 push를 한다는 뜻이다. 

 

원격저장소는 여러 개를 만들 수가 있다 버킷이나 깃헙 등등 그래서 명시를 해준다. 

git remote 로 원격저장소 이름 목록을 볼 수 있고 

git remote -v 로 주소를 확인할 수 있다. 

 

- Github 내려받는 방법

git clone 복사한http주소

 

4-4 push와 pull 

local 에 변화를 일으키고 git commit -am "Add Evie" 를 commit 하면 local과 원격의 위치 차이가 생긴다. (sourceTree를 통한 확인이 가능함. github를 최신화해주기 위해서 git push origin main 해주면 된다!!)

 

따라서 원격을 최신화해주기 위해

git push 를 쓴다. 

 

반대로 최신화된 원격을 당겨오기 위해서 

git pull 을 쓴다.

 

근데 만약 누군가가 먼저 깃헙을 최신화 시켰다면 우리는 pull을 먼저 진행하고 push를 해야한다.

이때 두 가지 방법이 있다.

 

git pull --no-rebase # merge방식, git pull과 같은 명령어이다. 

git pull --rebase # rebase방식

 

자 이제 동료의 코드와 충돌을 일으키고 해결해보자. 

 

1. git pull --no-rebase의 경우

git add .

git commit 

 

2. git pull --rebase의 경우

git add .

git rebase --continue를 하면 된다. 

 

rebase의 경우 

로컬에 공유받은 파일을 작업할 때 rebase해서 올리지 말고

github에서 pull하는 경우는 rebase를 해도 괜찮다. 

 

마지막으로 원격에 문제가 생겨 로컬로 강제로 맞춰야할 때이다. 

git push --force 

원격의 모든 것들이 local상태로 맞춰진다. 

 

4-5 원격저장소의 branch

 

git branch fromLocal

git switch fromLocal

혹은

git switch -c fromLocal 

 

그리고 git push 하면 에러가 난다. 

어떤 원격에 어떤 branch 에 올릴 것인지를 지정하지 않았기 때문이다.

git push -u origin fromLocal

 

git branch -a # 원격의 branch 까지 확인 가능. 

만약 원격의 branch 가 전부 보이지 않는다면 

git fetch # 원격의 정보 업데이트 

 

git switch -t origin/from-remote # 원격의 branch 같은 이름으로 로컬에 생성하고 이동

git push orgin --delete 원격branchName # 원격의 branch를 삭제.

'Etc > git' 카테고리의 다른 글

[Git]branch(차원 합치기/충돌 해결)  (0) 2023.09.15
[Git]Start git!(setting/시간여행/충돌해결)  (0) 2023.09.15
git 차원 넘나들기  (0) 2022.06.15