(힘내) 기초

힘내 란 무엇입니까?

파일을 관리하는 프로그램

– 파일의 변경 사항을 추적하여 사용자가 각 파일의 버전을 관리할 수 있도록 지원

– 파일을 백업할 수 있습니다.

– 공동 작업자와 파일을 공유하여 작업을 조합할 수 있습니다.

Git으로 할 수 있는 일…

(1) 버전 관리

ex) 초안, 수정 1, 수정 2, 최종, 실제 최종 수정, 완성본…

작성해야 하는 문서의 양이 기하급수적으로 증가하면 각 문서에서 무엇을 어떻게 수정했는지 기억하기 어렵습니다.

Git은 이러한 문제를 해결합니다. Git이 관리하는 디렉토리에 문서를 생성하면 해당 문서를 Git으로 버전 관리할 수 있습니다.

이후 문서를 수정할 때마다 Git은 어떤 부분이 어떻게 수정되었는지 자세하게 기록한다. 이전 버전으로 돌아가야 할 경우 Git에 기록된 내용을 확인하고 돌아가고 싶은 이전 버전을 선택하면 손쉽게 해당 버전으로 돌아갈 수 있다.

(2) 백업

프로젝트나 프로젝트에서 작업할 때 종종 백업이 필요합니다. Git은 작업을 온라인 원격 저장소에 백업할 수 있도록 백업 기능을 제공합니다.

(3) 협업

Git을 사용하면 여러 사람이 작업을 공유하고 집계할 수 있으며 각 작업은 동일한 작업의 다른 부분에서 수행됩니다.

1. 4명이 각각 애국가를 작사했다.

A: 1부, B: 2부, C: 3부, D: 4부

2. A는 자신의 작업을 원격 저장소에 업로드합니다.

3. B는 원격 저장소에서 A의 작업을 다운로드합니다.

3-1. 이때 A가 작업한 1절과 B가 작성한 2절이 Git에 모인다.

3-2. 수집 성공 확인 후, 1, 2절의 수집을 원격 저장소에 업로드

4. C는 원격 저장소에서 1-2절 모음을 다운로드합니다.

4-1. 이때 Git은 섹션 1과 2의 모음을 C가 작업한 섹션 3과 결합합니다.

4-2. 수집이 잘 되었는지 확인 후 1~3구간의 수집을 원격저장소에 업로드

5. D는 원격 저장소에서 1-3절 모음집을 다운로드합니다.

5-1. 이때 Git은 D가 작업한 섹션 4와 섹션 1~3의 모음을 결합합니다.

5-2. 수집이 잘 되었는지 확인 후 1~4구간의 모음을 원격저장소에 업로드

6. 국가 1-4는 원격 저장소에 업로드되어 모든 팀원이 완성된 제품을 공유할 수 있습니다.

힘내와 Github

Git 자체는 일반적으로 로컬에서 버전을 관리하는 프로그램을 말합니다.

단, 백업 기능이나 업무용 기능을 활용하기 위해서는 온라인 원격 저장소가 필요합니다.

그런 Github는 원격 저장소 기능을 제공하는 서비스 중 하나입니다.

Git은 로컬 버전 관리 프로그램이고 Guthub는 Git의 클라우드 기반 구현입니다.

힘내 환경 설정

Git을 설치할 때 가장 먼저 설정하는 것은 사용자 이름과 이메일 주소입니다.

앞으로 Git 커밋 기록의 구성에 기록된 사용자 이름과 이메일 주소를 기록합니다.

$ git config --global user.name "나의 사용자 이름"
$ git config --global user.email "내 이메일 주소"

  • -global 옵션으로 설정하면 사용자 홈에 저장되기 때문에 git 설정 시 한 번만 입력하면 된다. 나중에 GitHub 사용자 이름이나 이메일을 변경하는 경우 이 명령을 다시 입력해야 합니다.
  • 여러 프로젝트에서 작업 중이고 각 프로젝트에 대해 다른 사용자 이름과 이메일 주소를 사용하려는 경우 -global 옵션 없이 명령을 실행할 수 있습니다.

