Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 사피
- 7기
- SSAFY
- Java
- 구글 로그인 후 redirect
- 줄바꿈
- 구글 로그인 후 js
- System
- Word Wrap
- 삼성청년소프트웨어아카데미
- 자동으로 줄내리기
- /js/app/index.js
- 싸피
- System.out.println
- http://localhost:8080/js/app/index.js
- 줄변경
- 구글 로그인 후 경로
- sysout자동입력
- 중도퇴소
- cannot determine url for
- 이클립스
- 회고
- sysout
- 특화프로젝트
- 취업퇴소
- Cannot determine URI for
Archives
- Today
- Total
IT탐험
서버 저장소(GitHub, remote, push, clone, pull, fetch, merge) 본문
- 서버 저장소를 원격(remote) 저장소라고도 하며 로컬 저장소의 코드를 서버에 안전하게 보관할 수 있고 다른 사람들과 공유하고 협업하여 개발을 진행할 수 있음
- 개발하려는 소프트웨어 품질이 높아지고 규모도 점점 커지고 있어 협업하여 개발하는 것이 필수적인 상황이 되었고, 협업 프로그램이 너무나도 중요해짐
- 원격 저장소를 사용하면 사무실에서 개발 중인 코드를 서버에 저장하고, 집 컴퓨터에 동기화하여 개발을 연속적으로 진행할 수 있음
- 독립적으로 깃 서버를 직접 운영하여 사용할 수 있지만 365일 안정적인 서버를 운영하는것은 어려움이 따르므로 Github, Gitlab 등 전문적인 깃 호스팅 서비스를 이용함
- 서버와 통신하려면 프로토콜을 사용해야 하는데 깃은 기본적으로 Local, HTTP, SSH, Git 네 종류의 전송 방식을 지원함
- Local : 로컬 컴퓨터에 원격 저장소를 생성하는 것을 의미하며 자신의 컴퓨터를 NFS(Network File System) 등 서버로 이용할 때 편리함
- 간단하게 원격 서버를 구축할 수 있을 뿐만 아니라 빠르게 동작하지만 모든 자료가 자신의 컴퓨터에 집중되는 위험이 있음
- 로컬 저장소를 서버로 이용할 때 폴더 경로만 입력하면 됨
-
git remote add 원격저장소별칭 폴더경로
-
- HTTP : 서버에 접속하려면 로그인 절차를 거쳐야 하는데 HTTP는 기존 아이디와 비밀번호만으로 접속자를 인증하여 처리할 수 있음
- 익명으로도 처리할 수 있으며 계정을 이용하여 처리할 수도 있음
- SSH : 깃에서 권장하는 프로토콜로, 높은 수준의 보안 통신으로 처리하기 때문에 깃 서버를 좀 더 안전하게 운영할 수 있음
- SSH(Secure Shell)는 원격지 호스트 컴퓨터에 접속하기 위해 사용되는 인터넷 프로토콜로써 통신이 노출되도 이해할 수 없는 암호화된 문자로 보임
- 'ssh://계정@주소' : SSH 프로토콜을 사용하는 방법으로써 계정을 생략하여 현재 로그인된 사용자로 대체할 수 있음
- SSH 접속을 할 때는 인증서를 만들어 사용하는데 별도의 회원 로그인 절차를 거치지 않아도 됨
- 인증서는 공개키와 개인키로 구분하는데 공개키는 서버에 등록하며 ,개인키는로컬에 저장함
- SSH는 HTTP와 달리 익명으로 접속할 수 없어 기업에서 깃 서버를 운영할 때 사용하는 프로토콜임
- Git : 깃의 데몬 서비스를 위한 전용 프로토콜 방식으로써 SSH와 유사하지만 인증 시스템이 없어 보안에 취약할 수 있기 때문에 잘 사용하지 않음
- Local : 로컬 컴퓨터에 원격 저장소를 생성하는 것을 의미하며 자신의 컴퓨터를 NFS(Network File System) 등 서버로 이용할 때 편리함
- remote 명령어를 사용하면 현재 연결된 원격 저장소 목록을 확인할 수 있고 등록과 취소 등의 작업을 할 수 있음
- 'git remote' : 연결된 원격 저장소의 이름(별칭)을 출력함
- 'git remote -v' : 원격 저장소의 별칭 이름과 URL을 출력함
- 별칭 : 긴 문자열로 이루어진 원격 서버의 주소를 별칭으로 만들어 사용할 수 있는데 대표적으로 사용하는 별칭으로서 origin이 있음
- 'git remote add 원격저장소별칭 원격저장소URL' : 원격 저장소와 연결함
- push : 서버로 전송하는 동작을 의미함
- fetch : 서버에서 가지고 오는 동작을 의미함
- 'git remote rename 변경전 변경후' : 등록한 서버의 별칭 이름을 변경함
- 'git remote show 원격저장소별칭' : 원격 저장소의 상세한 정보를 출력함
- 'git push 원격저장소별칭 브랜치이름' : 커밋된 파일들을 원격 저장소의 브랜치로 업로드함
- 처음 푸시하면 서버에 새로운 master 브랜치를 생성하고 master 브랜치로 업로드함
- 새로운 로컬 저장소를 생성하고 원격 저장소를 연결하려면 아래의 순서를 따름
- 새 로컬 저장소를 생성하고 초기화하고 저장소의 소개 페이지 파일을 생성, 추적 등록, 커밋함
-
mkdir folder cd folder git init echo "# folder presentation" >> README.md git add README.md git commit -m "first commit"
-
- 원격 저장소로 연결함
-
git remote add 원격저장소별칭 원격저장소URL
-
- 원격 저장소의 브랜치로 커밋된 파일들을 업로드함
-
git push 원격저장소별칭 브랜치이름
-
- 새 로컬 저장소를 생성하고 초기화하고 저장소의 소개 페이지 파일을 생성, 추적 등록, 커밋함
- clone : 원격 저장소를 로컬 컴퓨터로 복제함
- 원격 접속에 필요한 추가 설정을 자동으로 수행하고 모든 커밋된 코드 이력들을 한 번에 내려받음
-
mkdir GitExercise_clone cd GitExercise_clone git clone 원격저장소URL .
- pull : 원격 저장소의 최신 커밋 정보를 내려받음
-
git pull
- 내려받은 최신 커밋 정보는 원격 저장소를 위한 전용 임시 브랜치에 저장하고 현재 브랜치와 자동 병합 처리함
-
- fetch : 원격 저장소의 커밋 정보를 내려받음
-
git fetch 원격저장소URL
- 내려받은 커밋 정보는 원격 저장소를 위한 전용 임시 브랜치에 저장하고 현재 브랜치와 자동 병합하지 않음
- 여러 개발자와 협업으로 코드 작성시 pull 을 사용한 자동 병합에서 충돌이 발생할 때 fetch 방식을 사용함
- fetch 명령으로 내려받은 정보를 merge 명령으로 병합함
-
git merge 원격저장소별칭/브랜치이름 ex) git merge origin/master
-
-
- 원격 저장소에 푸시하려면 자신의 로컬 저장소가 원격 저장소의 커밋보다 최신이어야 함
- 동료가 내 저장소보다 먼저 커밋하여 서버를 갱신했다면 내 커밋은 서버보다 최신의 상태가 아니므로 깃은 푸시 동작을 거부함
- 푸시 동작이 거부되면 pull 또는 petch 작업으로 자신의 로컬 저장소를 갱신한 후 다시 푸시해야함
'공부내용정리 > Git' 카테고리의 다른 글
복귀(reset, revert) (0) | 2021.12.28 |
---|---|
병합과 충돌(merge, rebase) (0) | 2021.12.27 |
스태시(stash) (0) | 2021.12.27 |
브랜치(branch, checkout) (0) | 2021.12.26 |
Git의 기초(init, add, .gitignore, clone, commit) (0) | 2021.12.25 |
Comments