[Git 도구에 대한 상식을 간략하게 요약한 "이해하기 쉽다"]

Git에 대한 기본 지식

  1. GIT의 기본 개념: 무료 오픈 소스 분산 버전 제어 시스템. Linux 커널 개발 관리를 돕기 위해 Linus Torvalds가 개발한 오픈 소스 버전 제어 소프트웨어입니다.

  2. 초보자는 다음 두 가지만 알면 됩니다.

    - Git의 본질: 도구입니다. 가정부라고 간단히 이해하면 됩니다. 그의 임무는 집안의 다양한 일을 처리하도록 돕는 것입니다.

    - Git을 배우는 목적 : 가정부에게 지시사항을 익히는 것입니다. 지시사항이 명확하고 가정부가 이를 이해해야만 저택을 질서있게 관리할 수 있습니다.

나만의 집사 맞춤 설정(GIT)

배경: 당신은 큰 야망을 품고 수도에 왔고 눈앞에 있는 번영하는 장면이 눈을 떴습니다.다행히 당신은 귀족 출신이어서 여전히 그렇게 큰 장면을 무관심하게 찍을 수 있습니다.처음 도착했을 때 당신의 상단은 무엇입니까? 우선 사항? 명성을 얻으려면? 사업을 시작하시나요? 아니 아니 아니 아니 우리 부잣집 젊은 주인님이 수도까지 열심히 타고 오셨으니 앞으로는 무엇을 하든 먼저 즐겨야 합니다. 뒤에 짐을 가득 실은 마차를 보다가 당신은 푹 빠졌습니다. 깊은 생각. 가장 시급한 것은 현지인을 찾아 익숙해지는 것이다. 환경에 익숙해진다. 그러다가 인파를 따라가다가 웅장한 저택에 도착한다. 빨간 문 옆에 늙은 집사가 사람들에게 이야기하고 있다. 그가 데려온 견습생들.당신은 행복감을 느끼고 스스로 생각합니다:그것이 바로 내가 원하는 것입니다.

1. Git 다운로드도 매우 간단합니다. Git 링크도 여기에 제공되어 있으니 편하게 이용하시기 바랍니다.
Git 공식 웹사이트

2. git이 성공적으로 설치된 후 터미널 명령줄에 git -v만 입력하면 해당 버전 번호가 출력됩니다.
창(win+R -> cmd -> git -v)
mac(command+space-> 터미널 -> git -v) < /span>

3. 먼저 나만의 하우스키퍼를 맞춤 설정해야 합니다(한 번만 실행하면 됩니다).

//git初始化设置
git config --global user.name "Your Name" //配置您的名字

git config --global user.email  "[email protected]"//配置您的邮箱

git config --global credential store //(选配)配置启用凭证存储,第一次从远程存储库中拉取或推送时,系统会询问您用户名和密码。

매개변수 설명
생략(로컬): 로컬 구성, 로컬 창고에만 유효
–global: 전역 구성, 모든 창고에 유효♥< / a>
–system: 시스템 구성, 모든 사용자에게 유효

구성이 완료되었습니다. Git 구성 정보를 확인하세요.

git config --global --list // 查看配置信息

거주지 사용자 정의(저장소)

배경: 몇 가지 작업을 거쳐 전담 집사가 배치된 지금, 주인과 하인인 두 사람이 수도의 거리에서 혼란스러운 표정을 짓고 있다. 집사는 어느 저택에 대한 지시를 요청한다. 당신을 돌보는 데 도움을 줄 사람이 필요합니다. 당신은 처음 도착했을 때 맨션이 없다는 것을 방금 깨달았습니다! ! ! 착해요, 농담이 아니네요. 집사가 당신의 문제를 눈치채고 머리를 긁적이며 참고할 수 있도록 두 가지 계획을 제안했습니다.

1. 적당한 장소를 찾아 그 자리에서 저택을 지으세요.

git init <project-name>  //创建一个新的本地仓库 ( 省略project-name则在当前目录创建。 )

2. 원하는 집을 구입할 중개인을 찾으세요.

git clone <url> //克隆一个远程仓库,<url>代表远程仓库SSH链接