SSH 등록

SSH는 Secure Shell의 약자로 “보안 셸 연결”을 의미합니다.

CLI 환경에서 다른 PC에 접속하거나 요청할 때 사용하며, 비대칭 키를 이용하여 사용자를 인증합니다.

SSH 키 생성

– 비대칭 키로 구성되어 있으며 두 키는 비대칭 상태로 존재한다.

– 아래 코드 입력 후 ssh 키 페어 생성

ssh-keygen

  • 노선 ~/.ssh./ 두 파일에서 id_rsa그리고 id_rsa.pub생성하다
  • 두 파일을 ssh 키 쌍이라고 합니다.
  • id_rsa.pub는 공개 키( 공개 키 ) , rsa_id 개인 키(개인 키) 또는 비밀 키(비밀 키).

공개 키 복사

cat ~/.ssh/id_rsa.pub

ssh 키 쌍을 생성했으므로 생성된 키 중 공개키를 복사하여 GitHub에 등록합니다.

프로필 – 설정 – SSH 및 GPG 키 – 새 SSH 키 – 키 입력 – SSH 키 추가

SSH 공개키가 정상적으로 등록되었는지 확인하려면 리포지토리를 복제합니다.

(1) Github 저장소로 이동하여 Code – clone – SSH 복사

(2) 프롬프트에 아래 명령어를 입력하여 정상적으로 동작하는지 확인

git clone "복사한 SSH"

(3) ls를 입력하여 복제된 리포지토리 폴더가 생성된 것을 확인하면 성공한 것입니다.

Git 워크플로(솔로)

Git의 각 영역은 크게 온라인과 로컬로 나뉜다.

  • 온라인: 원격 저장소
  • 현지의: 작업 공간, 스테이징 영역, 로컬 저장소

1. 실습 디렉토리 및 파일 생성

touch hello_git.txt

nano hello_git.txt

cat hello_git.txt

2. Git으로 파일 관리 시작

git init

* 기본 지점 이름 변경

git config --global init.defaultBranch 변경할_브랜치_이름
  • git init 입력 후 위의 명령어를 입력하여 생성된 기본 브랜치의 이름을 변경합니다.

git branch -m 변경할_브랜치_이름
  • 현재 있는 브랜치의 이름을 바꾸려면 위의 명령을 입력하십시오.

git config --global init.defaultBranch main
git branch -m main

*.git 디렉토리

  • git init은 .git 디렉토리를 생성합니다.
  • ls -l 명령을 입력하면 .git 디렉토리가 보이지 않습니다.
  • ls -al 명령을 입력하여 .git 디렉토리를 확인할 수 있습니다.

* 작업 공간

  • 작업 공간은 작업 트리 또는 작업 트리라고 하는 Git의 세 영역 중 하나입니다. 눈으로 볼 수 있는 디렉토리 자체를 말합니다.
  • Git은 작업 공간을 자동으로 스캔합니다.
  • 작업 공간git init에 들어간 직후, 다른 Git 명령을 입력하지 않고 파일이 존재하는 영역


git status
git add .
git add 파일_이름

3. 파일 상태

추적됨 상태의 파일은 파일이 수정될 때 Git이 파일 변경 사항을 감지하도록 하지만

Untracked 상태의 파일의 경우 파일 내용을 변경하더라도 Git은 파일 내용의 변경 사항을 감지하지 못합니다.

Untracked 상태의 파일은 Commit이라는 프로세스를 거치면 Tracked 상태로 변경됩니다.

  • 수정되지 않음: 파일 수정이 Git에서 감지되지 않음
  • 수정: Git에서 감지한 파일 수정
  • 일부러 꾸민: 스테이징 영역에 파일이 존재하는 상태

