Basic/코딩기초

[코딩기초] 개발자들의 플랫폼 'Git, Github' 알아보기

코딩공대 2022. 11. 30. 09:37
728x90

1. Git

Git은 Linux OS를 만든 리누스 토르발즈가 만든 프로그램이다. 약 26년 동안 2천만 줄이 넘는 소스 코드를 1만 명이 넘는 소프트웨어 엔지니어들과 함께 오픈 소스 방식으로 작성하며 Linux OS를 만들고 관리했다고 한다. 이에 효율적인 작업 환경을 만들고자 Git이 만들어졌다. 2005년에 Git을 출시하면서 그는 Git을 ‘지옥에서 온 문서 관리자’라고 소개했는데, Linux OS를 만들고 관리하면서 경험했던 지옥을 해결하기 위해 버전 관리, 백업, 그리고 협업과 관련된 기능들을 담아 Git을 탄생시켰다고 한다.

2. Git은

  • 파일의 변경사항 추적, 파일의 버전을 관리할 수 있게 도와준다.
  • 파일을 백업할 수 있게 해 준다.
  • 협업을 위해 파일을 공유하고 취합할 수 있게 해 준다.

3. Git과 Github의 연동

내가그린 git과 github의 상관관계 + 파트너와 협업시 진행 과정

여기서,

  • add, commit, push는 git에서 github으로 업로드하는 과정
  • fork, clone 은 파트너의 작업물을 내 컴퓨터에 다운로드하는 과정
  • pull request는 파트너에게 나의 작업물을 취합해달라고 요청하는 과정
  • merge는 작업물을 취합하는 과정

4.  Git 명령어

Git의 영역 및 상태

여기서,

  • Unmodified는 기존에 commit 했던 파일을 수정하지 않은 상태
  • Modified는 기존에 commit 했던 파일을 수정한 상태
  • Staged는 commit을 할 수 있는 상태

  - Fork

Github에 있는 다른 계정의 Remote Repository를 자신의 계정(Origin Repository)에 가지고 오는 기능이다.

  - git clone + Repository 주소

Remote Repository에 있는 파일을 작업하기 위해서 내 컴퓨터로 복사해오는 작업이다.

  - git status

내 로컬 저장소에 복사된 디렉토리의 commit 전 상태를 표시한다.
이 명령어를 통해 staging area, untracked files 목록을 확인할 수 있다.
이때, staging area에 들어간 파일은 초록색 / 들어가지 않은 파일은 빨간색으로 나타난다.

  - git add

파일을 git의 관리하에 있는 영역인 staging area로 옮겨 commit 할 수 있는 상태로 만들어준다.

  - git restore

commit 되지 않은 혹은 staged 되지 않은 Local Repository의 변경 사항을 폐기할 수 있다.

  - git commit

staging area에서 local 저장소로 옮기는 기능이며 간단한 코멘트를 달아 수정 내용을 기록할 수 있다.
여기서, git commit -m '수정 내용이나 기록할 내용'을 입력하면 더 편하게 commit 할 수 있고
git commit -am '기록할 내용' 명령어를 사용하면 add를 따로 할 필요 없이 add와 commit을 동시에 할 수 있다.

  - git reset

Local에서 commit 한 내용을 취소할 때 사용한다.
git reset -soft는 commit 하기 전인 staging area로 돌아간다.
git reset -mixed(default)는 기본값이며, add 하기 전인 work space로 돌아간다.
git reset -hard는 commit 된 파일 중에 tracked 된 파일을 work space에서 삭제한다.
git reset HEAD_'숫자'는 숫자만큼 commit 취소한다.
git reset HEAD^는 가장 최근의 commit을 취소한다.

  - git push, git push origin branch

Local에서 변경 및 commit 된 사항을 origin repositiry에 저장한다.
주의사항은 branch명을 잘 확인해서 입력해야 한다.

  - git log

현재까지 commit된 내역들을 터미널 창에서 확인할 수 있게 한다.
q를 입력하여 log내역이 나온 터미널을 종료할 수 있다.

  - Pull Request

내가 Push 한 변경 사항에 대해 파트너에게 알려준다.

  - git init

내 컴퓨터에 있는 디렉토리의 버전 관리를 위해 Git Repository로 변환하는 기능이다.

  - git remote add origin + Repository 주소

나의 Local Repository와 Remote Repository를 연결한다.

  - git remote add + 파트너 이름 ex)pair + 파트너의 Repository 주소

파트너의 Repository에 나의 Repository를 연결한다.

  - git remote -v

연결된 Remote Repository를 확인한다.

  - git pull + 파트너 이름 + branch 이름

나의 Repository에 상대방이 push 한 데이터가 있는 Repository에서 가져온다.

5. 간단한 코멘트(?!)

 : git을 배우면서 두 번째 페어와 협업했는데 첫 번째 작업했을 때보다 확실히 덜 어색할 수 있었다.

또한, 개발자에게 꼭 필요한 git의 사용법에 대해 기본적인 것만 알아봤는데 앞으로 계속 사용해야 하는 만큼 사용해가면서 익혀야겠당!!!!