GIT 스튜어드의 위대한 미래(4개 지역, 4개 주)

배경: 헌신적인 집사님의 조언을 듣고 나면 더 이상 헤매지 않고, 집을 직접 지어야 한다는 생각에 시간과 노력이 많이 소요됩니다. 막대한 부를 가진 당신은 망설임 없이 후자를 선택합니다. 중개인이 살펴봅니다. 대기업이 당신의 집에 찾아와 서둘러 당신의 요구를 확인합니다. 잠시 후, 당신의 필요에 따라 중개업자는 당신의 기준에 맞는 꿈의 맨션을 추천합니다. 손 한번만 흔들면 이 유명한 저택이 이미 당신의 이름으로 되어있습니다. . 가정부를 데리고 이 큰 저택에 들어갑니다. 외관이 매우 웅장합니다. 저택에 들어서면 얼굴에 바람이 불고, 꽃이 피고, 정자와 옥정, 기묘한 산과 바위를 볼 수 있습니다. 거리에서. 작은 다리와 흐르는 물을 자세히 보면 시냇물이 졸졸졸 흐르고 새들이 지저귀고 꽃향기가 난다. 그것은 천국과 같습니다. 즉시 베이징에 있는 저택으로 정식으로 이사하고 집에 있는 모든 것을 집사에게 맡깁니다. 헌신적인 집사는 기대에 부응하고 며칠 내에 저택을 정리합니다. 4개의 주요 지역과 3개의 상태로 구분됩니다. 너의 요구. …

파일 저장을 위한 4개 영역

1.작업 디렉터리: 로컬 작업 디렉터리: 우리가 운영하는 디렉터리입니다.
2.스테이징 영역/인덱스: : Git에 제출할 항목을 임시로 저장하는 데 사용되는 중간 영역 수정 사항 창고의 내용.
3.로컬 저장소: git init 명령으로 생성된 저장소에는 전체 프로젝트 기록과 주요 프로젝트인 메타데이터가 포함되어 있습니다. git이 코드와 버전 정보를 저장하는 위치입니다.
4.원격 저장소: : 원격 서버에서 호스팅되는 웨어하우스입니다. 일반적으로 사용되는 것에는 GitHub, GitLab 및 Gitee가 있습니다.

파일의 4가지 상태(git 상태)

1.추적되지 않음(Untrack): git에서 관리되지 않은 새로 생성된 파일의 상태입니다.
2.Unmodified(Unmodified): git에서 관리하고 있으며 수정되지 않은 파일입니다.
3.수정됨: 파일이 수정되었으나 임시저장 영역에 추가되지 않았습니다. .
4.Staged(스테이지) : 수정이 완료된 후의 상태입니다.

그림은 다양한 상태 간의 관계를 명확하게 이해하는 데 도움이 됩니다.
여기에 이미지 설명을 삽입하세요.

Git 생성 후 Git과 함께 제공되는 일부 특수 파일(간단히 가사도우미와 함께 제공되는 기술이라고 이해하면 됨)
여기에 이미지 설명을 삽입하세요.

Git Butler의 공통 명령 시리즈

배경: 시간이 흐르고 시간이 흐릅니다. 물론 당신의 비범한 재능 때문에 현 상태에 만족하지 않는 당신은 당신의 관리 하에 티켓 트레이딩(은행)을 열고 전국 9개 주에 지점을 설립했으며 안정의 중심에 당신 자신이 앉아 있습니다. 수도에서. 귀하의 금융 제국은 하늘에 뿌리를 둔 큰 나무와 같습니다. 각 세미콜론은 큰 나무의 가지와 같습니다. 자체 세미콜론으로 귀하가 할당한 작업을 완료합니다. 귀하가 이를 쉽게 관리할 수 있도록 거대한 금융 제국이 먼저 다양한 세미콜론의 예금 및 영수증 장부를 수도의 창고로 운송하십시오. 전속 집사 GIT가 각 세미콜론과 총계정 원장 정보 간의 상호 작용에 대한 일련의 규칙을 공식화했습니다.

1.Git 루틴 프로세스(새 파일 -> 원격 창고)

