2025.02.26
소프트웨어 개발 과정에서 코드, 문서, 설정 파일 등 다양한 구성 요소의 변경사항을 체계적으로 추적, 관리 하는 활동을 의미한다. 많은 사람들과 협업을 진행하다 보면 문제가 발생하는 경우가 많은데 그 때 유연하게 문제 발생 전으로 돌아갈 수 있도록 돕는다.
Git과 Github는 형상 관리 도구의 일부로 볼 수 있다. 보다 정확한 용어는 버전 관리 시스템(VCS), 소스 코드 관리(SCM)이라고 한다.
Git은 형상관리를 위한 소프트웨어 개발에서 사용되는 분산 버전 관리 시스템(Distibuted Version Controll System, DVCS)이다.
Git에는 Staging area와 Local Repository가 존재

Branch는 Git 에서 독립적으로 작업을 진행할 수 있는 분리 된 공간이다.
기본적으로 main 또는 master 브랜치가 존재하며, 새로운 기능을 개발하거나 변경 사항을 실험할 때 별도의 브랜치를 생성하여 작업 (master와 main은 같은 역할이지만 현재 main이 권장되는 이름이다)
Github는 Git 저장소를 클라우드 환경에서 호스팅 할 수 있는 플랫폼이다.
Git은 로컬에서 작동하는 도구, 파일의 변경 사항을 추적 및 기록
Github는 Git 저장소를 클라우드에 호스팅하는 플랫폼, 팀원들과 실시간으로 협업할 수 있도록 돕는다.



자신의 운영체제에 맞게 눌러서 다운로드를 하게 되면 여러 창이 뜨게 되는데 모든 페이지를 next눌러서 진행해도 무방하다.
다운로드를 완료하고 Git Bash을 찾아서 눌러서 환경 설정을 진행한다.
user의 이름과 이메일을 설정해야 github와 연결할 수 있다.

git config — global user.nave “your_name”
내가 사용할 이름을 입력하는 명령어다.
git config —global user.email “your_email”
내가 Github를 가입했을 때 기입 했던 이메일을 설정하는 명령어이다.
git config —list
설정한 나의 환경을 확인하는 명령어다.

명령어를 실행하면 이렇게 나오는데 안에 user.name, user.email이 자신이 입력한 이름과 이메일로 설정되어있는지 확인할 수 있다.
Github를 회원가입을 하고 미리 repository를 만들어놔야 Git과 연결이 가능하다.

Create repository을 누르게 되면 내 repository를 만들 수 있게 된다.

repository를 만들기 위해서는 Repository name을 입력을 해야 한다.
공개 범위는 Public으로 설정해야 다른 사람들도 나의 코드를 볼 수 있게 된다.
아래로 내리면 Create repository 버튼이 있고 누르면 생성된다.

생성을 하면 많은 git 명령어들을 볼 수 있다.
명령어들에 대해 간단하게 설명하면 이 부분은 repository에 처음 코드를 등록할 때 사용하는 명령어들이다.
내 Repository에 다른 사람들이 마음대로 코드를 올릴 수 없도록 토큰을 발급한다. 토큰은 비밀번호대신 사용하는 고유한 문자열이다.
프로필 -> settings -> Developer settings -> Personal access tokens -> Tokens(classic) -> Generate new token -> Generate new token(classic)

토큰의 이름과 기한을 설정하고 아래 선택버튼을 다 선택한 뒤 Generate token을 누르면 발급 받을 수 있다.
이 토큰은 한번만 보여주기 때문에 안전한 곳에 저장을 해놓는다.

처음 Git Bash를 열게 되면 아무런 설정이 되어있지 않는다.

cd 명령어를 사용해서 내가 업로드 하려는 파일까지 접근한다.
cd .. 명령어를 사용하면 이전 디렉토리로 이동한다.
현재 바탕화면에 파일을 설정했지만 C드라이브에 소스 파일을 만드는 것이 좋다.

git init : 현재 디렉토리 git 저장소로 초기화
git status : 현재 작업 디렉토리 상태 확인
git add . : 모든 파일을 staging area에 추가
-> git add 특정 파일 명 : 특정 파일만 staging area에 추가
git branch -M main : 브랜치를 main으로 변경
git commit -m "메세지" : staging area에서 local area로 이동, "커밋하는 내용을 작성"
git remote add origin "github주소" : github의 remote repository 주소랑 연결
git push -u origin main : local area에서 remote repository로 업로드
git pull : remote repository의 변경 사항을 가져와 병합
git clone "github주소": remote repository를 복제하여 로컬에 다운로드
git init 실행 시 대상 폴더 내부에 .git 파일 생성된다.
.git 파일이 보이지 않는 경우

숨긴 항목을 해제한다.
.git 파일 안에는 Staging area와 Local Repository이 생성 된다.
git add 명령어로 staging area에 임시 저장하고 git commit 명령어로 local repository에 저장한다.
git remote 명령어로 나의 github 주소랑 연결하여 github 원격 저장소에 저장한다.

staging area에 넣기 전 git status 명령어를 입력해보면 수정이나 생성하여 staging 영역에 들어가 있지 않은 파일을 확인할 수 있다.
git add remind.txt 명령어를 사용하여 staging 영역에 넣으면 아무런 반응이 없이 표현된다.
-> 만약 그전 상태로 돌리고 싶다면 git rm 명령어를 사용한다.

git commit -m "메세지"를 넣어서 local 영역에 넣고 git push -u origin main 명령어로 github에 저장한다.

다른 사람들과 협업을 하고 자신의 로컬 저장소에서 모든 코드를 저장하고 관리하기 어렵기 때문에 Git과 Github를 많이 사용한다. 하지만 Git과 Github를 처음 사용하는 입장으로써 명령어마다 어떤 방식으로 이루어지는 경우를 알기 어려웠다. Git의 구조를 알고 명령어를 배우다 보니 이해할 수 있었다.