Github 관련 지식

Github을 설명하기 전에 먼저 오픈 소스와 관련된 개념을 이해합시다.

오픈 소스 관련 개념 이해

1. 오픈소스란?

 일반적인 이해: 오픈 소스는 프로그램뿐만 아니라 프로그램의 소스 코드도 제공하는 것을 의미하고 폐쇄 소스는 소스 코드를 제공하지 않고 프로그램만 제공하는 것을 의미합니다.

2. 오픈소스 라이선스 계약 이란?

오픈소스라고 해서 제한이 전혀 없는 것은 아닙니다. 사용자의 사용 범위를 제한하고 저작자의 권리를 보호하기 위해 모든 오픈소스 프로젝트는 오픈소스 라이선스 계약 (오픈소스 라이선스) 을 준수해야 합니다 .

3. 5가지 일반적인 오픈 소스 라이선스 계약

 더 많은 오픈 소스 라이선스 계약에 대한 소개는 블로그 https://www.runoob.com/w3cnote/open-source-license.html을 참조하십시오.

4. 오픈소스를 수용하는 이유

오픈소스의 핵심 사상 은 "나는 모두를 위한 것이고, 모두는 나를 위한 것이다"입니다 . 사람들은 다음 세 가지 이유로 오픈소스를 점점 더 좋아합니다.

  1. 오픈 소스는 사용자에게 더 많은 제어권을 제공합니다.
  2. 오픈 소스로 학습이 쉬워집니다.
  3. 오픈 소스만이 진정한 보안을 가지고 있습니다.

오픈 소스는 소프트웨어 개발 분야의 주요 추세입니다. 오픈 소스를 수용하는 것은 거인의 어깨 위에 서있는 것과 같습니다. 스스로 바퀴를 재발명할 필요가 없으므로 개발이 더 쉽고 쉬워집니다.

5. 오픈소스 프로젝트 호스팅 플랫폼

오픈 소스 프로젝트의 소스 코드를 무료로 저장하는 전용 사이트를 오픈 소스 프로젝트 호스팅 플랫폼 이라고 합니다 . 현재 세계적으로 잘 알려진 세 가지 오픈 소스 프로젝트 호스팅 플랫폼이 있습니다.

  1. Github(세계에서 가장 강력한 오픈 소스 프로젝트 호스팅 플랫폼, 그 중 어느 것도 없음)
  2. Gitlab(코드 프라이버시를 잘 지원하므로 더 많은 기업 사용자가 있음)
  3. Gitee( 코드 클라우드 라고도 함 )는 국내 오픈 소스 프로젝트 호스팅 플랫폼입니다. 빠른 액세스, 순수 중국어 인터페이스, 사용하기 쉽습니다.

참고: 위의 세 가지 오픈 소스 프로젝트 호스팅 플랫폼은 Git에서 관리하는 프로젝트 소스 코드만 호스팅할 수 있으므로 이름이 모두 Git으로 시작합니다.

6. 깃허브란?

Github는 세계 최대의 오픈 소스 프로젝트 호스팅 플랫폼입니다. 유일한 버전 관리 도구로 Git만 지원하기 때문에 이름이 GitHub입니다. Github에서 다음을 수행할 수 있습니다.

  1. 좋아하는 오픈 소스 프로젝트를 팔로우하고 좋아요를 누르고 전화하세요.
  2. 좋아하는 오픈 소스 프로젝트에 기여하기 I(풀 리퀘스트)
  3. 오픈 소스 프로젝트(lssues) 작성자와 버그 논의 및 요청 제기
  4. 수정을 위해 좋아하는 프로젝트를 자신의 프로젝트로 복사(포크)
  5. 나만의 오픈 소스 프로젝트 만들기
  6. 등...

Github

1. Github 계정 등록 절차

  1. Github 공식 웹사이트 홈페이지 방문 http://github.com
  2. "Sign up" 버튼을 클릭하면 등록 페이지로 이동합니다.
  3. 사용 가능한 사용자 이름, 이메일, 비밀번호를 입력하세요.
  4. 화살표를 클릭하여 인증 사진 정렬
  5. 새 사용자를 등록하려면 "Greate account" 버튼을 클릭하십시오.
  6. 로그인 3단계에서 입력한 이메일 주소에서 활성화 링크를 클릭하면 등록이 완료됩니다.

2. Github 원격 창고 사용

2.1 새로운 빈 원격 창고 생성

 2.2 원격 창고의 두 가지 액세스 방법

Github의 원격 웨어하우스에는 HTTPSSSH 라는 두 가지 액세스 방법이 있습니다 . 차이점은 다음과 같습니다.

  1. HTTPS: 제로 구성 ; 단, 웨어하우스에 접근할 때마다 Github 계정과 암호를 반복적으로 입력해야 성공적으로 접근 가능
  2. SSH: 추가 설정이 필요 하나, 설정이 성공하면 웨어하우스에 접근할 때마다 Github 계정과 비밀번호를 반복적으로 입력할 필요가 없습니다.

