분류 Git

Git 버전 관리에 대한 초보자 가이드

컨텐츠 정보

  • 조회 441 (작성일 )

본문

Git은 개발자가 전 세계에서 사용하는 버전 제어 시스템입니다. 다양한 버전의 코드를 추적하고 다른 개발자와 공동 작업하는 데 도움이 됩니다.


시간이 지남에 따라 프로젝트에서 작업하는 경우 변경 내용, 변경 내용 및 변경 시기를 추적 할 수 있습니다. 코드에 버그가 생기면 점점 더 중요해집니다! 힘내가 당신을 도울 수 있습니다.


그러나 Git은 처음 학습을 시작할 때 약간 무섭고 혼란스러울 수 있으므로 이 기사에서는 인간이 이해할 수 있는 방식으로 Git을 소개합니다. 리포지토리, 커밋, 브랜치 등과 같은 주제를 다룰 것이므로 시작하겠습니다!


이 기사에서 다룰 내용은 다음과 같습니다.


Git는 무엇입니까? 


Git은 컴퓨터에 다운로드하는 버전 제어 시스템입니다. 코딩 프로젝트에서 다른 개발자와 공동 작업하거나 자신의 프로젝트에서 작업하려면 Git을 사용해야 합니다.


컴퓨터에 이미 Git이 설치되어 있는지 확인하려면 터미널에 git --version 명령을 입력하면 됩니다.


이미 Git이 설치되어있는 경우 사용 중인 버전이 표시됩니다. Git이 설치되어 있지 않은 경우 Git 웹 사이트를 방문하여 다운로드 지침에 따라 운영 체제에 맞는 올바른 버전을 쉽게 설치할 수 있습니다.


GitHub 란 무엇입니까? 


GitHub는 어딘가 (또는 클라우드)의 원격 서버에서 Git 프로젝트를 호스팅 할 수 있는 제품입니다.


GitHub가 Git이 아님을 기억하는 것이 중요합니다. GitHub는 단지 호스팅 서비스입니다. Bitbucket 및 GitLab과 같이 GitHub와 동일한 작업을 수행하는 호스팅 서비스를 제공하는 다른 회사가 있습니다.


1_JL0fpMQTlDNbyQ5GlLdA_g.png 

GitHub와 Git의 차이점


Git을 시작하는 방법 


터미널 대 GUI


터미널에 명령을 입력하여 Git을 사용하거나 Sourcetree 또는 GitKraken과 같은 그래픽 사용자 인터페이스 (GUI)를 사용할 수 있습니다.


터미널을 선택하면 필요한 Git 명령을 찾아야 합니다.


운 좋게도 이것을 외울 필요는 없습니다. 가장 자주 사용하는 몇 가지 명령을 제외하고 나머지는 필요할 때마다 조회 할 수 있습니다 (이것은 대부분의 개발자, 심지어 수십 년의 경험이 있는 사용자도 수행합니다). Git은 웹 사이트에서 심층적인 문서를 제공합니다.


GUI를 사용하도록 선택하면 수행해야 하는 다양한 작업이 보다 시각적인 방식으로 표시됩니다.


터미널을 사용하든 GUI를 사용하든 상관없이 자신 있게 사용하려면 Git 작동 방식의 기본 사항을 이해해야 합니다.


이 기사의 나머지 부분에서는 터미널에서 Git을 사용하는 예제를 공유 할 것입니다. 그러나 GUI를 사용하는 경우 공유하는 단계는 매우 유사합니다.


Git에서 프로젝트 폴더를 준비하는 방법 


Git을 사용하려면 버전 제어를 원하는 프로젝트가 있어야 합니다. 이것은 새 프로젝트이거나 기존 프로젝트 일 수 있습니다.


새 프로젝트 인 경우 새 프로젝트 폴더를 만든 다음 (힌트 : mkdir 명령을 사용할 수 있음) 터미널에서 해당 프로젝트 폴더로 이동해야 합니다.