* 대기 장소

– Loacl 저장소에 파일이 저장되기 위한 임시 대기 영역

– 로컬 저장소에 파일을 저장한다는 것은 단순히 파일을 저장한다는 것 외에 특별한 의미가 있습니다.

4. 스테이징 영역으로 파일 이동

– Staging Area로 이동할 때 git add file_name 명령어를 사용한다.

– git add를 사용하여 파일을 스테이징 영역으로 이동하고, “파일을 준비합니다.” 표현하다


5. 파일을 로컬 리포지토리에 저장하고 버전을 기록합니다.

git commit

  • git add를 통해 스테이징을 마쳤으면 이제 커밋할 수 있습니다.
  • Commit은 파일을 로컬 저장소에 저장하는 행위를 말하며 파일이 로컬 저장소에 저장됨과 동시에 파일의 버전이 기록된다.

git commit -m "First commit"


6. 커밋 내역 확인

git log

7. 작업을 원격 저장소에 업로드

git push

8. 원격 저장소 생성

– 새로 만들기를 클릭하여 원격 저장소를 생성합니다.

– 원격 저장소 생성

– 원격 저장소와 로컬 저장소 연결

git remote add origin 복사한_원격_저장소_URL

연결 상태가 좋은지 확인하세요.

git remote --v

9. 작업 업로드

git push origin "브랜치 이름" ex) main


10. 원격 저장소에서 로컬로 코드 복사

– 복사된 원격 저장소의 URL

git clone 복사한_URL

Git 워크플로우(쌍)

(1) Git 연결

– 로컬 작업 디렉토리를 Git의 관리하에 두십시오.

git init

(2) 원격 저장소에서 로컬로 코드 복사

git clone "Fork할 Repository URL"

(3) 내 Remote Repository에 접속하여 Remote에 코드 적용

– origin이라는 이름으로 내 원격 저장소를 등록합니다.

git remote add origin "내 Repository URL"

(4) 페어가 내 Remote Repository를 포크한 경우에는 페어의 Remote Repository를 my Local에 페어 이름으로 등록합니다.

git remote add pair "페어의 Repository"

(5) Remote Repository가 잘 연결되어 있는지 확인

– 연결된 Remote Repository 목록 및 주소 확인

git remote --verbose
git remote -v

(6) 코드 생성 및 커밋

touch text.txt
nano text.txt

– 내 Remote Repository의 Local에 내용 반영

– 내 브런치 이름은 메인

git push origin main

(7) 스테이징

git add *
git add .
git add (스테이징 할 파일 이름)

(8) 커밋

git commit -m "메시지"

(9) 푸시

– 내 브런치 이름은 메인

git push origin main

* 한 쌍이 작업하고 원격 저장소에 업로드된 콘텐츠를 결합하려고 하면 쌍의 코드를 내 로컬로 가져옵니다.

git pull pair main

* 내 Remote Repository에 Local 내용 반영

git push origin main

더보기

1. 힘내 연결

> 자식 초기화

2. 다른 리포지토리를 자신의 리포지토리로 포크

> git clone “포크할 저장소”

3. 내 원격 저장소에 연결하여 원격 코드에 적용

> git remote add origin “내 저장소 URL”

4. 페어링 및 연결

> git remote add pair “쌍 리포지토리 URL”

* 연결 상태가 양호한지 확인하세요.

> git remtoe -v

5. 커밋

> git commit -m ‘변경’

6. 푸시

> git 푸시 오리진 메인

7. 쌍이 작성한 코드를 로컬로 가져오기

> git 풀 페어 메인

8. 새로운 코드 작성 후 커밋

* 스테이징

> 자식 추가 .

* 저지르다

> git commit -m ‘커밋 메시지’

9. 푸시 백

> git 푸시 오리진 메인

*당기다: 쌍의 저장소를 당깁니다.

*푸시: 내 저장소 가져오기