힘내 란 무엇입니까?
파일을 관리하는 프로그램
– 파일의 변경 사항을 추적하여 사용자가 각 파일의 버전을 관리할 수 있도록 지원
– 파일을 백업할 수 있습니다.
– 공동 작업자와 파일을 공유하여 작업을 조합할 수 있습니다.
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 푸시 오리진 메인
*당기다: 쌍의 저장소를 당깁니다.
*푸시: 내 저장소 가져오기
