Github
2022. 3. 3. 11:23ㆍStudy/etc
Github?
깃허브는 분산 버전 관리 툴인 깃저장소 호스팅을 지원하는 웹 서비스이다. 루비 온 레일스로 작성되었다. GitHub는 영리적인 서비스와 오픈소스를 위한 무상 서비스를 모두 제공한다. 2009년의 Git 사용자 조사에 따르면 GitHub는 가장 인기있는 Git 저장소 호스팅 서비스이다.
1. Github 가입, 프로젝트 생성하기
1-1. https://github.com/ 에 접속하여 회원가입 후 로그인한다
1-2. 사이트 좌측 상단에 있는 [New repository] 를 클릭
1-3. Repository name 칸에 저장소의 이름을 적고, Description 칸에 저장소에 대한 간략한 설명을 적음
public : 원격 저장소에 올라갈 소스가 무료(오픈소스)
private : 원격 저장소에 올라갈 소스가 유료
옵션을 public으로 선택한 후 [Create repository] 버튼 클릭
1-4. 생성하면 remote주소를 알려준다.
echo "# project1" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/aluvy/project1.git
git push -u origin main
2. Github연결 후 Push하기
2-1. git remote
이제 다시 명령 프롬프트를 켜서 프로젝트 폴더로 갑니다. git remote가 바로 원격 저장소를 관리할 수 있는 명령어입니다. git remote add origin https://github.com/[이름]/gitExample로 origin이라는 이름으로 원격 저장소 주소를 등록합니다. 이제부터 origin이라는 이름을 사용하면 방금 전에 우리가 만든 저장소에 접속할 수 있습니다. (굳이 origin이라고 안 하고 다른 이름으로 해도 됩니다.) 만약 origin이라는 원격 저장소를 지우고 싶다면 git remote remove origin하면 됩니다.
$ git remote add origin https://github.com/aluvy/project1.git
2-2. 연결상태 확인
$ git remote -v
$ git status => 현재 로컬폴더와 git과의 싱크 상태를 체크
$ git add . => 로컬폴더와 git repository 간에 변경된 파일들을 모두 Tracking 한다
$ git commit -m "master-인덱스페이지 추가" => 인식할 수 있는 commit을 달아준다
2-3. git push
이제 원격 저장소와도 연결했으니 원격 저장소에 commit을 저장해봅시다. git push origin master 해보세요. origin은 원격 저장소 이름이고, master은 현재 사용하는 컴퓨터의 브랜치 이름입니다. 전 강좌에 on branch master 이라는 메세지를 보셨죠? 브랜치는 조금 있다 배우니까 지금은 master가 현재 commit이 저장된 곳이라고만 알아두세요.
로그인 하라고 뜰텐데 아까 만든 깃허브 계정으로 로그인 하면 push가 완료됩니다.
$ git push origin master
$ git push origin master => 실제로 Git에 PUSH (또는 $ git push origin +master)
master = branch이름
Github에 계속 업데이트 하는법
1. 추가할 파일 더하기
git add .
2. 히스토리 만들기
git commit -m "first commit"
3. Github로 올리기
git push origin master
*내 컴퓨터에 소스코드를 업데이트를 하고 싶으면 이 세개의 스텝만 계속 반복하면 됨.
깃허브로 팀 프로젝트 하는 방법
깃허브에 있는 소스파일을 pc로 다운 받을때... (clone)
깃허브의 code 버튼을 클릭하고 깃허브 주소를 복사한다
https://github.com/aluvy/project1.git
명령프롬프트를 열고 해당 프로젝트를 저장할 폴더로 이동한다
c:\bini>git clone 깃허브주소 (폴더이름)
ex) c:\bini>git clone https://github.com/binijjang/sample1.git binijjang
git clone https://github.com/aluvy/project1.git
프로젝트가 클론 된 경로로 이동
c:\bini>cd binijjang
- c:\bini\binijjang>code .
- vscode로 이동하고 해당 프로젝트 폴더가 열리고 clone 된 파일들을 볼 수 있다
- index.html 파일을 수정한다
- 파일을 깃허브에 push 한다
-vscode에서 터미널을 연다. 터미널 창의 오른쪽 상단에 +옆에 팝업메뉴를 클릭하고 Git bash를 선택한다
$ git status
$ git add .
$ git commit -m "bini first commit"
$ git push origin master (*주의... 이리하면.. 혼난다~~ 겁니~~)
Git에서 내(sub) 브렌치(branch)만들기
*vscode 왼쪽 아래에 보면 bini_branch로 바뀐걸 알 수 있다. 여기를 클릭하면 해당 branch로 이동할 수 있다
$ git checkout -b '브렌치이름' (해당 브렌치를 생성하고 그 브렌치로 이동)
$ git checkout -b 'sub1_branch' (새로운 branch 를 생성한다 )
$ git push origin sub1_branch (새로운 branch로 깃허브에 push한다 )
- 깃허브에 가보면
- 상단에 bini_branch had recent pushes less than a minute ago 메시지를 볼 수 있다
- 메시지 우측에 compare & pull request 버튼을 클릭한다
- Open a pull request 에서 요청글을 입력하고 하단에 요청버튼을 클릭한다
- 상단 탭메뉴에 Pull requests 가 생성된다 (마스터에 갈수있게 허락을 요청합니다~~~)
- 해당 프로젝트에 master branch로 이동한다(마스터)
- 상단탭 메뉴에 Pull requests 를 클릭한다
- 요청한 코드가 OK이면 하단의 Merge pull request 버튼을 클릭한다 (해당 코드가 마스터의 코드로 합쳐진다)
- Confirm merge 버튼을 누르면 해당 코드가 마스터의 코드로 합쳐진다
- 상단 탭메뉴 <code> 로 이동하면 bini first commit 으로 바뀐걸 볼 수 있다
- 마스터에서의 동기화(고참!!)
$ git add . (작업한 내용을 add)
$ git commit -m "second commit"
$ git pull origin master (최신 내용을 가져온 후)
$ git push origin master (작업한 내용을 github에 올린다)
git pull
git pull은 다른 사람이 PR을 통해서 코드를 업데이트했거나, 아니면 Github를 통해서 commit했을 때(Github를 통해서도 간단한 commit을 할 수 있습니다) 그 내용을 클라이언트로 내려받는 명령어입니다. git pull origin master 하면 origin의 내용이 master로 복사됩니다.
git pull을 할 때는 깃허브의 유저이름과 비밀번호를 쳐야하는 경우가 많습니다. 매번 비밀번호를 치기 귀찮다면 git config --global credential.helper 'store --file 경로'하면 됩니다. 해당 경로에 비밀번호가 저장된 파일이 생성됩니다. 단, 파일로 저장되는만큼 보안에 취약하기 때문에 주의해야 합니다.
가져올 폴더 생성
$ git init
$ git remote add origin https://github.com/가져올git.git
$ git pull origin master => 원격저장소에 파일을 로컬저장소로 가져온다
'Study > etc' 카테고리의 다른 글
디자인패턴 : MVC (0) | 2022.10.14 |
---|---|
PWA와 하이브리드앱 (4) | 2022.04.27 |
Git (0) | 2022.03.02 |
Service worker Navigation PreLoad (0) | 2022.01.21 |
SNS API 연동 (0) | 2021.12.22 |