기존 프로젝트를 선택하려면 터미널에서 해당 프로젝트 폴더로 이동하면 됩니다.


이 예에서는 novel이라는 새 프로젝트 폴더를 만듭니다.


1_GwzrUZNrMWv_MfZaoudhIg.png 

프로젝트 폴더 만들기


Git 리포지토리를 만드는 방법 


프로젝트 폴더에 들어가면 Git 사용을 시작하려면 git init 명령을 사용하여 저장소를 생성 (또는 초기화)해야 합니다.


터미널에 명령을 입력하고 Enter 키를 눌러 명령을 실행하면 별다른 일이 발생하지 않은 것처럼 보일 것입니다. 하지만 속지 마세요. Git은 때때로 은밀할 수 있으며 이면에서 많은 작업을 수행합니다.


Git이이면에서 무엇을 했는지 확인하려면 숨겨진 파일을 확인해야 합니다. 파일 시스템에서 프로젝트 폴더를 열어야 합니다. 그런 다음 Mac을 사용하는 경우 Command + Shift + Dot을 선택하여 파일 시스템의 숨겨진 파일을 볼 수 있습니다. Windows OS를 사용하는 경우 파일 시스템에서 숨겨진 파일을 보기 위해 보기 설정을 변경할 수 있습니다.


터미널에서 숨겨진 파일을 보려면 ls -a 명령을 사용할 수 있습니다.


이제 우리가 봐야 할 것은 프로젝트 폴더 안에 있는 .git 폴더입니다. 이것은 일반적으로 우리 저장소를 나타내는 것입니다.


1_fUAS61mZR44MwNeWRpnm2w.png 

저장소 만들기


Git 리포지토리란? 


저장소는 프로젝트 폴더 내의 .git 폴더입니다. 프로젝트의 파일에 대한 모든 변경 사항을 추적하고 시간 경과에 따른 기록을 기록합니다.


컴퓨터에 있는 저장소를 로컬 저장소라고 합니다.


앞서 GitHub, GitLab 및 Bitbucket과 같은 호스팅 서비스에 대해 언급했습니다. 로컬 저장소를 이러한 서비스 중 하나로 푸시 (즉, 업로드)하면 클라우드의 이러한 서비스에 상주하는 저장소를 원격 저장소라고 합니다.


다른 사람과 협업 할 수 있을 뿐만 아니라 랩톱이나 컴퓨터에 문제가 발생할 경우 프로젝트를 백업하기 위해 원격 저장소를 사용하는 것이 중요합니다.


Git을 사용하여 다른 개발자와 협업하는 방법 


다른 개발자가 우리 프로젝트에서 우리와 공동 작업을 하려는 경우 컴퓨터에 업로드 한 호스팅 서비스에서 원격 저장소를 복제 (또는 다운로드) 할 수 있습니다.


이를 통해 컴퓨터에서도 프로젝트를 가질 수 있습니다. 그런 다음 컴퓨터에 있는 프로젝트를 로컬 저장소라고도 합니다.


여러 개발자가 있는 프로젝트에서 각 개발자는 컴퓨터에 로컬 저장소가 있습니다. 그리고 그들이 모두 기여하는 하나의 원격 저장소가 있으며 그들은 그것을 사용하여 작업을 공유합니다.


1_BdQ8MuiohcSVp20163pEig.png 

원격 저장소 및 로컬 저장소


Git은 변경 사항을 어떻게 추적합니까? 


프로젝트의 다른 버전을 Git에 저장하기 위해 커밋을 수행합니다.


Git Commit이란 무엇입니까? 


커밋은 프로젝트의 버전입니다. 프로젝트의 독립 실행형 버전을 나타내며 해당 버전의 일부인 모든 파일 및 폴더에 대한 참조가 있습니다.


Git에서 커밋을 어떻게 만드나요? 


커밋을 만드는 방법을 이해하려면 Git 내부의 세 가지 다른 공간 (작업 디렉토리, 스테이징 영역, 커밋 내역)에 대해 배워야 합니다.