1. 임시저장공간(git add)에 파일을 저장합니다.

git add <file> //添加目标文件到暂存区

git add *.txt //将某一类文件一同添加进暂存区例所有的.txt文件

git add . //将本地所有已跟踪的文件加入到暂存区

2. 스테이징 영역에서 로컬 창고에 저장(git commit)

git commit -m [message] //将暂存区文件提交进本地仓库,message可以是一些备注信息
git log --oneline  //查看简洁版提交记录

3. 파일을 추가하고 제출하는 단계는 한 단계로 요약될 수 있습니다.

git commit -am "message" //将提交所有已修改的文件到本地仓库。

4. 수정 사항을 확인하고 원격 창고 및 로컬 창고 정보를 동기화합니다.

git show //查看本地仓库做的修改

git pull //提交前的同步操作

5. 원격 창고에 제출

git push //提交到远程仓库

2. 버전 롤백의 4가지 상황

  • 작업공간에서 파일 롤백
git checkout -- filename  //在工作区的文件可用此方法回退。
  • 파일은 준비 영역에서 롤백됩니다.
git restore --staged <file> //撤销暂存区的文件, 重新放回工作区 ( git add的反向操作)
  • 파일은 로컬 창고에서 롤백됩니다.
git log --oneline  //查看简洁版提交记录<commit_id>
git reset --hard <commit_id>  //回退到相应的版本
  • 파일이 이미 원격 저장소에 있습니다.
//同第三步但需要执行强推操作
git log --oneline  //查看简洁版提交记录<commit_id>

git reset --hard <commit_id>  //回退到相应的版本

git pull  //git pull将旧版本重新上传到远程仓库,如果报错说版本低,需要强推上去 git pull -f

3. 지역별 차이점 비교

  • 버전 업로드 전 비교 (git commit -m 전 비교)
git diff HEAD  //比较工作区和版本库之间的差异,HEAD指的是分支最新提交节点

git diff --cached //比较暂存区和版本库之间的差异
  • 로컬 웨어하우스에 업로드 후 버전번호 생성 후 비교
git log --oneline //查看已提交到本地仓库的版本

git diff <版本号1> <版本号2>

//最经常用到的是比较当前版本和上一个版本之间的差异
git diff HEAD~ HEAD  //(git diff HEAD~2 HEAD)代表提交之前的二个版本以此类推。

git diff HEAD^ HEAD  //与~一个意思
  • 파일의 차이점 비교
git diff + <文件名称>  //用于查看某一文件的差异

4. 저장소에서 파일 삭제

옵션 1:
①먼저 rm <file1.txt>를 사용하여 로컬 작업공간에서 대상 파일을 삭제합니다.
②웨어하우스 상태 확인 git status (임시저장영역에 있는 파일을 업데이트하라는 메시지가 표시됩니다)
③git ls-files 임시저장영역에 있는 파일을 봅니다. (보통 임시저장영역에 있는 내용이 업데이트된 것을 볼 수 있습니다.) 삭제되지 않음)
④git add .(임시저장영역의 파일 업데이트)
Submit git commit -m "submit format"

옵션 2: (rm 명령은 로컬 작업공간 및 임시 저장 영역의 파일을 삭제합니다.)
① git rm file2.txt
② git status 웨어하우스 상태 보기(파일도 삭제됨)
③ git ls-files 임시 저장 영역의 파일 보기
git commit 제출 - m "제출 형식"

Git 브랜치 관련 지식 요약

