레슨 13 · 일상 업무
커밋 푸시 및 브랜치 게시
Leo의 최신 메인을 덮어쓰지 않고 로컬 베어 원본에 의도한 브랜치를 게시합니다. 비하인드 전용 메인을 명시적으로 가져온 다음 자체 업스트림으로 기능을 게시하세요.
- 레벨: 초보자
- 5분 읽음
- 4분 동영상
- 업데이트됨
- 이 수업 전에: 페이지를 교체하지 않고 팀원의 변경 사항 가져오기
이 브라우저에 진행 상황이 저장되었습니다.
재생하면 YouTube에서 동영상이 로드됩니다(개인정보 보호 강화 모드).
무엇을 배울 것인가
- 푸시하기 전에 소스와 대상을 검사하세요.
- 병합 커밋 없이 뒤에 있는 분기를 빨리 감습니다.
- 명명된 기능 하나를 게시하고 업스트림을 확인합니다.
- 거절과 잃어버린 일을 구별하십시오.
시작하기 전에
11과가 끝난 곳에서 시작하세요. 메인/H6 체크아웃, 원본/메인/서버 H7, Leo의 바닥글 포함, 정리, 메인 6개 대 가져온 7개 커밋 및 0/1. 기능 F1은 업스트림 없이 로컬로만 존재합니다.
동영상은 Ubuntu 24.04에서 Git 2.52.0 및 GitTree 2.0으로 녹화되었습니다. 빨리 감기, 푸시 및 업스트림이 앱에서 수행되었습니다. 전후 확인과 거부된 푸시가 터미널에서 실행되었습니다. macOS 또는 Windows에서는 아무것도 실행되지 않았으며 Ubuntu는 기록된 유일한 Linux 시스템입니다. GitTree의 소스 Git 층은 2.39.0입니다.
GitTree에서 로그인을 요청합니다. 그러면 무료 플랜이 여기의 모든 단계를 다룹니다. 공급자 계정, Pro/평가판, API 자격 증명 또는 인터넷 서비스가 필요하지 않습니다. 로컬 베어 원본은 GitLab 또는 CI가 아닙니다. 모든 ID는 example.com을 사용합니다. 소스 체크아웃 내에서 이 강의를 실행하지 마세요.
연속해서가 아닌 동일한 입력에서 GitTree 또는 기본 경로를 통해 변형을 만듭니다. 읽기 전용 확인은 둘 중 하나를 따를 수 있습니다. 터미널 작업으로 설명되는 모든 준비는 기본 준비로 표시되며 결코 발명된 앱 기능이 아닙니다.
개념 및 상태 효과
푸시는 선택한 원격 참조에 대한 업데이트를 제안합니다. 모든 파일, 추적되지 않는 버퍼 또는 분기를 백업하는 것은 아닙니다. 네트워크 연결이 작동하는 경우에도 대상에서 업데이트를 거부할 수 있습니다.
들어오는 H7은 메인/H6에서 내려옵니다. 빨리 감기는 병합 커밋을 만들지 않고도 main을 해당 하위 항목으로 이동할 수 있습니다. 이 좁게 언급된 조상 작업이 여기에 소개됩니다. 발산적 통합은 이 과정의 나중 수업에 속합니다.
게시 기능/가격 카드는 F1을 새 서버 지점으로 보냅니다. GitTree에서 해당 푸시는 업스트림을 선택하지 않습니다. 나중에 동일한 분기 행에서 설정합니다. 현재 분기를 전환하지도 않고 워크플로 카드를 기본 분기로 병합하지도 않습니다. 성공적인 무작동 기본 푸시는 새로운 서버 커밋이 아닙니다.
명시적인 빨리 감기는 메인/HEAD, 인덱스 및 작업을 H7로 변경합니다. 푸시는 성공 후 선택한 서버 참조 및 로컬 추적/구성만 변경합니다. 준비되지 않은 텍스트는 저장되지 않습니다. 원격 기본은 Leo의 커밋을 유지해야 합니다.
정확한 프로젝트 상태 준비
레슨 11 이후에는 원본을 사용하고 안정적인 미리보기를 위해 배경을 가져옵니다. 새 파일 페이로드나 노트북이 추가되지 않습니다. 의도적인 비하인드 메인 거부는 앱 강제 푸시를 클릭하라는 지시가 아닌 별도의 기본 테이크입니다.
GitTree에서
팔레트: Command+Shift+P(Ubuntu에서 Ctrl+Shift+P); 정확한 이름의 명령을 입력하고 선택하십시오. 명명된 참조 작업은 인수가 없는 팔레트 바로 가기가 아닌 해당 행의 상황에 맞는 메뉴를 사용합니다.
- 기본에서 실제 소스/대상 및 0/1 개수를 검사합니다. 표준 테이크에서 이전 메인을 먼저 밀지 마십시오.
- 측면 패널의 원격 그룹에서 origin/main → Merge origin/main into main을 마우스 오른쪽 버튼으로 클릭합니다. Record it as에서 Fast-forward only을 선택한 다음 Merge를 선택합니다. Leo의 바닥글, 하나의 상위 항목 및 그래프의 직선이 있는 H7의 메인을 기대합니다.
- 아래에서 조상/클린 리드백을 실행하세요. 메인이 분기된 경우 다시 쓰기 모드를 선택하는 대신 취소하세요.
- 메인에서 툴바 Push를 클릭하세요. 알림에는 "모든 것이 이미 최신 상태였습니다."라고 적혀 있습니다. 이것은 새로운 커밋이 아닙니다.
- 로컬에서 feature 폴더를 열고 pricing-cards → Push feature/pricing-cards를 마우스 오른쪽 버튼으로 클릭합니다. 하나의 리모컨에는 대화 상자가 없습니다. "기능/가격 카드를 원본/기능/가격 카드로 푸시했습니다."라는 알림이 표시됩니다.
- 푸시가 업스트림을 설정하지 않았습니다(분기에 업스트림이 없음). 동일한 행을 마우스 오른쪽 버튼으로 클릭하고 → Upstream → Set Upstream…를 클릭하고 What should feature/pricing-cards track?에서 origin/feature/pricing-cards을 선택한 다음 Track를 선택합니다. 서버 기능 F1과 업스트림을 확인합니다.
- 결제 없이 기본 및 기능 그래프 라벨을 선택하세요. 서로 다른 팁이 유지되고 병합이 나타나지 않는지 확인하세요.
- 메인을 체크아웃하고 정리하고 두 명명된 서버 분기를 모두 확인합니다. 강제 푸시...를 선택하거나 모든 참조를 게시하지 마세요.
모든 일반 커밋의 경우: 요약이 명시된 주제입니다. 설명이 비어 있습니다. 이전 커밋 수정, 후크 건너뛰기, 서명자 추가, 다른 작성자, 커밋 후 푸시 및 빈 커밋 허용 끄기; 공동저자는 없습니다. 명명된 파일만 준비한 다음 N개 파일에 대한 변경 사항을 한 번 커밋(파일은 1개)하거나 Command+Enter를 누르세요. 실제 결과를 기다리십시오. 명시된 옵션만 변경하여 명시적으로 수정하는 수업입니다.
터미널에서
원래 데모에서 기본 대안은 다음과 같습니다.
git rev-list --left-right --count main...origin/main
git merge --ff-only --quiet origin/main
git push --quiet origin main
git push --quiet --set-upstream origin feature/pricing-cards
git rev-list --left-right --count main...origin/main
git rev-parse --abbrev-ref 'feature/pricing-cards@{upstream}'
git symbolic-ref --short HEAD
git status --short첫 번째 카운트0/1; 빨리 감기 및 조용한 푸시는 0을 종료합니다. 최종 다시 읽기는 순서대로 인쇄됩니다.
0 0
origin/feature/pricing-cards
main상태는 무음입니다. git ls-remote --heads Origin을 사용하여 서버/로컬 메인 및 기능 실제 SHA를 독립적으로 비교합니다. 변수 ID는 의도한 로컬 팁과 일치해야 합니다. 사전 빨리 감기 부정 테이크를 분리합니다: git push --quiet Origin main Exited1 실제 진단 발췌문:
! [rejected] main -> main (non-fast-forward)전체 진단 이름은 측정된 로컬 파일 URL 및 Git 힌트입니다. 해당 거부에 대한 원격 심판은 변경되지 않았습니다. URL을 위조하거나 강제로 수정하지 마세요.
결과
Where you end: 메인은 H7로 빨리 감았지만 여전히 체크아웃/정리되었습니다. 서버 메인은 H7로 유지됩니다. 기능 F1은 이제 원본/기능/가격 카드로 게시되고 이를 추적합니다. 기본 기능과 기능이 병합되지 않았습니다.
일반적인 실수
- 명명된 기능을 의미할 때 현재 기본을 게시합니다.
- 뒤늦은 거부를 Leo 덮어쓰기 권한으로 간주합니다.
- 푸시가 기능의 업스트림을 설정했거나 설정이 무엇이든 병합했다고 가정하면 앱에는 별도의 업스트림 설정... 단계가 필요합니다.
뭔가 잘못되면
거부한 후에는 다시 시도하기 전에 상위 항목/대상을 가져와서 검사하세요. 이 정확한 뒤에만 입력하려면 명시적인 빨리 감기를 사용하세요. 원격 푸시에는 일반 앱 실행 취소가 없습니다. 나중에 원격 수정을 조정합니다.
이해도를 확인해보세요
각 질문에 답한 후 그 이유를 읽어보세요. '필수'라고 표시된 질문은 수업 완료에 반영됩니다.
6개 중 0개 정답
수업을 완료하려면 필수 질문에 올바르게 답하세요.
이 브라우저에서 확인했습니다.
연습
메인/서버 H7 동등성, 기능/서버 F1 동등성, 기능 업스트림, 변경되지 않은 메인 체크아웃 및 정리 상태를 증명하십시오. 별도의 이전 기본 사본에서 H7을 잃지 않고 거부를 예측하고 관찰합니다.
귀하의 확인: 사이트에서 귀하의 컴퓨터를 볼 수 없습니다.
수업을 완료하려면 필수 질문에 올바르게 답하고 실제 연습을 확인하세요.
요약
- 정확한 목적지를 확인하세요.
- 뒤에 있는 하위 항목을 명시적으로 통합합니다.
- 병합하지 않고 하나의 분기를 게시합니다.
관련된
용어집 소개
푸시 — دبع; 게시 지점 — نسر froع; 업스트림 — العرع المتتبَّع; 빨리 감기 - تقديم سريع.
비디오 대본
영상의 나레이션, 큐별로.
성적표 표시
- 정확한 체크포인트부터 시작하세요.
- 지점 이름, 색인 그리고 작업 버전.
- 분리된 코스 사본만 준비하십시오.
- 정확한 소스와 대상을 검사하세요.
- 다음 경우에만 빨리 감기 조상이 그것을 허용합니다.
- 실제 분기가 분기된 경우 중지합니다.
- Main은 이미 목적지와 일치합니다.
- 명명된 출판 모든 지점이 아닌 기능입니다.
- 기능의 자체 업스트림을 확인하세요.
- 게시에서는 기능을 병합하지 않습니다.
- 원래 메인은 깨끗하게 남겨두세요.
- F1 출판은 무엇을 합니까?
- ref라는 이름을 보내고, 모든 작업 파일이 아닙니다.
- 정식 성공 이후에는 어떤 사실이 유지됩니까?
- 그 푸시는 이미 정렬되었습니다.
- 메인/H6을(를) 다음으로 빨리 감습니다. 하위 H7: 새로운 병합 커밋이요?
- 심판은 기존 자손으로 이동합니다.
- 입력 변경: 이전 H6을 밀어 넣습니다. 정렬 전 서버 H7.
- 네이티브 테이크가 종료1되어 H7을 유지합니다.
- 푸시는 이미 최대라고 말합니다. 날짜. F1이 출판되었나요?
- 메인의 결과는 다음과 같습니다 다른 심판에 대해서는 아무것도 없습니다.
- 어떤 최종 증거가 필요합니까?
- 각 지점의 실제 SHA를 비교하십시오.
- 실제 결과를 확인하고, 단순한 메시지가 아닙니다.
- 행동하기 전에 변경된 입력을 예측하십시오.
- 복구하기 전에 유용한 작업을 보존하세요.
- 계속하기 전에 체크포인트를 증명하세요.
- 검증된 결과를 유지 다음 단계를 위해.