참고: 실제 개발에서는 SSH를 사용하여 원격 웨어하우스에 액세스하는 것이 좋습니다 .

2.3 HTTPS를 기반으로 로컬 웨어하우스를 Github에 업로드

두 번째 이후에 새 콘텐츠를 추가하는 경우 git push를 직접 사용하십시오 .

2.4 SSH 키

SSH 키의 역할 : 로그인 없이 로컬 웨어하우스와 Github 간의 암호화된 데이터 전송을 실현합니다 .

SSH Key의 이점: 로그인 없는 신원 인증, 암호화된 데이터 전송

SSH 키는 다음 두 부분으로 구성됩니다.

  1. id_rsa(클라이언트 컴퓨터에 저장된 개인 키 파일)
  2. id_rsa.pub(공개 키 파일, Github에서 구성해야 함)

2.5 SSH 키 생성

  1. Git Bash 열기
  2. 다음 명령을 붙여넣고 [email protected]을 Github 계정을 입력할 때 입력한 이메일 주소로 바꿉니다. ssh-keygen -t rsa -b 4096 -C " [email protected] "
  3. Enter 키를 3번 연속 누르면 C:\Users\username folder\.ssh 디렉토리에 id_rsa, id_rsa.pub 파일 2개가 생성됩니다.

2.6 SSH 키 구성

  1. 메모장으로 id_rsa.pub 파일을 열고 내용을 복사합니다.
  2. 브라우저에서 Github에 로그인하고 아바타 -> 설정 -> SSH 및 GPG 키 -> 새 SSH 키를 클릭합니다.
  3. id_rsa.pub 파일의 내용을 키에 해당하는 텍스트 상자에 붙여넣습니다.
  4. 제목 텍스트 상자에 이름을 입력하여 키의 출처를 식별합니다.

2.7 Github의 SSH 키가 성공적으로 구성되었는지 감지

Git Bash를 열고 다음 명령을 입력한 후 Enter 키를 눌러 실행합니다.

ssh -T [email protected]

위의 명령이 성공적으로 실행되면 다음 프롬프트 메시지가 표시될 수 있습니다.

 yes를 입력한 후 다음과 유사한 메시지가 표시되면 SSH 키가 성공적으로 구성된 것입니다.

 2.8 SSH를 기반으로 로컬 웨어하우스를 Github에 업로드

먼저 로컬에서 git 웨어하우스를 만든 다음 이 GitHub에 들어가 빈 원격 웨어하우스를 만든 다음 SSH 액세스 방법으로 전환합니다.

 모든 단계가 완료되면 로컬 창고를 Github에 성공적으로 업로드할 수 있습니다.

2.9 원격 웨어하우스를 로컬에 복제

Git bash를 열고 다음 명령을 입력한 후 Enter 키를 눌러 실행합니다.

git clone 원격 창고 주소

힘내 지점

1. 브랜치의 개념

브랜치는 공상과학 영화 속 평행세계로 , 컴퓨터 앞에서 Git을 배우려고 하면 또 다른 평행우주에서 SVN을 배우려고 한다.

두 평행 우주가 서로 간섭하지 않는다면 지금 당신에게 아무런 영향을 미치지 않을 것입니다.

그러나 어느 시점에서 두 개의 병렬 유니버스가 병합되었고 그 결과 Git과 SVN을 모두 배웠습니다.

 2. 실제 개발에서 브랜치의 역할

여러 사람이 공동으로 개발하는 동안 상호 간섭을 방지하고 공동 개발 경험을 향상시키기 위해 각 개발자는 분기를 기반으로 프로젝트 기능을 개발하는 것이 좋습니다. 예를 들면 다음과 같습니다.

 3. 마스터 메인 브랜치

로컬 Git 웨어하우스를 초기화할 때 Git은 기본적으로 master 라는 브랜치를 생성했습니다 . 보통 우리는 이 마스터 브랜치를 메인 브랜치라고 부릅니다 .

 실제 작업에서 마스터 메인 브랜치의 역할은 전체 프로젝트의 완성된 기능 코드를 저장하고 기록하는 것 입니다 . 따라서 프로그래머는 마스터 브랜치에서 직접 코드를 수정할 수 없습니다. 그렇게 하면 위험이 너무 높고 전체 프로젝트가 충돌하기 쉽기 때문입니다.

4. 기능 분기

프로그래머가 마스터 브랜치에서 직접 함수를 개발할 수 없기 때문에 함수 브랜치 라는 개념이 있습니다 .

기능 분기는 새로운 기능을 개발하기 위해 특별히 사용되는 분기를 말하며 마스터 메인 분기에서 일시적으로 분기되며 새로운 기능이 개발되고 테스트될 때 마스터 메인 분기에 병합되어야 합니다.

주 분기의 주기가 길고 기능 분기의 주기가 짧으며 기능이 완료되면 기능 주기가 종료되고 주 분기만 유지됨을 의미합니다.

 5. 지점 목록 보기