배경: 책은 위에서 계속됩니다.각지의 창고에는 다양한 재료가 쌓여 있다고 합니다.그러나 당신은 천성적으로 보헤미안이며 이 거대한 상업 및 금융 제국을 관리하는 데 너무 많은 시간과 경험을 소비하고 싶지 않습니다. 관리는 전담집사에게 넘어갑니다. 시간이 지날수록 매출은 점점 더 커지고 있습니다. 전집사만으로는 이 막대한 자산을 관리하기에는 더 이상 부족합니다. 시간이 오래 걸리지 않았습니다. 똑똑하고 뭔가 생각해보세요. 좋은 생각은 지우저우에 여러 가지 지점을 세우는 것입니다. 각 지점에는 전담 관리인이 있습니다. 각 관리인은 여기에서 지역 창고라고 하는 가장 큰 산업 창고를 관리합니다. 그들은 서로 다른 지점을 설정할 수 있습니다. 자신의 필요에 따라 가지를 병합합니다. 서브 러더의 조타 또는 취소는 현지 창고의 자재를 풍부하게 하는 데 사용됩니다. 관련 문제를 처리할 때 문제가 있는 서브 러더로 가야 합니다. 그들은 순종합니다. 귀하의 주문에 따라 이 지역 창고는 모든 자재를 다음으로 전송할 수 있습니다. 수도의 원격 창고에서는 모든 일이 매우 빠르게 이루어집니다. 이러한 좋은 방법을 사용하면 점점 더 많은 산업을 통제할 수 있습니다. 참을 수 없습니다. 이제 더 이상 세계일주를 하기로 결심합니다.

자식의 분기

1. 현재 창고에 있는 지점을 확인하세요.

git branch //查看当前您所在的仓库中所有分支

2. 새 지점 만들기

git branch <branch_name>  //创建一个新的分支(分舵)

git checkout -b <branch-name> //切换到指定分支, 并切换到新分支

3. 지점을 전환하는 두 가지 방법

//两种切换方法,区别在于避免checkout有歧义,故专门使用该指令切换分支
git checkout <branch_name> //切换到目标分支

git switch <branch_name> //切换到目标分支

4. 가지를 병합하는 두 가지 방법

//将不同分支合并到当前分支中,merge后面的分支名是将要被合并的分支。
//例如我们需要把dev合并到main分支上时,首先先切入main分支后再执行git merge dev操作达到目的。

git merge <branch_name>  //将<branch_name>分支合并到您当前所在的分支上

git rebase <branch-name> //在任意分支上执行变基操作将两分支合并到一起

git log --graph --oneline --decorate --all  //查看合并分支图

지식 보충:

//查看图形化页面的提交记录原本命令
git log --graph --oneline --decorate --all

//命令别名化   
alias graph="git log --oneline --graph --decorate --all"

//之后两者就是等价状态
graph
4.1 두 병합 방법의 차이점과 문제점
  • 병합
    ①병합 성공 후에도 원래 브랜치는 여전히 존재합니다. 중복되는 브랜치를 피하기 위해 해당 브랜치를 삭제할 수 있습니다.
git branch -d <branch_name> //  如果合并后一个分支不需要了,就可以使用该命令删除它

git branch -D <branch_name> //如果一个分支还是没有合并就不要了,就需要用-D强制删除

② 이 병합 방법은 병합 충돌이 발생할 수 있으므로 수동으로 병합하거나 병합을 종료해야 합니다.
오류 보고 스타일

//手动合并合并完成再进行提交到本地仓库
git diff / git status //进行对比操作查看冲突文件,进行手动修改

git commit -am "name" //name为提交备注

//终止合并
git merge --about  //终止合并
  • 리베이스(rebase) 병합
    리베이스 병합 설명: 아래와 같이 초기 병합은 중간 상태입니다. dev 브랜치에서 리베이스 작업을 수행한다면, 먼저 dev 브랜치와 메인 브랜치의 공통 조상인 main3을 찾고, 메인 브랜치에서 최신 커밋 기록인 main5를 찾아 전체 dev 브랜치를 메인 브랜치 뒤에 접목시키고, 하나의 지점으로 병합합니다.

메모리 기술: 리베이스 작업이 수행되는 분기에서 해당 분기는 리베이스 후 기본 분기 위에 있게 됩니다.
여기에 이미지 설명을 삽입하세요.

4.2 병합과 리베이스의 장단점 분석
  • 병합
    장점: 원래 분기의 제출 기록을 파괴하지 않으므로 쉽게 추적하고 볼 수 있습니다.
    단점: 추가 제출 노드가 생성되고 분기 그래프가 더 복잡해집니다.
  • 리베이스(퍼블릭 브랜치에서 리베이스 작업을 수행하지 않음)
    장점: 추가 커밋 레코드가 추가되지 않아 상대적으로 직관적이고 깔끔한 선형 기록이 형성됩니다.
    단점: 제출 기록을 변경하고 현재 분기 분기의 노드를 변경하므로 공유 분기에서는 사용하지 마십시오.

