기술나눔

Git 튜토리얼

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Git 분산 버전 제어 도구

​ Git은 아주 작은 프로젝트부터 아주 큰 프로젝트까지의 프로젝트 버전 관리를 효율적이고 빠른 속도로 처리할 수 있는 오픈소스 분산 버전 관리 시스템입니다.

Git은 분산되어 있습니다. Git에는 중앙 서버가 필요하지 않습니다. 우리는 모든 사람의 수정 사항을 쉽게 교환하기 위해 Git을 사용하고 중앙 서버를 보유하고 있지만 이 서버의 상태는 각 PC와 동일합니다. 우리는 이 서버를 개발자의 PC로 사용할 수 있으므로 컴퓨터를 끄지 않고도 모든 사람이 쉽게 서로 통신할 수 있습니다. 누구나 이 서버 없이도 작업할 수 있지만 "교환" 수정은 불편합니다.
여기에 이미지 설명을 삽입하세요.

버전 컨트롤러 접근 방식

중앙 집중식 버전 제어 도구

​중앙 버전 관리 도구인 버전 라이브러리는 중앙 서버에 저장됩니다. 팀의 모든 구성원은 작업 시 중앙 서버에서 코드를 다운로드합니다. 작업하려면 LAN 또는 인터넷에 연결되어 있어야 합니다. 개인 수정 사항을 중앙 저장소에 제출합니다. 예: SVN, CVS
여기에 이미지 설명을 삽입하세요.

분산 버전 제어 도구

​ 분산 버전 관리 시스템에는 "중앙 서버"가 없습니다. 모든 사람의 컴퓨터에는 완전한 버전 라이브러리가 있습니다. 이렇게 작업할 때 버전 라이브러리가 자신의 컴퓨터에 있기 때문에 인터넷에 연결할 필요가 없습니다. 여러 사람이 공동 작업할 때 수정 사항을 서로에게 푸시하기만 하면 서로의 수정 사항을 볼 수 있습니다. 예: 힘내

일반적인 명령

힘내 작업 흐름
여기에 이미지 설명을 삽입하세요.

  • 복제하다: 원격 저장소의 코드를 로컬 저장소로 복제합니다.

  • 점검: 현지 창고에서 창고 지점을 확인하고 수정

  • 추가하다: 코드 제출 전 대기장소에 코드 제출

  • 저지르다: 로컬 창고에 제출하고 수정된 기록 버전을 로컬 창고에 저장합니다.

  • 술책: 병합 작업 없이 원격 라이브러리에서 로컬 창고로 가져옵니다.

  • 당기다: 원격 라이브러리에서 로컬 라이브러리로 끌어와 자동으로 병합(병합하다), 그런 다음 작업 공간에 넣습니다.fetch merge

  • 푸시: 원격 창고에 코드를 푸시합니다.

  • git config:구성 정보

    # 设置用户信息
    git config --global user.name "userName"
    git config --global user.email "Email"
    
    # 查看配置信息
    git config --global user.name
    git config --global user.email
    
  • alias: 구성 명령 별명,~/.bashrc설정을 추가하고 수정이 완료된 후 실행해야 합니다.source ~/.bashrc

    # 部分windows系统不允许用户创建.开头的文件,可以在gitBash中执行
    touch ~/.bashrc
    
    # 在~/.bashrc中添加内容,输出git提交日志
    alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
    
  • git init: 실행이 성공적으로 완료되면 현재 디렉토리를 git Warehouse로 초기화합니다..git폴더

  • git status: 수정 상태 보기(임시 보관 장소, 작업 공간)
    여기에 이미지 설명을 삽입하세요.

  • git add: 작업 공간에 있는 하나 이상의 파일에 대한 수정 사항을 준비 영역에 추가합니다.

    git add 单个文件名 | 通配符
    
    # 将所有修改加入到暂存区
    git add .
    
  • git commit: 집결지의 내용물을 현지 창고 현 지점에 제출하고,git commit -m '注释内容'

  • git log: 제출 로그 보기 및 별칭 구성git-log

    git log [option]
    	--all 显式所有分支
    	--pretty=oneline 将提交信息显示为一行
    	--abbrev-commit 使得输出的commitId更简短
    	--graph 以图的形式显示
    
  • git reset:버전 롤백

    # 查看已经删除的记录,可以看到已经删除的提交记录
    git reflog
    
    # 版本切换,commitId可以通过git log查看
    git reset --hard commitId
    
  • git branch: 로컬 브랜치를 봅니다. 브랜치를 사용한다는 것은 메인 개발 라인에 영향을 주지 않도록 버그를 수정하고 새로운 기능을 개발하기 위한 작업을 메인 개발 라인에서 분리할 수 있다는 것을 의미합니다.

    • 주인(생산) 브랜치 : 온라인 브랜치, 본점, 온라인에서 실행되는 애플리케이션으로 중소 프로젝트에 해당하는 브랜치

    • 개발하다(개발하다) 브랜치: 마스터에서 생성된 브랜치입니다. 일반적으로 개발 부분의 주요 개발 브랜치로 사용됩니다. 온라인 개발의 여러 단계에 대한 다른 병렬 개발 요구 사항이 없으면 이 버전에서 개발을 수행할 수 있습니다. 단계 개발이 완료되면 마스터 브랜치에 병합하고 온라인으로 전환할 준비를 해야 합니다.

    • feature/xxx 브랜치: 개발에서 생성된 브랜치입니다. 일반적으로 동시에 개발되지만, 런칭이 동일한 기간이 아닐 때 생성됩니다. 브랜치의 연구 작업이 완료된 후 병합됩니다. 지점을 개발하십시오.

    • hotfix/xxx 브랜치: 마스터에서 파생된 브랜치로 일반적으로 온라인 버그 수정에 사용됩니다. 수리가 완료된 후 마스터에 병합하고 테스트하고 개발해야 합니다.

    • 시험(시험) 나뭇가지

    • 사전(사전 출시) 나뭇가지
      여기에 이미지 설명을 삽입하세요.

    # 查看本地分支
    git branch
    
    # 创建本地分支
    git branch 分支名
    
    # 切换分支
    git checkout 分支名
    
    # 切换到一个不存在的分支,创建并切换
    git checkout -b 分支名
    
    # 合并分支,一个分支上的提交可以合并到另一个分支
    git merge 分支名
    
    # 删除分支,不能删除当前分支,只能删除其它分支
    # 删除时需要做各种检查
    git branch -d 分支名
    # 强制删除,不做任何检查
    git branch -D 分支名
    
  • 충돌 해결: 두 분기의 파일 수정 사항이 충돌할 수 있는 경우(예: 동일한 파일의 동일한 줄이 동시에 수정됨) 충돌을 수동으로 해결해야 합니다. 단계는 다음과 같습니다.

    1. 파일 충돌 처리
    2. 충돌 해결된 파일을 임시 저장 영역(추가하다)
    3. 창고에 제출(저지르다)

원격 창고

  • git remote add: 원격 웨어하우스를 추가하는 작업은 먼저 로컬 라이브러리를 초기화한 후 생성된 원격 라이브러리에 연결하는 것입니다.

    git remote add