git branch

작업 결과는 다음과 같습니다.

 참고: 브랜치 이름 앞의 *는  현재 브랜치를 나타냅니다 .

6. 새 지점 만들기

다음 명령을 사용하여 현재 분기를 기반으로 새 분기를 생성합니다 . 이때 새 분기의 코드는 현재 분기와 완전히 동일합니다.

git branch 分支名称

 다이어그램은 다음과 같습니다.

7. 분기 전환

개발을 위해 지정된 분기로 전환 하려면 다음 명령을 사용하십시오 .

git checkout login

다이어그램은 다음과 같습니다.

 8. 빠른 분기 생성 및 전환

다음 명령을 사용하여 지정된 이름으로 새 분기를 생성 하고 즉시 새 분기로 전환 할 수 있습니다 .

# -h 表示创建一个新分支
# checkout 表示切换到刚才新建的分支上
git checkout -b 分支名称

다이어그램은 다음과 같습니다.

 참고: "git checkout -b branchname"은 다음 두 명령의 줄임말입니다.

  1. git 브랜치 브랜치 이름
  2. git checkout 브랜치 이름

9. 브랜치 병합

기능 분기의 코드 개발 및 테스트가 완료된 후 다음 명령을 사용하여 완성된 코드를 마스터 기본 분기에 병합할 수 있습니다.

# 1. 切换到 master 分支
git checkout master

# 2. 在 master 分支上运行 git merge 命令,将 login 分支的代码合并到 master 分支
git merge login

 브랜치를 병합할 때 주의할 점:

C 분기의 코드를 A 분기로 병합하려는 경우 먼저 A 분기로 전환한 다음 git merge 명령을 실행하여 C 분기를 병합해야 합니다!

10. 분기 삭제

기능 분기의 코드를 마스터 기본 분기에 병합한 후 다음 명령을 사용하여 해당 기능 분기를 삭제할 수 있습니다.

git branch -d 分支名称

참고: 분기를 삭제하려면 이 분기 아래에서 git branch -d 명령을 실행할 수 없으므로 분기를 떠나야 합니다

11. 충돌 발생 시 분기 병합

두 개의 다른 브랜치에서 동일한 파일 에 대해 서로 다른 변경 사항이 적용되면 Git 은 이를 완전히 병합할 수 없습니다. 이 시점에서 이러한 충돌 파일을 열고 수동으로 충돌을 해결 해야 합니다 .

12. Git 원격 분기 작업

12.1 로컬 브랜치를 원격 저장소로 푸시하기

로컬 브랜치를 원격 웨어하우스로 처음 푸시 하는 경우 다음 명령을 실행해야 합니다.

# -u 表示把本地分支和远程分支进行关联,只在第一次推动的时候需要带 -u 参数
git push -u 远程仓库的别名 本地分支名称:远程分支名称

# 实际案例:
git push -u origin payment:pay

# 如果希望远程分支的名称和本地分支名称保持一致,可以对命令进行简化
git push -u origin payment

참고: -u 매개변수는 첫 번째 푸시 브랜치에 필요하며 , 이후 git push를 사용하여 원격 브랜치로 코드를 푸시할 수 있습니다. 

12.2 원격 창고의 모든 지점 목록 보기

다음 명령을 통해 원격 웨어하우스의 모든 분기 목록 정보를 볼 수 있습니다.

git remote show 远程仓库名称

12.3 브랜치 추적하기

트래킹 브랜치는 원격 웨어하우스에서 로컬 웨어하우스로 원격 브랜치를 다운로드하는 것을 말합니다. 실행해야 하는 명령은 다음과 같습니다.

# 从远程仓库中,把对应的远程分支下载到本地仓库,保持本地分支和远程分支名称相同
git checkout 远程分支的名称

# 示例:
git checkout pay


# 从远程仓库中,把对应的远程分支下载到本地仓库,并把下载的本地分支进行重命名
git checkout -b 本地分支名称 远程仓库名称/远程分支名称

# 示例:
git checkout -b payment origin/pay

12.4 원격 브랜치에서 최신 코드 가져오기

다음 명령을 사용하여 원격 브랜치에서 해당 로컬 브랜치로 최신 코드를 다운로드할 수 있습니다.

# 从远程仓库,拉取当前分支最新的代码,保持当前分支的代码和远程分支代码一致
git pull

 참고: 어느 분기를 가져올지, 어느 분기에서 git pull을 실행해야 합니다.

12.5 원격 브랜치 삭제

다음 명령을 사용하여 원격 웨어하우스에서 지정된 분기를 삭제할 수 있습니다.

# 删除远程仓库中,指定名称的远程分支
git push 远程仓库名称 --delete 远程分支名称

# 示例:
git push origin --delete pay

Supongo que te gusta

Origin blog.csdn.net/DIUDIUjiang/article/details/126901488
Recomendado
Clasificación