[Git] Git & GitHub이란 무엇인가
Git이란 무엇인가?
- Version Control System
- 하나의 파일에 대한 변경사항을 모두가 다 트래킹할 수 있도록 하는 것
코드 버전 관리를 하는 이유는?
- 수정할 때 마다 파일을 새로 만들면 관리가 힘들기 때문에
- 언제든 이전 버전의 코드로 돌아 갈 수 있기 때문에
- 이력을 남기기 위해(협업이니 작업을 효율적으로 진행하기 위해서,,)
- 하나의 프로젝트로 여러명이 협업할 수 있기 때문
GitHUb이란 무엇인가?
- Git을 사용한 프로젝트들의 원격 저장소(클라우드 같은 개념)
- 개발자들의 Social Network : 깃헙에서 소통 많이 함.
Git과 GitHub의 관계
-
git이 github를 호스팅해줌
Git (local)
- 프로젝트의 버전관리를 도와주는 시스템
- 시스템 자체
- 인터넷 연결 없이도 사용 가능GitHub (remote)
- git을 이용해서 버전관리 하는 프로젝트들을 관리하게 해주는 호스팅 서비스
- 시스템을 이용하는 사이트
- 인터넷 연결 없이 사용 불가
터미널 명령어
pwd
// 현재 내가 위치하고 있는 폴더
ls
// 해당 폴더의 하위 폴더를 볼 수 있음(파일들의 경로)
ls -a
// 숨김 폴더까지 볼 수 있음
ls -al
//
cd
// 경로 변경
cd ~/Desktop
// 데스크탑으로 이동
cd ~
// 최상위 폴더로 이동(내 컴퓨터 경우엔 Users)
cd git/westagram-frontend/
// 하면 바로 여기로 이동함
mkdir git
//
git clone url복붙(레포지토리 httpurl!)
// 깃헙에서 레포지토리를 복사해오는 것
i // 문자 쓰기 시작
esc // 쓰기 종료
:wq // 저장하고 나가기
:qa // 저장하지 않고 그냥 나가기
touch lang .md // 깃에 파일 만드는 것
vi lang .md //
:qa! // 강제나가기(변경사항 없을 때)
Git 명령어
✨ 참고 : 회사에서는 보통 git init보다 git clone을 많이 할 것. 왜냐하면 새로 무언가를 만드는 것보다는 리팩토링 위주로 업무가 이루어지기 때문.
git init
// 깃 시작 : 작업하고 있는 최상위 폴더에서 사용하면 이 폴더 내에서 수정을 시작하겠다라는 의미.
git status
//깃 상태확인 : 내가 작업하고 있는 파일이 어디고, 어떤 것이 변경되고, 반영되지 않았는지 확인 할 수 있음
git add
// 장바구니 : 파일이 수정된 이력을 기록할 준비. 작업한 내용을 저장하는 것
git commit
// 계산: 파일이 수정된 이력을 기록.
git log
// 영수증 : commit한 이력 보기. 작업한 내역 확인하기
// 참고) 장바구니에 담은건 영수증에 안 나옴
git inint // 없던 프로젝트를 새로 만들어서 프로젝트하는 것
git clone // 기존 레포지터리에 존재하던 프로젝트를 이어서 할 수 있음
git remote --v // 어디로 연걸됐는지 확인할 수 있음
git push origin main(master) // 메인에 연결하는 것. 최종적으로 관리하는 곳 총괄!
// 만약 로그인이면
git push orogin login //로그인이라는 브랜치를 만들어서 올릴 것
git reset --hard 코드아이디코드아이디코드아이디 //
✨주의 : clone 다운 - cd 명령어로 다운 받은 파일로 내 위치 이동
(내 위치는 아직도 git clone을 입력한 그곳)
branch 명령어
git branch : 갖고 있는 모든 브랜치를 확인할 수 있다. 현재 브랜치를 *로 표시
git branch 브랜치이름 : 새로운 브랜치를 추가한다
git switch 브랜치이름 : 현재 브런치를 변경한다
git switch -c 브랜치이름 : 새로운 브랜치를 추가하면서 동시에 그 브랜치를 현재 브런치로 변경한다
git branch -D(브랜치명) : 지울 브랜치에 다른 브랜치로 적용되지 않은 내용의 커밋이 있을 시에는 -D 옵션으로 강제 삭제한다.
git log --all --decorate --oneline --graph : 깃 브랜치 지도를 한눈에 볼 수 있음
git merge (합칠)브랜치명 : merge할 기준브랜치로 switch
Git에서 GitHub로 push하는 순서
로그인 페이지 구현을 예로 들어보자.
1. main 브랜치에서 login branch 생성
git branch login
2. 생성된 login branch로 이동
git checkout login
3. login 코드 작업을 한다
코드 수정중 ...
4. 임시저장을 한다
git add .
5. 커밋을 한다
git commit -m "커밋 메세지를 입력하세요"
6. 커밋된 브랜치를 GitHub으로 push한다.
git push orogin login
이때, git(local)에만 있던 작업물이 github(remote)에 올라간다. 작업물이 합쳐질 수 있게 보고서를 제출해야된다. 이런이런 작업을 했습니다! 이상 없으면 메인에 붙여주세요라는 보고서를 작성한다. 그러면 PR이 확인 후 이상이 없으면 메인에 붙인다.
기타
- branch명은 보통 'feature/main'과 같은 형식으로 정함
- master로는 직접 push하면 안된다(회사에서도 다 막아놓는다) 아무거나 push하는 것을 막기 위해서 PR 작성후 관리자의 확인이 필요한 것
지금까지 내가 작업한 공간은 local,
작업한 결과물 올리는 공간은 remote,
git remote add origin URL: 원격 저장소랑 연결을 할 것 근데 올릴때마다 저 주소 쓰면 귀찮잖아 그래서 저 url을 origin(변수같은)으로 칭하겠다
- 깃 클론하면 기본적으로 마스터가 있음...클론으로 추적했으니,,
Author And Source
이 문제에 관하여([Git] Git & GitHub이란 무엇인가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@lifefm_j/Git저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)