티스토리 뷰
● git clone
- 원격저장소의 장점은 다른 사람과 협업할 수 있다는 것이다.
- 일이 너무 많아 다른 사람 1명을 구해 같이 작업을 한다고 해보자
- 이때 새로온 사람이 내가 작업하던 기존의 소스코드를 받으려면 어떻게 해야할까?
1. github.com 가서 직접 다운받아도 되고
2. git clone 원격저장소주소 → 새로운 작업폴더에서 해당 명령어를 이용해 소스를 받으면 된다.
- 그러면 원격 저장소에 있던 내용을 그대로 받을 수 있다.
- git clone 명령어를 이용했더니 remote repository에 있던 소스가 다운받아졌다.
cf) 필요에 따라 특정 브랜치 1개만 clone 할 수 있다.(필요하면 찾아보기)
- 이제 새로온 사람도 코드를 짜서 commit 하고 git push 하면 그게 협업이다.
- 단, 새로온 팀원도 github 아이디가 있어야하고 해당 팀원의 아이디를 Collaborators 메뉴에 등록해놔야 협업 가능하다.
● git push 전에는 git pull 부터
- git push는 마음대로 할 수 있는게 아니다.
- 내가 push 하려고 하는데 다른 사람이 만든 파일이 원격 저장소에 생기면 git push 못한다.
- github의 원격 리포지토리에 들어가서 거기서 직접 새로운 파일을 하나 만들어보았다.
- made by github 라는 파일을 만든 후 commit 했다.
- 이런 식으로 원격 저장소가 타인에 의해 UPDATE 되었다고 가정해보자
- 이 사실을 모르는 내가 VScode에서 방금 만든 파일을 원격 저장소에 업로드하고 싶어졌다.
- made by vscode 라는 파일을 만든 후 평소대로 commit 하고 나서 git push 해보자
- push가 되지 않고 error가 발생했다.
- 즉, 원격저장소와 로컬저장소의 내용이 다르면 로컬저장소에서 git push가 되지 않는다.
- 만약 이런 안전 장치가 없다면 코드가 꼬이기 때문에 이를 미리 예방해주는 것이다.
- git push 전에 git pull을 이용하면 현재 원격저장소에 있는 내용을 가져올 수 있다.
git pull 원격저장소주소
- 위의 명령어는 원격저장소에 있는 모든 branch 내용을 가져와서 로컬저장소에 합치라는 의미이다.
- 이러면 로컬저장소가 가장 최신의 상태가 되기 때문에 이제 git push가 가능해진다.
- 결론 : 변동 사항이 생겼다면 git pull 후에 git push 하자
참고
- git pull 원격저장소주소 브랜치명 → 특정 브랜치만 가져올 수 있다.
- 원격저장소 주소를 변수에 등록해놨으면 당연히 사용 가능(나는 origin이라는 변수 사용)
- 예전에 '-u' 옵션을 사용했으면 git pull, git push 까지만 입력해도 문제 없다.
● git pull 명령어 참고사항
- git pull 명령어는 (git fetch + git merge)의 축약어이다.
- git pull을 입력하면 자동으로 (git fetch + git merge)를 해주는 것이다.
git fetch
→ 원격저장소에 있는 commit 중에 로컬저장소에 없는 신규 commit을 가져오라는 의미
git merge
→ 그걸 merge 하라는 의미
- git pull 수행 시 팀원 2명이 같은 파일을 건드리고 있는 경우 merge conflict가 날 수 있다.
- conflict 해결 방법은 branch 다룰 때 다뤄봤으니 그 글을 참고해보자
2022.11.03 - [Git] - #4 branch, merge, conflict
결론 : 협업 시 git push 하기 전에 git pull 을 명륜진사갈비처럼 무한으로 즐기자
'Git' 카테고리의 다른 글
#10 branch 전략 - git flow / trunk-based (1) | 2022.11.15 |
---|---|
#9 Github3 - 브랜치로 협업하기 pull request (0) | 2022.11.14 |
#7 Github1 - 내 코드 올릴 때는 git push, remote repository, git ignore (0) | 2022.11.11 |
#6 git revert, reset, restore (0) | 2022.11.10 |
#5 다양한 merge 방법 - 3-way / fast-forward / rebase / squash / branch 삭제 (1) | 2022.11.08 |
- Total
- Today
- Yesterday
- Spring Boot
- 코테
- nosql
- spring
- 자료구조
- MongoDB
- Phaser
- java
- 프로그래머스
- Stream
- db
- 알고리즘
- SpringBoot
- SQL
- 메모리
- git
- Java8
- 코딩테스트
- 빅데이터
- 운영체제
- Advanced Stream
- API
- Phaser3
- node.js
- 빅데이터 분석기사
- OS
- jpa
- DART
- 프로세스
- MySQL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |