Git, GitHub 사용법

구도·2025년 1월 3일
1

Other

목록 보기
2/3
post-thumbnail


학교 다닐 때 Git & GitHub 발표하려고 만든 PPT가 있어서 참고해서 쓰도록 하겠다.

🚩 Git, GitHub 사용법

📌 Git의 어원


Git이란 영국에서 사용되는 속어로 '고집이 센 사람'을 의미하며
이는 Git 프로젝트를 진행한 리누스 토르발스의 성격에서 비롯된 것으로 알 수 있다.


"나는 이기적인 새끼라서 내 모든 프로젝트는 나와 관련된 것으로 짓는다.
첫 번째가 'Linux'고 이제는 'Git'이다."

"별을 보면서 저기 가보고 싶다고 얘기하는 사람들도 많지만 저는 땅을 바라봅니다"
"그리고 제 바로 앞에 있는 웅덩이를 메꾸려고 합니다. 빠지지 않게 말입니다."
"니 코드는 개쓰레기다"(자주 하는 말)

대단한 사람,, 이만 각설하고 본론으로 넘어가자



📌 Git과 GitHub이란

Git이란 개인 컴퓨터에서 돌아가는 버전 관리 시스템(VCS)이다.
분산 버전 관리이기 때문에 중앙 저장소가 삭제되어도 원상 복구가 가능함
또한 인터넷 연결 없이도 개발을 진행할 수 있으며, 개인이 아닌 팀 프로젝트에서도 파일들을 쉽게 가시화, 최신화 할 수 있다.

GitHub이란 Github이라 불리는 회사에서 서비스 하고 있는 서버에 올라간 Git이다.
이를 사용을 위해서는 계정이 필요하며, 인터넷 연결 또한 필요로 한다.
GitHub는 Git 소프트웨어를 지원하는 일종의 클라우드 서비스이다.

엄밀히 따져서 말하자면 Git != Github인 셈이다.


GitHub 말고도 GitLab이라는 저장소도 있긴 하다.
GitHub와 GitLab의 가장 큰 차이점은 Devops 요소에 있다.
GitLab은 지속적 통합/지속적 전달(CI/CD)와 Devops Workflow를 내장했다.
반면, GitHub를 사용하면 사용자가 원하는 CI/CD 도구를 직접 통합해야 한다.
GitHub 사용자는 보통 젠킨스, CircleCI, TravisCI 같은 써드파티 프로그램을 사용한다.


❓ 그래서 버전 관리 시스템(VCS)이 뭔데?

버전 관리 시스템이란 파일의 변화를 시간에 따라 버전별로 기록한다.
나중에 특정 시점의 버전을 다시 꺼낼 수 있는 시스템이다.

그런 일들 많이 있었지 않나?
보고서를 작성한다던가 ppt를 만들다던가
코딩을 해서 코드를 짠다던가

수정 사항이 생기면 제목 끝에 찐막, 찐찐막, 찐찐찐막으로 붙히거나 아예 덮어버리거나(위험!!!)

이런 파일의 다양한 시점에 따라 관리할 수 있게 하는 시스템인 것이다.


버전 관리의 특징

  • 각 파일이나 프로젝트를 이전 상태로 되돌릴 수 있다.
  • 시간에 따라 수정 내용을 비교할 수 있다.
  • 누가 언제 문제를 일으켰는지 추적이 가능하다.
되도록이면 롤백을 하는 상황에 도달하지 않도록 하자..

그러니까 버전 관리란 누가, 어떻게 변경했는지 변경 내역을 기억하며 필요하다면 특정 시점의 버전으로 되돌리며 여러 명이 협업하는 과정에서 코드를 쉽게 나누고 합치며 개발하는 것이다.

협업에 중요하다 이말이다~!~~!!


버전 관리를 하지 않으면 이런 사태가 초래할 수 있다.

되도록이면 쓰자



📌 Git 다운로드

우선 Git은 모든 명령을 로컬에서 진행한다.
또한 데이터를 추가만 할뿐, 삭제나 변경은 하지 않는다.

👉 Git Download

먼저 Git을 운영체제에 맞는 버전으로 다운로드 한다.

Install 클릭

경로 같이 설치할 컴포넌트 선택
시작 메뉴에 폴더 생성 문서 편집기 설정

문서 편집기 기본 설정은 Vim으로 되어있을텐데 vs로 바꿔도 상관은 없다
취향에 따라 선택하도록 하자.


initial branch 이름 설정환경변수 설정
SSH SSH 라이브러리 선택
줄 바꿈 설정터미널 설정



git pull 기본 동작 설정 Git 인증 설정
기타 옵션 설치 완료

환경변수와 문서 편집기, SSH 정도만 잘 보고 Next 만 눌러도 무방하다 본다.



📌 Git 사용법

Git 설치가 완료되었다면 실행 후 Git에서 관리할 폴더를 만든다.
필자는 D드라이브 안에 'git' 이라는 이름의 폴더로 만들었지만
CLI 환경에서도 mkdir 명령어를 통해 파일을 생성할 수 있다.

mkdir git // git이라는 폴더 생성

cd 명령어로 해당 폴더로 이동 후

git init // 로컬 저장소 초기화

폴더가 초기화 되었다면 내가 누구인지 Git에게 똑똑히 알려주자.

git config --global user.name "사용자명"
git config --global user.email "사용자 이메일명:

확실히 각인시켰는지 궁금하다면 해당 명령어를 수행하면 된다.

git config --list

이제 Git을 사용할 준비가 완료된 것이다. 🤩

아직 로컬 저장소에 아무런 파일이 없으니 README.md를 만들자

 echo "This is README.md for Github" >> README.md  // README.md 파일 생성
 ls // 디렉터리 내 파일 조회
 cat README.md // 파일 내용 출력

echo 명령어로 READMD.md를 만들었고 내용은 This is README.md for Github라 적어뒀다.
생성되었는지 ls 명령어로 확인 후 cat 명령어까지 사용하여 내용까지 확인해보자 !
잘 만들어졌구만 🤭


이제 이 저장소에서 파일을 가지고 지지고 볶고 놀아볼건데
그 전에, addcommit에 대해 좀 알아보고 넘어갑시다


❓ Git add와 commit


  • Git add와 commit의 개념
    git 에서 파일의 변경 사항을 저장소에 반영하는 과정은 다음과 같다.
    우선 아래 3가지 개념을 알아야 한다.

    Working Directory: 파일을 수정하는 작업 공간입니다.
    Index (Staging Area): commit 할 파일들을 준비하는 공간
    HEAD: 브랜치의 최신 커밋을 가리키는 포인터

    git add
    변화를 기록하는 준비단계입니다. 작업 디렉토리(Working Directory)에서 변경된 파일을
    스테이징 영역(Staging Area)에 추가하는 명령어입니다.
    staging 한다, stage에 올려둔다 라고 말하기도 합니다.

    git commit
    특정 순간의 버전을 스냅샷으로 확정하여 남깁니다.
    HEAD 는 최신 커밋을 가리키는 포인터 이므로 HEAD 가 해당 커밋을 가리킵니다.

작업 폴더 내에 있는 파일들을 git add를 통해 스테이징 영역에 추가하고
Repository에 git commit으로 커밋한다.
특정 순간의 버전을 남기니까 안정성을 보장해준다!!


  • add와 commit의 명령어
    git add .
    git add 파일명

    git commit
    git commit -m "커밋메시지"


다시 본론으로 넘어가서,

git add README.md

아까 만들어둔 READMD.md 파일을 add한다.

warning: in the working copy of '파일명', LF will be replaced by CRLF the next time Git touches it
위와 같은 에러 메세지를 접할 수 있다
이는 Windows와 Mac과 같이 운영체제에 따라 줄 바꿈을 나타내는 문자열이 다르댄다
그래서 git이 처리를 할 때 지 알아서 변환시키며 작업하는데 혼란이 와서 물어보는것.


  • 줄 바꿈(끝 처리) 용어
    CR(Carriage-Return)
    LF(Line-Feed)
    CRLF (Carriage-Return+Line-Feed)

    맥,리눅스에서는 LF(Line Feed)로 줄바꿈(끝처리)을 하고,
    윈도우에서는 CR(Carriage Return) + LF(Line Feed), 즉 CRLF로 줄바꿈(끝처리)를 한다.

add하는데에 문제는 크게 없지만 해결 방법이 있다.


💡 해결 방법

  • Windows

    git config --global core.autocrlf true
    (해당 프로젝트에만 적용하고싶다면 '--global' 은 빼고 입력)

  • Mac, Linux

    git config --global core.autocrlf input
    (해당 프로젝트에만 적용하고싶다면 '--global' 은 빼고 입력)



git commit -m "Initial Commit !"

저장소에 처음 커밋하는 것이니 Initial Commit이라는 커밋 메세지를 옵션으로 주고 처리했다.
앞으로 Commit Message를 잘 살펴보아야 하니 얼렁뚱땅 쓰진 말자.
헷갈린다

-m "커밋 메세지" 옵션을 안주고 git commit만 하게 된다면 문서 편집기에서 커밋 메세지를 넣게 될 것이다.


커밋까지 잘 되었는지 확인하고 싶다면 git log 명령어로 확인해보자
다른 프로젝트 로그가 많아서 가렸다 ㅎㅎ



이제 GitHub까지 연동 시켜보겠음



📌 GitHub 사용법

우선 GitHub 계정부터 만들기로 한다

👉 GitHub 계정 생성


로그인 후 Repository를 하나 만들자 !

Repo 이름과 설명을 간단하게 쓰고 Public, Private도 골라준다.
.gitignore 이라는 파일 생성 여부도 있는데 이건 추후에 설명하도록 하겠음
한 마디로 github에 올리고 싶지 않은 파일을 명시하는 것이라 생각하면 편하겠다.

.gitignore 을 진짜 잘 관리해야하는게 로컬 환경의 정보나 빌드 정보 등을 제외 한다던가
만약 API키가 들어있는 파일까지 올려버리면 다른 누군가가 사용해서 비용이 어마무시하게 나올수도..

다음으로 넘어가자


git branch -M master  // 브랜치 이름 정하기
git remote add origin "Repository URL"  // 로컬 브랜치를 GitHub 리모트 브랜치에 추가

git branch로 브랜치 이름을 정하고 원격 저장소와 연결했다.

브랜치는 또 뭔가요..

❓Branch

  • Branch의 개념
    브랜치(Branch)란 나뭇가지라는 의미로
    git에서는 독립적으로 어떤 작업을 진행하기 위한 개념이다.

    주로 여러명이 동시에 작업할 때, 다른 사람에게 영향을 주거나 받지 않기 위해
    팀 프로젝트에서 많이 활용되고 있다.

개발자들은 각자 맡은 역할의 기능을 구현하면서 작업단위로 업무가 진행된다.
이때 서로에게 영향을 주지 않고 내용을 모두 기록하기 위해 만들어진 대책이다.

그냥 여러 갈래로 뻗어있는 나뭇가지라 생각하면 편할듯 하다.



브랜치까지 만들고 GitHub과 연동했다면 해당 명령어로 push하자

git push origin master

master라는 이름으로 만든 브랜치에 아까 commit 했었던 README.md를 push한다.


push 후 이렇게 인증하라는 팝업 창이 뜬다면 성공 !!


Github에서 만든 Repo에 들어가보면 README.md 파일이 잘 올라간 것을 볼 수 있다 !
이제 Git을 통해 버전관리를 할 수 있을것이다 ㅎ ㅎ

이렇게 Git과 GitHub 사용법, 연동하는법을 알아봤다.

다음으로는 Git 명령어 모음으로 돌아오겠삼 🫡

profile
☕️ ˳˚*

0개의 댓글