5.git 숨김

사용 시나리오: 아직 완료되지 않은 브랜치에서 새로운 기능을 개발 중입니다. 중간에 처리해야 할 긴급한 버그에 대한 피드백이 있지만 새 기능이 중간에 개발되어 제출을 원하지 않습니다.

Stash 작업은 현재 작업 사이트를 "저장"하고 나중에 사이트가 복원될 때 작업을 계속할 수 있습니다.

1. 브랜치에 변경사항이 있는 경우 커밋하지 않고서는 커밋하거나 브랜치를 전환할 수 없습니다.
지점을 전환할 수 없습니다.
0. 이 순간 상태를 저장합니다

git stash save "message"  //massage是您存储写的信息,方便二次打开
//-u 参数表示把所有未跟踪的文件也一并存储;
//-a 参数表示把所有未跟踪的文件和忽略的文件也一并存储;
//save参数表示存储的信息, 可以不写。

해결책:
① 로컬 저장소 목록을 확인하여 항목 수를 확인하고 필요에 따라 복원하세요.

 git stash list  //查看所有stash
 git stash pop //恢复最近的一次stash

②목록을 확인하여 삭제해야 할 버전이 있는지 확인하세요.

git stash drop n //n指代是您删除{
    
    n}的序列号
git stash clear //删除所有的stash

③필요에 따라 지정된 버전으로 복원

git stash pop stash@{
    
    n} //n为指定的版本,stash@{
    
    2}表示第三个stash, stash@{
    
    0}表示最近的stash。
//推荐apply
git stash apply n //n指代是您删除{
    
    n}的序列号

//pop和apply的区别是, pop会把stash内容删除, 而apply不会。
可以使用git stash drop 来删除stash。

지점 관리 및 워크플로 모델(이해)

GitFlow 모델

GitFlow 모델: 브랜치는 5가지 유형으로 구분됩니다.

①메인: 메인라인 브랜치/베이스라인 브랜치: 프로젝트의 최신 안정 버전 코드를 포함하고 있어 메인라인 브랜치 코드를 릴리스할 수 있습니다.
②핫픽스: 온라인 버전 버그 핫픽스 브랜치: 주요 기능은 온라인 문제를 해결하는 것이며, 수리가 완료된 후 다시 메인 브랜치로 병합되며, 일반적으로 수리가 완료된 후 해당 버전이 삭제됩니다.
③개발: 개발 브랜치(코어): 메인 라인 브랜치와 분리되어 있으며, 개발 및 테스트를 위한 프로젝트의 최신 개발 버전 코드가 포함되어 있습니다.
④기능 분기(예: 기능-로그인-페이지): 새로운 기능을 개발하는 데 사용됩니다.
⑤릴리스: 시험판 분기: ③릴리스 계획에 따라 버전 릴리스 프로세스를 추가로 실행합니다.

메인 브랜치 및 보조 브랜치
메인 브랜치(장기 존재): 메인 브랜치 + 개발 브랜치
보조 브랜치(각각 완료 후 삭제) 함수) ): 핫핏+기능 분기+릴리스

버전 번호를 지정하는 git 태그

git tag <tag-name> //给当前的提交打上标签, 通常用于版本发布。

버전 번호

GitHubFlow 모델(체계적인 기업에서 일반적으로 사용됨)

①팀원들은 자신의 브랜치를 메인 브랜치와 분리하여 개발하고 테스트합니다.
②팀원은 로컬 브랜치에서 코드 추가/커밋을 제출할 수 있습니다.
③개발이 완료된 후 풀 요청 작업(PR 병합 요청)을 수행할 수 있습니다. 팀원은 검토(커밋 논의 및 검토) -> 배포
④브랜치 명명 사양, 브랜치 생성 사양 및 브랜치 병합 사양을 수행할 수 있습니다.
좋은 습관