작업 디렉토리는 기본적으로 프로젝트 폴더의 내용으로 표시됩니다 (힌트 : 디렉토리는 폴더와 동일합니다). 프로젝트에서 파일을 추가, 편집 및 삭제할 수 있는 일종의 작업대와 같습니다.


스테이징 영역과 커밋 내역은 리포지토리의 일부입니다.


준비 영역은 대략적인 초안 공간과 비슷합니다. 다음 커밋 (프로젝트 버전)에 포함 할 항목을 선택하기 위해 업데이트 된 버전의 파일을 추가하거나 파일을 제거 할 수 있습니다. .git 폴더에서 스테이징 영역은 index라는 파일로 표시됩니다.


마지막으로 커밋 내역은 기본적으로 커밋이 만들어진 후 저장되는 곳입니다. .git 폴더에서 커밋 내역은 objects라는 폴더로 표시됩니다.


1_V8i09C2Q9xK0u1y7531t3Q--1-.png 

작업 디렉토리, 저장소, 스테이징 영역 및 커밋 내역


일반적인 Git 워크 플로 


1 단계 — 파일 편집 


새 프로젝트가 있는 경우 새 프로젝트에서 첫 번째 파일을 만듭니다. 새로운 프로젝트 폴더에서 chapter1이라는 간단한 텍스트 파일을 만들 것입니다. 텍스트 편집기를 사용하거나 터미널에서 직접이 작업을 수행 할 수 있습니다. 이 예에서는 touch chapter1.txt를 입력하여 터미널에서 직접 수행합니다.


기존 프로젝트가 있는 경우 기존 파일 중 일부를 편집하거나 새 파일을 추가하거나 파일을 삭제합니다.


다음으로 git status 명령을 사용할 수 있습니다. 이 명령은 작업 디렉토리와 스테이징 영역의 상태를 알려주고 둘 사이에 차이점이 있는지 알려줍니다.


1_jHl7OaAsZBBa-6fuyK8Esw.png 

프로젝트에 파일 추가


이 예에서는 새 프로젝트에 하나의 새 파일만 추가했습니다. git status 명령을 사용할 때 Git은 작업 디렉토리에 추적 되지 않은 파일이 있으며 이를 커밋할 항목에 포함하려면 git add 명령을 사용해야 한다고 알려줍니다. 2 단계로 이동합니다.


1_r3tL0x5-6x60uycPkIQxbg.png 

파일은 작업 디렉토리에 있습니다.



2 단계 — 준비 영역에 파일 추가 


스테이징 영역에 새 파일 또는 업데이트 된 파일을 추가하기 위해 git add 명령을 사용할 수 있습니다. 다음 커밋에서 변경 한 일부 파일을 포함하지 않기로 결정한 경우 해당 특정 파일을 스테이징 영역에 추가하지 않도록 합니다.


updated.png 

스테이징 영역에 파일 추가


이 예에서는 git add 명령을 사용하고 파일 이름을 전달하여 프로젝트에 있는 유일한 파일을 스테이징 영역에 추가합니다. 그런 다음 git status 명령을 사용하면 Git이 파일을 스테이징 영역에 추가했음을 알려주는 것을 볼 수 있습니다.


1_90QUPov6WsHjkokIzJw10g.png 

파일이 준비 영역에 있습니다.


파일이 작업 디렉토리에서 스테이징 영역으로 이동하지 않는다는 점도 중요합니다. 파일은 작업 디렉토리에서 스테이징 영역으로 복사됩니다.


3 단계 — 약속하기 


마지막으로 커밋을 만들기 위해 -m 옵션과 함께 git commit 명령을 사용하고 커밋 메시지를 전달합니다 (예 : git commit -m "this is the first commit").


1_KoPfPCVxlsOI3qqQLfd9Dw.png 

첫 번째 커밋 만들기


