Written by coh at home
[Git]github 본문
협업을 할 때 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 |