원격 창고 관련 지식 요약

배경: 처음 수도에 왔을 때 많은 돈을 들여 구입한 큰 저택이 몇 년 만에 상업 및 금융 제국의 조타수가 되었다는 사실을 기억한 적이 있습니까?그것은 수천 헥타르의 면적을 차지합니다. 셀 수 없이 많은 정자가 있습니다. 헌신적인 집사의 관리를 받은 후 귀하의 저택은 지난 몇 년간 자주 확장되었습니다. Tianxia Jiuzhou 지점이 설립됨에 따라 귀하의 저택은 총체적인 지배자가 되었습니다. 각 지점의 노력으로 이미 여러 곳에 있는 서브 러더 창고의 경우, 귀하의 맨션 창고가 그보다 더 고급스럽습니다. 자재가 모두 들어있는 잘 알려진 원격 창고입니다. 일정 시간이 지나면 각 지역의 창고에서 물품을 자연스럽게 옮겨야 합니다. 재료는 공물로 보내집니다. 이때 당신은 이미 부자이지만 수도에서 유명한 거물입니다. 그러나 당신은 일이 바쁘고 천성적으로 자유롭습니다. 이 지루한 일과 큐슈의 공물을 없애기 위해 그들에게 더 많은 권한을 주셨습니다. 거주지의 원격 창고를 추가, 삭제, 수정할 수 있습니다. 귀하의 필요에 따라 동시에 해당 자료를 정기적으로 귀하의 거주지에 밀어 넣을 수도 있습니다.인생에서 이보다 더 영광스러운 것은 없습니다...

로컬 창고와 원격 창고 간의 상호 작용

① 원격 창고 추가

git remote add <remote-name> <remote-url> //添加远程仓库

②원격 창고 보기

git remote -v //查看远程仓库

③원격 창고 삭제

git remote rm <remote-name>  //删除远程仓库

④원격 창고 이름 ​​바꾸기

git remote rename <old-name> <new-name> //重命名远程仓库。

⑤ 원격 창고에서 코드를 가져옵니다.

git pull //默认拉去代码
git pull <remote-name> <branch-name> //从远程仓库拉取代码。 默认拉取远程仓库名origin的master或者main分支。

⑥원격 창고에 코드를 푸시하세요.

git push //推送代码进入远程仓库

7모든 원격 지점을 가져옵니다.

git fetch <remote-name> //获取所有的远程分支

⑧원격지점 전체보기

git branch -r  //查看远程分支

기사 요약:

배경: 어떻게 하면 사업 제국을 더욱 발전시킬 수 있을지, 어떻게 하면 막대한 부를 가지고 사업을 더 확장할 수 있을지 고민하고 있을 때, 하늘에서 천둥이 터지고 잠에서 깨어나 자리에 앉습니다. 아름다운 건물, 작은 다리, 흐르는 것은 어떨까요? 물, 새들의 노래, 향기로운 꽃, 그리고 막대한 부? 그것은 단지 꿈일 뿐...

기사의 출처

이 글은 샤오셩이 사회에 진출하고 활동한 후 인터넷에서 본 몇몇 훌륭한 강좌와 자신의 공부를 요약한 것입니다. 시간이 충분하다면 GIT에 가셔도 됩니다. 과정 해당 학습을 수행하세요. 이 과정은 매우 상세하므로 강력히 추천합니다!

원래 창작의도

읽어주셔서 감사합니다. 저도 갑자기 충동이 나서 git을 배우고 얻은 것을 여러분과 공유하고 싶었습니다. 한편으로는 기억을 깊게 하기 위해 제가 직접 메모를 했습니다. 다른 한편으로는 CSDN에서 저에게 제공했습니다. 공부와 생활에 많은 도움이 되었습니다. 모두가 제 글을 좋아했으면 좋겠습니다. 그런데, 읽고 난 후 추가하거나 수정해야 할 사항이 있으면 댓글로 알려주세요. 조언을 해주셨으면 좋겠습니다. . 함께 발전해보세요!

추천

출처blog.csdn.net/weixin_48495360/article/details/134681589