그런 다음 git log 명령을 사용하여 프로젝트에 있는 모든 커밋을 시간 역순으로 나열 할 수 있습니다. 이 예에서는 커밋이 하나뿐입니다.


1_O8tbeMHOrjCGNajx2chxHQ.png 

우리는 첫 번째 약속을했습니다


이제 우리는 프로젝트에서 첫 번째 커밋을 했습니다! 즉, 프로젝트의 첫 번째 버전을 저장했습니다.


커밋에는 40 자 커밋 해시가 있습니다. 커밋 해시는 커밋의 이름 또는 참조 방법으로 사용되는 40 개의 문자와 숫자입니다.


커밋 한 사람, 커밋 한시기, 커밋 메시지와 같은 정보도 볼 수 있습니다.


Git에서 커밋 히스토리란 무엇입니까? 


저장소는 여러 커밋으로 구성되며 가장 간단한 경우 각 커밋에는 이전 커밋인 하나의 상위 커밋이 있습니다. 이것이 바로 아래 이미지에서 한 커밋이 이전 커밋을 가리키는 이유입니다.


다중 분기 및 병합 영역에 들어가는 더 복잡한 경우가 있지만 이 기사에서는 다루지 않습니다.


1_pZBMf1JSUf0feoe-fst0Lg.png 

간단한 커밋 내역


마지막으로 Git의 브랜치란? 


분기는 커밋에 대한 포인터입니다. Git의 기본 브랜치는 master 또는 main이라고 합니다.


.git 폴더로 이동 한 다음 refs 폴더를 열고 heads 폴더를 열고 마지막으로 master라는 파일을 열면 브랜치가 커밋에 대한 포인터임을 알 수 있습니다. 이 파일 안에 해시가 있음을 알 수 있습니다. 이것은 마스터 브랜치가 가리키는 커밋의 해시입니다.


다시 한 번 git log 명령을 사용하여 저장소의 모든 커밋을 나열 할 수 있으며 해당 해시가 괄호 안에 마스터 레이블이 옆에 있는 커밋과 일치하는 것을 알 수 있습니다.


1_4yV_t7acLQZBMwkpXkZyBg.png 

.git 폴더에 마스터 브랜치 표시


터미널에서 git branch 명령을 입력하여 모든 분기 목록을 볼 수 있습니다.


1_88nz0tfYI77kjBzQvCDF9Q.png 

커밋을 가리키는 마스터 브랜치 표시


브랜치는 다른 사람들과 훨씬 더 쉽게 협업하고 동시에 프로젝트의 여러 기능 또는 다른 부분에서 작업 할 수 있기 때문에 정말 중요합니다.


더 많은 커밋을 수행하면 현재 브랜치가 최신 커밋을 가리키도록 업데이트 됩니다.


1_iBdgErtar3XDmVQGRyT_9A.png 

커밋 기록과 최신 커밋을 가리키는 마스터 브랜치 표시


결론 


여기까지 왔다면 축하합니다! Git에 대해 더 많은 것을 배울 수 있으며,이 기사에서는 표면 만 긁었습니다. 아래에서 Git을 배우려면 더 많은 리소스를 확인하십시오!


Git 버전 관리를 배우는 온라인 과정 


이 기사는 Git Learning Journey라는 Git 버전 제어를 가르치는 온라인 과정을 기반으로 합니다.


원격 저장소 작업, 병합 및 리베이스 작업을 포함하여 위의 모든 내용을 훨씬 더 심도있게 다루는 Git 버전 제어의 기본 사항을 가르칩니다.


비 기술적 배경에서 기술로 전환하는 사람들을 위해 특별히 설계되었으며 4.8 성급 ⭐️ 등급과 600 명 이상의 만족 한 학생들로 Udemy에서 가장 높은 등급을 받은 과정이 되었습니다 (학생 리뷰를 확인하세요. 그리고 처음 8 개 강의는 무료 미리보기이므로 자유롭게 살펴보세요!


https://www.freecodecamp.org/news/what-is-git-learn-git-version-control/