{"id":13726516,"url":"https://github.com/mingrammer/git-tips","last_synced_at":"2025-05-16T15:07:26.498Z","repository":{"id":22119840,"uuid":"94848250","full_name":"mingrammer/git-tips","owner":"mingrammer","description":":books: Git 팁 모음집 (https://github.com/git-tips/tips 한국어 버전)","archived":false,"fork":false,"pushed_at":"2022-03-11T16:05:57.000Z","size":15,"stargazers_count":1026,"open_issues_count":1,"forks_count":274,"subscribers_count":48,"default_branch":"master","last_synced_at":"2025-04-12T14:16:01.408Z","etag":null,"topics":["git","git-tips"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mingrammer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-06-20T04:01:46.000Z","updated_at":"2025-03-21T05:20:56.000Z","dependencies_parsed_at":"2022-08-07T10:01:32.675Z","dependency_job_id":null,"html_url":"https://github.com/mingrammer/git-tips","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mingrammer%2Fgit-tips","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mingrammer%2Fgit-tips/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mingrammer%2Fgit-tips/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mingrammer%2Fgit-tips/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mingrammer","download_url":"https://codeload.github.com/mingrammer/git-tips/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254553958,"owners_count":22090417,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["git","git-tips"],"created_at":"2024-08-03T01:03:09.571Z","updated_at":"2025-05-16T15:07:26.447Z","avatar_url":"https://github.com/mingrammer.png","language":null,"readme":"# Git Tips\n\u003e [git tips](https://github.com/git-tips/tips)의 한국어 버전 문서입니다.\n\n[English](http://git.io/git-tips) | [中文](https://github.com/521xueweihan/git-tips) | [Русский](https://github.com/Imangazaliev/git-tips) | [Tiếng Việt](https://github.com/hprobotic/git-tips) | [日本語](https://github.com/isotai/git-tips) | [नेपाली](https://github.com/amarduwal/git-tips) | [Polski](https://github.com/mbiesiad/tips)\n\n## 팁 툴\n\n* [git-tip](https://www.npmjs.com/package/git-tip) - 아래에 나열된 팁들을 사용할 수 있는 CLI 툴 ([도커 컨테이너](https://github.com/djoudi5/docker-git-tip))\n\n## 목차\n\n\u003e 참고로 모든 명령어는 다음 버전에서 테스트 되었습니다: `git version 2.7.4 (Apple Git-66)`.\n\n* [20개 내외의 명령어로 Git 사용하기](#20개-내외의-명령어로-git-사용하기)\n* [Git과 함께 제공되는 유용한 가이드라인 보기](#git과-함께-제공되는-유용한-가이드라인-보기)\n* [내용으로 변경사항 검색](#내용으로-변경사항-검색)\n* [원격지 동기화 및 로컬 변경사항 덮어쓰기](#원격지-동기화-및-로컬-변경사항-덮어쓰기)\n* [특정 커밋까지의 모든 파일 나열하기](#특정-커밋까지의-모든-파일-나열하기)\n* [첫 번째 커밋 초기화](#첫-번째-커밋-초기화)\n* [충돌된 모든 파일 나열하기](#충돌된-모든-파일-나열하기)\n* [특정 커밋에서 변경된 모든 파일 나열하기](#특정-커밋에서-변경된-모든-파일-나열하기)\n* [마지막 커밋 이후로 스테이징되지 않은 변경사항 보기](#마지막-커밋-이후로-스테이징되지-않은-변경사항-보기)\n* [커밋을 하기 위해 스테이징된 변경사항 보기](#커밋을-하기-위해-스테이징된-변경사항-보기)\n* [스테이징된 변경사항과 스테이징되지 않은 변경사항 모두 보기](#스테이징된-변경사항과-스테이징되지-않은-변경사항-모두-보기)\n* [이미 마스터 브랜치에 머지된 모든 브랜치 나열하기](#이미-마스터-브랜치에-머지된-모든-브랜치-나열하기)\n* [이전 브랜치로 전환하기](#이전-브랜치로-전환하기)\n* [이미 마스터 브랜치에 머지된 모든 브랜치들 삭제하기](#이미-마스터-브랜치에-머지된-모든-브랜치들-삭제하기)\n* [모든 브랜치들 및 그 브랜치들의 업스트림과 마지막 커밋 나열하기](#모든-브랜치들-및-그-브랜치들의-업스트림과-마지막-커밋-나열하기)\n* [업스트림 브랜치 설정 (트래킹)](#업스트림-브랜치-설정-트래킹)\n* [로컬 브랜치 삭제](#로컬-브랜치-삭제)\n* [원격 브랜치 삭제](#원격-브랜치-삭제)\n* [로컬 태그 삭제](#로컬-태그-삭제)\n* [원격 태그 삭제](#원격-태그-삭제)\n* [로컬 변경사항을 헤드의 마지막 내용으로 되돌리기](#로컬-변경사항을-헤드의-마지막-내용으로-되돌리기)\n* [Revert: 새로운 커밋을 생성하면서 커밋 되돌리기](#revert-새로운-커밋을-생성하면서-커밋-되돌리기)\n* [Reset: 커밋 제거 (프라이빗 브랜치에서만 사용하길 권고)](#reset-커밋-제거-프라이빗-브랜치에서만-사용하길-권고)\n* [이전 커밋 메시지 변경](#이전-커밋-메시지-변경)\n* [브랜치의 커밋중 업스트림에 머지되지 않은 커밋 히스토리 보기](#브랜치의-커밋중-업스트림에-머지되지-않은-커밋-히스토리-보기)\n* [Author 수정하기](#author-수정하기)\n* [글로벌 설정에서 변경된 author로 author 재설정하기](#글로벌-설정에서-변경된-author로-author-재설정하기)\n* [원격지 URL 변경하기](#원격지-url-변경하기)\n* [모든 원격지 레퍼런스 리스트 나열하기](#모든-원격지-레퍼런스-리스트-나열하기)\n* [모든 로컬 및 원격지 브랜치 나열하기](#모든-로컬-및-원격지-브랜치-나열하기)\n* [원격지 브랜치만 나열하기](#원격지-브랜치만-나열하기)\n* [파일 변경사항의 전체가 아닌 일부만 스테이징하기](#파일-변경사항의-전체가-아닌-일부만-스테이징하기)\n* [git 배시 자동완성 사용하기](#git-배시-자동완성-사용하기)\n* [2주 전부터 현재까지의 변경사항 보기](#2주-전부터-현재까지의-변경사항-보기)\n* [마스터로부터 포크한 이후에 생성된 모든 커밋 보기](#마스터로부터-포크한-이후에-생성된-모든-커밋-보기)\n* [cherry-pick을 사용해 브랜치간 커밋 가져오기](#cherry-pick을-사용해-브랜치간-커밋-가져오기)\n* [해당 커밋 해시를 가지고 있는 브랜치들 검색하기](#해당-커밋-해시를-가지고-있는-브랜치들-검색하기)\n* [Git 명령어 별칭 지정](#git-명령어-별칭-지정)\n* [커밋하지 않은 트래킹된 파일들의 상태 저장하기](#커밋하지-않은-트래킹된-파일들의-상태-저장하기)\n* [스테이징되지 않은 변경사항들의 현재 상태를 트래킹된 파일로 저장하기](#스테이징되지-않은-변경사항들의-현재-상태를-트래킹된-파일로-저장하기)\n* [트래킹되지 않은 파일들까지 모두 포함해 현재 상태 저장하기](#트래킹되지-않은-파일들까지-모두-포함해-현재-상태-저장하기)\n* [현재 상태를 메시지와 함께 저장하기](#현재-상태를-메시지와-함께-저장하기)\n* [모든 무시된 파일, 트래킹되지 않은 파일, 트래킹된 파일들의 현재 상태 저장하기](#모든-무시된-파일-트래킹되지-않은-파일-트래킹된-파일들의-현재-상태-저장하기)\n* [저장된 모든 스태시 리스트 나열하기](#저장된-모든-스태시-리스트-나열하기)\n* [스태시 리스트에서 삭제하지 않고 스태시 적용하기](#스태시-리스트에서-삭제하지-않고-스태시-적용하기)\n* [마지막으로 저장된 스태시 상태를 적용하고 스태시 리스트에서 삭제하기](#마지막으로-저장된-스태시-상태를-적용하고-스태시-리스트에서-삭제하기)\n* [저장된 모든 스태시 삭제하기](#저장된-모든-스태시-삭제하기)\n* [스태시로부터 단일 파일 가져오기](#스태시로부터-단일-파일-가져오기)\n* [트래킹된 파일들 모두 보기](#트래킹된-파일들-모두-보기)\n* [트래킹되지 않은 모든 파일 보기](#트래킹되지-않은-파일들-모두-보기)\n* [무시된 파일들 모두 보기](#무시된-파일들-모두-보기)\n* [저장소에 새로운 워킹 트리 생성하기 (git 2.5)](#저장소에-새로운-워킹-트리-생성하기-git-25)\n* [HEAD로부터 새로운 워킹 트리 생성하기](#head로부터-새로운-워킹-트리-생성하기)\n* [파일을 삭제하지 않고 언트래킹하기](#파일을-삭제하지-않고-언트래킹하기)\n* [트래킹되지 않은 파일/디렉토리를 실제로 삭제하기 전에 어떤 파일/디렉토리가 삭제되는지 테스트 해보기](#트래킹되지-않은-파일디렉토리를-실제로-삭제하기-전에-어떤-파일디렉토리가-삭제되는지-테스트-해보기)\n* [트래킹되지 않은 파일들 강제로 삭제하기](#트래킹되지-않은-파일들-강제로-삭제하기)\n* [트래킹되지 않은 디렉토리 강제로 삭제하기](#트래킹되지-않은-디렉토리-강제로-삭제하기)\n* [모든 서브 모듈 업데이트하기](#모든-서브-모듈-업데이트하기)\n* [현재 브랜치에서 아직 마스터에 머지되지 않은 모든 커밋들 보기](#현재-브랜치에서-아직-마스터에-머지되지-않은-모든-커밋들-보기)\n* [브랜치명 수정하기](#브랜치명-수정하기)\n* ['feature' 브랜치를 마스터에 리베이스한 후 마스터에 머지하기](#feature-브랜치를-마스터에-리베이스한-후-마스터에-머지하기)\n* [마스터 브랜치 아카이브](#마스터-브랜치-아카이브)\n* [커밋 메시지는 변경하지 않고 이전 커밋 변경하기](#커밋시-파일-무시하기-예를-들어-changelog-파일)\n* [원격지에서 삭제된 원격 브랜치 레퍼런스 제거하기](#원격지에서-삭제된-원격-브랜치-레퍼런스-제거하기)\n* [첫 리비전의 커밋 해시값 가져오기](#첫-리비전의-커밋-해시값-가져오기)\n* [버전 트리 시각화](#버전-트리-시각화)\n* [트래킹된 하위폴더를 gh-pages 브랜치로 배포하기](#트래킹된-하위폴더를-gh-pages-브랜치로-배포하기)\n* [subtree를 사용해 저장소에 프로젝트 추가하기](#subtree를-사용해-저장소에-프로젝트-추가하기)\n* [subtree를 사용해 관련된 프로젝트의 최신 변경사항을 저장소로 가져오기](#subtree를-사용해-관련된-프로젝트의-최신-변경사항을-저장소로-가져오기)\n* [브랜치를 히스토리와 함께 파일로 추출하기](#브랜치를-히스토리와-함께-파일로-추출하기)\n* [번들 가져오기](#번들-가져오기)\n* [현재 브랜치명 가져오기](#현재-브랜치명-가져오기)\n* [커밋시 파일 무시하기 (예를 들어, Changelog 파일)](#커밋시-파일-무시하기-예를-들어-Changelog-파일)\n* [리베이스 전에 변경사항 스태시하기](#리베이스-전에-변경사항-스태시하기)\n* [ID로 풀 리퀘스트를 로컬 저장소로 가져오기](#id로-풀-리퀘스트를-로컬-저장소로-가져오기)\n* [현재 브랜치의 가장 최근 태그 보기](#현재-브랜치의-가장-최근-태그-보기)\n* [diff 워드 단위로 보기](#diff-워드-단위로-보기)\n* [diff 도구를 사용해 변경사항 보기](#diff-도구를-사용해-변경사항-보기)\n* [트래킹된 파일의 변경사항 무시하기](#트래킹된-파일의-변경사항-무시하기)\n* [assume-unchanged 되돌리기](#assume-unchanged-되돌리기)\n* [`.gitignore`에 명시된 파일들 삭제하기](#gitignore에-명시된-파일들-삭제하기)\n* [삭제된 파일 복구하기](#삭제된-파일-복구하기)\n* [특정 커밋으로의 파일로 복구하기](#특정-커밋으로의-파일로-복구하기)\n* [pull시 머지하는 대신 항상 리베이스 하기](#pull시-머지하는-대신-항상-리베이스-하기)\n* [모든 별칭과 설정값들 나열하기](#모든-별칭과-설정값들-나열하기)\n* [대소문자 구별 활성화](#대소문자-구별-활성화)\n* [커스텀 에디터 추가하기](#커스텀-에디터-추가하기)\n* [오타 자동 수정 활성화](#오타-자동-수정-활성화)\n* [변경사항이 어떤 릴리즈에 속하는지 확인하기](#변경사항이-어떤-릴리즈에-속하는지-확인하기)\n* [명령어 테스트 해보기 (dry-run 플래그를 지원하는 모든 명령어에서 가능)](#명령어-테스트-해보기-dry-run-플래그를-지원하는-모든-명령어에서-가능)\n* [커밋이 이전 커밋의 수정 버전임을 표시하기](#커밋이-이전-커밋의-수정-버전임을-표시하기)\n* [fixup 커밋을 일반 커밋으로 스쿼시하기](#fixup-커밋을-일반-커밋으로-스쿼시하기)\n* [커밋시 스테이징된 파일들 스킵하기](#커밋시-스테이징된-파일들-스킵하기)\n* [대화형으로 스테이징하기](#대화형으로-스테이징하기)\n* [무시된 파일들 나열하기](#무시된-파일들-나열하기)\n* [무시된 파일들 상태 출력](#무시된-파일들-상태-출력)\n* [Branch2에는 없고 Branch1에만 있는 커밋들 나열하기](#branch2에는-없고-branch1에만-있는-커밋들-나열하기)\n* [마지막 n개의 커밋 나열하기](#마지막-n개의-커밋-나열하기)\n* [이전에 충돌을 해결했던 방법을 기록하고 재사용하기](#이전에-충돌을-해결했던-방법을-기록하고-재사용하기)\n* [모든 충돌된 파일들 에디터로 열기](#모든-충돌된-파일들-에디터로-열기)\n* [unpacked 오브젝트의 갯수와 디스크 사용량 보기](#unpacked-오브젝트의-갯수와-디스크-사용량-보기)\n* [오브젝트 데이터베이스에서 도달할 수 없는 오브젝트들 제거하기](#오브젝트-데이터베이스에서-도달할-수-없는-오브젝트들-제거하기)\n* [gitweb으로 워킹 디렉토리 탐색하기](#gitweb으로-워킹-디렉토리-탐색하기)\n* [커밋 로그에서 GPG 시그니쳐 보기](#커밋-로그에서-gpg-시그니쳐-보기)\n* [글로벌 설정에서 엔트리 제거하기](#글로벌-설정에서-엔트리-제거하기)\n* [히스토리가 없는 새로운 브랜치로 체크아웃하기](#히스토리가-없는-새로운-브랜치로-체크아웃하기)\n* [다른 브랜치에서 파일내용 가져오기](#다른-브랜치에서-파일내용-가져오기)\n* [루트 커밋과 머지 커밋만 나열하기](#루트-커밋과-머지-커밋만-나열하기)\n* [대화형 리베이스로 이전 두 커밋 수정하기](#대화형-리베이스로-이전-두-커밋-수정하기)\n* [작업중인 브랜치들 모두 나열하기](#작업중인-브랜치들-모두-나열하기)\n* [이진 탐색으로 좋은/안좋은 커밋 검색하기](#이진-탐색으로-좋은안좋은-커밋-검색하기)\n* [pre-commit과 commit-msg 깃 후킹 우회하기](#pre-commit과-commit-msg-깃-후킹-우회하기)\n* [특정 파일에 대한 커밋과 변경사항 나열하기 (이름이 바뀐 파일도 추적)](#특정-파일에-대한-커밋과-변경사항-나열하기-이름이-바뀐-파일도-추적)\n* [단일 브랜치 클론](#단일-브랜치-클론)\n* [새로운 브랜치 생성과 동시에 스위칭](#새로운-브랜치-생성과-동시에-스위칭)\n* [커밋시 파일 모드 변경 무시](#커밋시-파일-모드-변경-무시)\n* [Git 터미널 색상 출력 비활성화](#git-터미널-색상-출력-비활성화)\n* [특정 명령어에 대한 색상 설정 지정하기](#특정-명령어에-대한-색상-설정-지정하기)\n* [모든 로컬 브랜치를 최근 커밋 날짜를 기준으로 정렬해 나열하기](#모든-로컬-브랜치를-최근-커밋-날짜를-기준으로-정렬해-나열하기)\n* [트래킹된 파일에서 패턴(정규식이나 문자열)에 매칭되는 라인 검색](#트래킹된-파일에서-패턴정규식이나-문자열에-매칭되는-라인-검색)\n* [저장소의 얕은 카피 버전 클론하기](#저장소의-얕은-카피-버전-클론하기)\n* [모든 브랜치에서 주어진 텍스트로 커밋 로그 검색하기](#모든-브랜치에서-주어진-텍스트로-커밋-로그-검색하기)\n* [브랜치의 첫 커밋 가져오기 (마스터 브랜치로부터 시작된)](#브랜치의-첫-커밋-가져오기-마스터-브랜치로부터-시작된)\n* [스테이징된 파일들 언스테이징하기](#스테이징된-파일들-언스테이징하기)\n* [원격 저장소에 강제 푸시하기](#원격-저장소에-강제-푸시하기)\n* [저장소명 추가하기](#저장소명-추가하기)\n* [주어진 파일의 각 라인별 author, 시간 그리고 최종 리비전명 보기](#주어진-파일의-각-라인별-author-시간-그리고-최종-리비전명-보기)\n* [Author와 제목으로 커밋 그룹핑하기](#author와-제목으로-커밋-그룹핑하기)\n* [다른 사람이 작업한 내용을 덮어쓰지 않고 강제 푸시하기](#다른-사람이-작업한-내용을-덮어쓰지-않고-강제-푸시하기)\n* [특정 author가 기여한 라인수 보기](#특정-author가-기여한-라인수-보기)\n* [Revert: 머지 복구하기](#revert-머지-복구하기)\n* [특정 브랜치의 커밋 수 출력하기](#특정-브랜치의-커밋-수-출력하기)\n* [별칭: git undo](#별칭-git-undo)\n* [오브젝트에 노트(메모) 추가하기](#오브젝트에-노트메모-추가하기)\n* [모든 깃 노트 보기](#모든-깃-노트-보기)\n* [다른 저장소에 있는 커밋 적용하기](#다른-저장소에-있는-커밋-적용하기)\n* [페치 레퍼런스 지정하기](#페치-레퍼런스-지정하기)\n* [두 브랜치의 공통 조상 커밋 찾기](#두-브랜치의-공통-조상-커밋-찾기)\n* [푸시되지 않은 커밋들 나열하기](#푸시되지-않은-커밋들-나열하기)\n* [공백 변경사항을 제외한 모든 변경사항 추가하기](#공백-변경사항을-제외한-모든-변경사항-추가하기)\n* [깃 설정 [로컬/글로벌] 수정하기](#깃-설정-로컬글로벌-수정하기)\n* [특정 구간에서 blame 정보 보기](#특정-구간에서-blame-정보-보기)\n* [Git의 논리적 변수 보기](#git의-논리적-변수-보기)\n* [패치 파일 미리 포맷팅하기](#패치-파일-미리-포맷팅하기)\n* [저장소명 가져오기](#저장소명-가져오기)\n* [특정 날짜 구간 사이의 커밋 로그 출력하기](#특정-날짜-구간-사이의-커밋-로그-출력하기)\n* [로그에서 author 제외하기](#로그에서-author-제외하기)\n* [브랜치의 수정사항 요약하기](#브랜치의-수정사항-요약하기)\n* [원격 저장소의 모든 레퍼런스 나열하기](#원격-저장소의-모든-레퍼런스-나열하기)\n* [트래킹되지 않은 파일들 백업하기](#트래킹되지-않은-파일들-백업하기)\n* [모든 git 명령어 별칭 나열하기](#모든-git-명령어-별칭-나열하기)\n* [git 상태 간략하게 보기](#git-상태-간략하게-보기)\n* [하루 전의 커밋으로 체크아웃하기](#하루-전의-커밋으로-체크아웃하기)\n* [새로운 로컬 브랜치를 원격 저장소에 푸시하고 트래킹하기](#새로운-로컬-브랜치를-원격-저장소에-푸시하고-트래킹하기)\n* [브랜치 베이스 변경하기](#브랜치-베이스-변경하기)\n* [원격 저장소에 HTTPs 대신 SSH 사용하기](#원격-저장소에-HTTPs-대신-SSH-사용하기)\n* [최신 커밋에 서브모듈 업데이트하기](#최신-커밋에-서브모듈-업데이트하기)\n* [LF에서 CRLF로의 자동 변환 막기](#LF에서-CRLF로의-자동-변환-막기)\n\n\n## 20개 내외의 명령어로 Git 사용하기\n```sh\ngit help everyday\n```\n\n## Git과 함께 제공되는 유용한 가이드라인 보기\n```sh\ngit help -g\n```\n\n## 내용으로 변경사항 검색\n```sh\ngit log -S'\u003ca term in the source\u003e'\n```\n\n## 원격지 동기화 및 로컬 변경사항 덮어쓰기\n```sh\ngit fetch origin \u0026\u0026 git reset --hard origin/master \u0026\u0026 git clean -f -d\n```\n\n## 특정 커밋까지의 모든 파일 나열하기\n```sh\ngit ls-tree --name-only -r \u003ccommit-ish\u003e\n```\n\n## 첫 번째 커밋 초기화\n```sh\ngit update-ref -d HEAD\n```\n\n## 충돌된 모든 파일 나열하기\n```sh\ngit diff --name-only --diff-filter=U\n```\n\n## 특정 커밋에서 변경된 모든 파일 나열하기\n```sh\ngit diff-tree --no-commit-id --name-only -r \u003ccommit-ish\u003e\n```\n\n## 마지막 커밋 이후로 스테이징되지 않은 변경사항 보기\n```sh\ngit diff\n```\n\n## 커밋을 하기 위해 스테이징된 변경사항 보기\n```sh\ngit diff --cached\n```\n\n\n__다른 방법:__\n```sh\ngit diff --staged\n```\n\n## 스테이징된 변경사항과 스테이징되지 않은 변경사항 모두 보기\n```sh\ngit diff HEAD\n```\n\n## 이미 마스터 브랜치에 머지된 모든 브랜치 나열하기\n```sh\ngit branch --merged master\n```\n\n## 이전 브랜치로 전환하기\n```sh\ngit checkout -\n```\n\n\n__다른 방법:__\n```sh\ngit checkout @{-1}\n```\n\n## 이미 마스터 브랜치에 머지된 모든 브랜치들 삭제하기\n```sh\ngit branch --merged master | grep -v '^\\*' | xargs -n 1 git branch -d\n```\n\n\n__다른 방법:__\n```sh\ngit branch --merged master | grep -v '^\\*\\|  master' | xargs -n 1 git branch -d # will not delete master if master is not checked out\n```\n\n## 모든 브랜치들 및 그 브랜치들의 업스트림과 마지막 커밋 나열하기\n```sh\ngit branch -vv\n```\n\n## 업스트림 브랜치 설정 (트래킹)\n```sh\ngit branch -u origin/mybranch\n```\n\n## 로컬 브랜치 삭제\n```sh\ngit branch -d \u003clocal_branchname\u003e\n```\n\n## 원격 브랜치 삭제\n```sh\ngit push origin --delete \u003cremote_branchname\u003e\n```\n\n\n__다른 방법:__\n```sh\ngit push origin :\u003cremote_branchname\u003e\n```\n\n## 로컬 태그 삭제\n```sh\ngit tag -d \u003ctag-name\u003e\n```\n\n## 원격 태그 삭제\n```sh\ngit push origin :refs/tags/\u003ctag-name\u003e\n```\n\n## 로컬 변경사항을 헤드의 마지막 내용으로 되돌리기\n```sh\ngit checkout -- \u003cfile_name\u003e\n```\n\n## Revert: 새로운 커밋을 생성하면서 커밋 되돌리기\n```sh\ngit revert \u003ccommit-ish\u003e\n```\n\n## Reset: 커밋 제거 (프라이빗 브랜치에서만 사용하길 권고)\n```sh\ngit reset \u003ccommit-ish\u003e\n```\n\n## 이전 커밋 메시지 변경\n```sh\ngit commit -v --amend\n```\n\n## 브랜치의 커밋중 업스트림에 머지되지 않은 커밋 히스토리 보기\n```sh\ngit cherry -v master\n```\n\n## Author 수정하기\n```sh\ngit commit --amend --author='Author Name \u003cemail@address.com\u003e'\n```\n\n## 글로벌 설정에서 변경된 author로 author 재설정하기\n```sh\ngit commit --amend --reset-author --no-edit\n```\n\n## 원격지 URL 변경하기\n```sh\ngit remote set-url origin \u003cURL\u003e\n```\n\n## 모든 원격지 레퍼런스 리스트 나열하기\n```sh\ngit remote\n```\n\n\n__다른 방법:__\n```sh\ngit remote show\n```\n\n## 모든 로컬 및 원격지 브랜치 나열하기\n```sh\ngit branch -a\n```\n\n## 원격지 브랜치만 나열하기\n```sh\ngit branch -r\n```\n\n## 파일 변경사항의 전체가 아닌 일부만 스테이징하기\n```sh\ngit add -p\n```\n\n## Git 배시 자동완성 사용하기\n```sh\ncurl http://git.io/vfhol \u003e ~/.git-completion.bash \u0026\u0026 echo '[ -f ~/.git-completion.bash ] \u0026\u0026 . ~/.git-completion.bash' \u003e\u003e ~/.bashrc\n```\n\n## 2주 전부터 현재까지의 변경사항 보기\n```sh\ngit log --no-merges --raw --since='2 weeks ago'\n```\n\n\n__다른 방법:__\n```sh\ngit whatchanged --since='2 weeks ago'\n```\n\n## 마스터로부터 포크한 이후에 생성된 모든 커밋 보기\n```sh\ngit log --no-merges --stat --reverse master..\n```\n\n## cherry-pick을 사용해 브랜치간 커밋 가져오기\n```sh\ngit checkout \u003cbranch-name\u003e \u0026\u0026 git cherry-pick \u003ccommit-ish\u003e\n```\n\n## 해당 커밋 해시를 가지고 있는 브랜치들 검색하기\n```sh\ngit branch -a --contains \u003ccommit-ish\u003e\n```\n\n\n__다른 방법:__\n```sh\ngit branch --contains \u003ccommit-ish\u003e\n```\n\n## Git 명령어 별칭 지정\n```sh\ngit config --global alias.\u003chandle\u003e \u003ccommand\u003e \ngit config --global alias.st status\n```\n\n## 커밋하지 않은 트래킹된 파일들의 상태 저장하기\n```sh\ngit stash\n```\n\n\n__다른 방법:__\n```sh\ngit stash save\n```\n\n## 스테이징되지 않은 변경사항들의 현재 상태를 트래킹된 파일로 저장하기\n```sh\ngit stash -k\n```\n\n\n__다른 방법:__\n```sh\ngit stash --keep-index\n```\n\n\n```sh\ngit stash save --keep-index\n```\n\n## 트래킹되지 않은 파일들까지 모두 포함해 현재 상태 저장하기\n```sh\ngit stash -u\n```\n\n\n__다른 방법:__\n```sh\ngit stash save -u\n```\n\n\n```sh\ngit stash save --include-untracked\n```\n\n## 현재 상태를 메시지와 함께 저장하기\n```sh\ngit stash save \u003cmessage\u003e\n```\n\n## 모든 무시된 파일, 트래킹되지 않은 파일, 트래킹된 파일들의 현재 상태 저장하기\n```sh\ngit stash -a\n```\n\n\n__다른 방법:__\n```sh\ngit stash --all\n```\n\n\n```sh\ngit stash save --all\n```\n\n## 저장된 모든 스태시 리스트 나열하기\n```sh\ngit stash list\n```\n\n## 스태시 리스트에서 삭제하지 않고 스태시 적용하기\n```sh\ngit stash apply \u003cstash@{n}\u003e\n```\n\n## 마지막으로 저장된 스태시 상태를 적용하고 스태시 리스트에서 삭제하기\n```sh\ngit stash pop\n```\n\n\n__다른 방법:__\n```sh\ngit stash apply stash@{0} \u0026\u0026 git stash drop stash@{0}\n```\n\n## 저장된 모든 스태시 삭제하기\n```sh\ngit stash clear\n```\n\n\n__다른 방법:__\n```sh\ngit stash drop \u003cstash@{n}\u003e\n```\n\n## 스태시로부터 단일 파일 가져오기\n```sh\ngit checkout \u003cstash@{n}\u003e -- \u003cfile_path\u003e\n```\n\n\n__다른 방법:__\n```sh\ngit checkout stash@{0} -- \u003cfile_path\u003e\n```\n\n## 트래킹된 파일들 모두 보기\n```sh\ngit ls-files -t\n```\n\n## 트래킹되지 않은 파일들 모두 보기\n```sh\ngit ls-files --others\n```\n\n## 무시된 파일들 모두 보기\n```sh\ngit ls-files --others -i --exclude-standard\n```\n\n## 저장소에 새로운 워킹 트리 생성하기 (git 2.5)\n```sh\ngit worktree add -b \u003cbranch-name\u003e \u003cpath\u003e \u003cstart-point\u003e\n```\n\n## HEAD로부터 새로운 워킹 트리 생성하기\n```sh\ngit worktree add --detach \u003cpath\u003e HEAD\n```\n\n## 파일을 삭제하지 않고 언트래킹하기\n```sh\ngit rm --cached \u003cfile_path\u003e\n```\n\n\n__다른 방법:__\n```sh\ngit rm --cached -r \u003cdirectory_path\u003e\n```\n\n## 트래킹되지 않은 파일/디렉토리를 실제로 삭제하기 전에 어떤 파일/디렉토리가 삭제되는지 테스트 해보기\n```sh\ngit clean -n\n```\n\n## 트래킹되지 않은 파일들 강제로 삭제하기\n```sh\ngit clean -f\n```\n\n## 트래킹되지 않은 디렉토리 강제로 삭제하기\n```sh\ngit clean -f -d\n```\n\n\n__다른 방법:__\n```sh\ngit clean -df\n```\n\n## 모든 서브 모듈 업데이트하기\n```sh\ngit submodule foreach git pull\n```\n\n\n__다른 방법:__\n```sh\ngit submodule update --init --recursive\n```\n\n\n```sh\ngit submodule update --remote\n```\n\n## 현재 브랜치에서 아직 마스터에 머지되지 않은 모든 커밋들 보기\n```sh\ngit cherry -v master\n```\n\n\n__다른 방법:__\n```sh\ngit cherry -v master \u003cbranch-to-be-merged\u003e\n```\n\n## 브랜치명 수정하기\n```sh\ngit branch -m \u003cnew-branch-name\u003e\n```\n\n\n__다른 방법:__\n```sh\ngit branch -m [\u003cold-branch-name\u003e] \u003cnew-branch-name\u003e\n```\n\n## 'feature' 브랜치를 마스터에 리베이스한 후 마스터에 머지하기\n```sh\ngit rebase master feature \u0026\u0026 git checkout master \u0026\u0026 git merge -\n```\n\n## 마스터 브랜치 아카이브\n```sh\ngit archive master --format=zip --output=master.zip\n```\n\n## 커밋 메시지는 변경하지 않고 이전 커밋 변경하기\n```sh\ngit add --all \u0026\u0026 git commit --amend --no-edit\n```\n\n## 원격지에서 삭제된 원격 브랜치 레퍼런스 제거하기\n```sh\ngit fetch -p\n```\n\n\n__다른 방법:__\n```sh\ngit remote prune origin\n```\n\n## 첫 리비전의 커밋 해시값 가져오기\n```sh\n git rev-list --reverse HEAD | head -1\n```\n\n\n__다른 방법:__\n```sh\ngit rev-list --max-parents=0 HEAD\n```\n\n\n```sh\ngit log --pretty=oneline | tail -1 | cut -c 1-40\n```\n\n\n```sh\ngit log --pretty=oneline --reverse | head -1 | cut -c 1-40\n```\n\n## 버전 트리 시각화\n```sh\ngit log --pretty=oneline --graph --decorate --all\n```\n\n\n__다른 방법:__\n```sh\ngitk --all\n```\n\n## 트래킹된 하위폴더를 gh-pages 브랜치로 배포하기\n```sh\ngit subtree push --prefix subfolder_name origin gh-pages\n```\n\n## subtree를 사용해 저장소에 프로젝트 추가하기\n```sh\ngit subtree add --prefix=\u003cdirectory_name\u003e/\u003cproject_name\u003e --squash git@github.com:\u003cusername\u003e/\u003cproject_name\u003e.git master\n```\n\n## subtree를 사용해 관련된 프로젝트의 최신 변경사항을 저장소로 가져오기\n```sh\ngit subtree pull --prefix=\u003cdirectory_name\u003e/\u003cproject_name\u003e --squash git@github.com:\u003cusername\u003e/\u003cproject_name\u003e.git master\n```\n\n## 브랜치를 히스토리와 함께 파일로 추출하기\n```sh\ngit bundle create \u003cfile\u003e \u003cbranch-name\u003e\n```\n\n## 번들 가져오기\n```sh\ngit clone repo.bundle \u003crepo-dir\u003e -b \u003cbranch-name\u003e\n```\n\n## 현재 브랜치명 가져오기\n```sh\ngit rev-parse --abbrev-ref HEAD\n```\n\n## 커밋시 파일 무시하기 (예를 들어, Changelog 파일)\n```sh\ngit update-index --assume-unchanged Changelog; git commit -a; git update-index --no-assume-unchanged Changelog\n```\n\n## 리베이스 전에 변경사항 스태시하기\n```sh\ngit rebase --autostash\n```\n\n## ID로 풀 리퀘스트를 로컬 저장소로 가져오기\n```sh\ngit fetch origin pull/\u003cid\u003e/head:\u003cbranch-name\u003e\n```\n\n\n__다른 방법:__\n```sh\ngit pull origin pull/\u003cid\u003e/head:\u003cbranch-name\u003e\n```\n\n## 현재 브랜치의 가장 최근 태그 보기\n```sh\ngit describe --tags --abbrev=0\n```\n\n## diff 워드 단위로 보기\n```sh\ngit diff --word-diff\n```\n\n## diff 도구를 사용해 변경사항 보기\n```sh\ngit difftool -t \u003ccommit1\u003e \u003ccommit2\u003e \u003cpath\u003e\n```\n\n## 트래킹된 파일의 변경사항 무시하기\n```sh\ngit update-index --assume-unchanged \u003cfile_name\u003e\n```\n\n## assume-unchanged 되돌리기\n```sh\ngit update-index --no-assume-unchanged \u003cfile_name\u003e\n```\n\n## `.gitignore`에 명시된 파일들 삭제하기\n```sh\ngit clean -X -f\n```\n\n## 삭제된 파일 복구하기\n```sh\ngit checkout \u003cdeleting_commit\u003e^ -- \u003cfile_path\u003e\n```\n\n## 특정 커밋으로의 파일로 복구하기\n```sh\ngit checkout \u003ccommit-ish\u003e -- \u003cfile_path\u003e\n```\n\n## pull시 머지하는 대신 항상 리베이스 하기\n```sh\ngit config --global pull.rebase true\n```\n\n\n__다른 방법:__\n```sh\n#git \u003c 1.7.9\ngit config --global branch.autosetuprebase always\n```\n\n## 모든 별칭과 설정값들 나열하기\n```sh\ngit config --list\n```\n\n## 대소문자 구별 활성화\n```sh\ngit config --global core.ignorecase false\n```\n\n## 커스텀 에디터 추가하기\n```sh\ngit config --global core.editor '$EDITOR'\n```\n\n## 오타 자동 수정 활성화\n```sh\ngit config --global help.autocorrect 1\n```\n\n## 변경사항이 어떤 릴리즈에 속하는지 확인하기\n```sh\ngit name-rev --name-only \u003cSHA-1\u003e\n```\n\n## 명령어 테스트 해보기 (dry-run 플래그를 지원하는 모든 명령어에서 가능)\n```sh\ngit clean -fd --dry-run\n```\n\n## 커밋이 이전 커밋의 수정 버전임을 표시하기\n```sh\ngit commit --fixup \u003cSHA-1\u003e\n```\n\n## fixup 커밋을 일반 커밋으로 스쿼시하기\n```sh\ngit rebase -i --autosquash\n```\n\n## 커밋시 스테이징된 파일들 스킵하기\n```sh\ngit commit --only \u003cfile_path\u003e\n```\n\n## 대화형으로 스테이징하기\n```sh\ngit add -i\n```\n\n## 무시된 파일들 나열하기\n```sh\ngit check-ignore *\n```\n\n## 무시된 파일들 상태 출력\n```sh\ngit status --ignored\n```\n\n## Branch2에는 없고 Branch1에만 있는 커밋들 나열하기\n```sh\ngit log Branch1 ^Branch2\n```\n\n## 마지막 n개의 커밋 나열하기\n```sh\ngit log -\u003cn\u003e\n```\n\n\n__다른 방법:__\n```sh\ngit log -n \u003cn\u003e\n```\n\n## 이전에 충돌을 해결했던 방법을 기록하고 재사용하기\n```sh\ngit config --global rerere.enabled 1\n```\n\n## 모든 충돌된 파일들 에디터로 열기\n```sh\ngit diff --name-only | uniq | xargs $EDITOR\n```\n\n## unpacked 오브젝트의 갯수와 디스크 사용량 보기\n```sh\ngit count-objects --human-readable\n```\n\n## 오브젝트 데이터베이스에서 도달할 수 없는 오브젝트들 제거하기\n```sh\ngit gc --prune=now --aggressive\n```\n\n## gitweb으로 워킹 디렉토리 탐색하기\n```sh\ngit instaweb [--local] [--httpd=\u003chttpd\u003e] [--port=\u003cport\u003e] [--browser=\u003cbrowser\u003e]\n```\n\n## 커밋 로그에서 GPG 시그니쳐 보기\n```sh\ngit log --show-signature\n```\n\n## 글로벌 설정에서 엔트리 제거하기\n```sh\ngit config --global --unset \u003centry-name\u003e\n```\n\n## 히스토리가 없는 새로운 브랜치로 체크아웃하기\n```sh\ngit checkout --orphan \u003cbranch_name\u003e\n```\n\n## 다른 브랜치에서 파일내용 가져오기\n```sh\ngit show \u003cbranch_name\u003e:\u003cfile_name\u003e\n```\n\n## 루트 커밋과 머지 커밋만 나열하기\n```sh\ngit log --first-parent\n```\n\n## 대화형 리베이스로 이전 두 커밋 수정하기\n```sh\ngit rebase --interactive HEAD~2\n```\n\n## 작업중인 브랜치들 모두 나열하기\n```sh\ngit checkout master \u0026\u0026 git branch --no-merged\n```\n\n## 이진 탐색으로 좋은/안좋은 커밋 검색하기\n```sh\ngit bisect start                    # Search start \ngit bisect bad                      # Set point to bad commit \ngit bisect good v2.6.13-rc2         # Set point to good commit|tag \ngit bisect bad                      # Say current state is bad \ngit bisect good                     # Say current state is good \ngit bisect reset                    # Finish search \n\n```\n\n## pre-commit과 commit-msg 깃 후킹 우회하기\n```sh\ngit commit --no-verify\n```\n\n## 특정 파일에 대한 커밋과 변경사항 나열하기 (이름이 바뀐 파일도 추적)\n```sh\ngit log --follow -p -- \u003cfile_path\u003e\n```\n\n## 단일 브랜치 클론\n```sh\ngit clone -b \u003cbranch-name\u003e --single-branch https://github.com/user/repo.git\n```\n\n## 새로운 브랜치 생성과 동시에 스위칭\n```sh\ngit checkout -b \u003cbranch-name\u003e\n```\n\n\n__다른 방법:__\n```sh\ngit branch \u003cbranch-name\u003e \u0026\u0026 git checkout \u003cbranch-name\u003e\n```\n\n## 커밋시 파일 모드 변경 무시\n```sh\ngit config core.fileMode false\n```\n\n## Git 터미널 색상 출력 비활성화\n```sh\ngit config --global color.ui false\n```\n\n## 특정 명령어에 대한 색상 설정 지정하기\n```sh\ngit config --global \u003cspecific command e.g branch, diff\u003e \u003ctrue, false or always\u003e\n```\n\n## 모든 로컬 브랜치를 최근 커밋 날짜를 기준으로 정렬해 나열하기\n```sh\ngit for-each-ref --sort=-committerdate --format='%(refname:short)' refs/heads/\n```\n\n## 트래킹된 파일에서 패턴(정규식이나 문자열)에 매칭되는 라인 검색\n```sh\ngit grep --heading --line-number 'foo bar'\n```\n\n## 저장소의 얕은 카피 버전 클론하기\n```sh\ngit clone https://github.com/user/repo.git --depth 1\n```\n\n## 모든 브랜치에서 주어진 텍스트로 커밋 로그 검색하기\n```sh\ngit log --all --grep='\u003cgiven-text\u003e'\n```\n\n## 브랜치의 첫 커밋 가져오기 (마스터 브랜치로부터 시작된)\n```sh\ngit log master..\u003cbranch-name\u003e --oneline | tail -1\n```\n\n## 스테이징된 파일들 언스테이징하기\n```sh\ngit reset HEAD \u003cfile-name\u003e\n```\n\n## 원격 저장소에 강제 푸시하기\n```sh\ngit push -f \u003cremote-name\u003e \u003cbranch-name\u003e\n```\n\n## 저장소명 추가하기\n```sh\ngit remote add \u003cremote-nickname\u003e \u003cremote-url\u003e\n```\n\n## 주어진 파일의 각 라인별 author, 시간 그리고 최종 리비전명 보기\n```sh\ngit blame \u003cfile-name\u003e\n```\n\n## Author와 제목으로 커밋 그룹핑하기\n```sh\ngit shortlog\n```\n\n## 다른 사람이 작업한 내용을 덮어쓰지 않고 강제 푸시하기\n```sh\ngit push --force-with-lease \u003cremote-name\u003e \u003cbranch-name\u003e\n```\n\n## 특정 author가 기여한 라인수 보기\n```sh\ngit log --author='_Your_Name_Here_' --pretty=tformat: --numstat | gawk '{ add += \u003c!-- @doxie.inject start --\u003e; subs += \u003c!-- @doxie.inject end --\u003e; loc += \u003c!-- @doxie.inject start --\u003e - \u003c!-- @doxie.inject end --\u003e } END { printf \"added lines: %s removed lines: %s total lines: %s\n\", add, subs, loc }' -\n```\n\n\n__다른 방법:__\n```sh\ngit log --author='_Your_Name_Here_' --pretty=tformat: --numstat | awk '{ add += \u003c!-- @doxie.inject start --\u003e; subs += \u003c!-- @doxie.inject end --\u003e; loc += \u003c!-- @doxie.inject start --\u003e - \u003c!-- @doxie.inject end --\u003e } END { printf \"added lines: %s, removed lines: %s, total lines: %s\n\", add, subs, loc }' - # on Mac OSX\n```\n\n## Revert: 머지 복구하기\n```sh\ngit revert -m 1 \u003ccommit-ish\u003e\n```\n\n## 특정 브랜치의 커밋 수 출력하기\n```sh\ngit rev-list --count \u003cbranch-name\u003e\n```\n\n## 별칭: git undo\n```sh\ngit config --global alias.undo '!f() { git reset --hard $(git rev-parse --abbrev-ref HEAD)@{${1-1}}; }; f'\n```\n\n## 오브젝트에 노트(메모) 추가하기\n```sh\ngit notes add -m 'Note on the previous commit....'\n```\n\n## 모든 깃 노트 보기\n```sh\ngit log --show-notes='*'\n```\n\n## 다른 저장소에 있는 커밋 적용하기\n```sh\ngit --git-dir=\u003csource-dir\u003e/.git format-patch -k -1 --stdout \u003cSHA1\u003e | git am -3 -k\n```\n\n## 페치 레퍼런스 지정하기\n```sh\ngit fetch origin master:refs/remotes/origin/mymaster\n```\n\n## 두 브랜치의 공통 조상 커밋 찾기\n```sh\ndiff -u \u003c(git rev-list --first-parent BranchA) \u003c(git rev-list --first-parent BranchB) | sed -ne 's/^ //p' | head -1\n```\n\n## 푸시되지 않은 커밋들 나열하기\n```sh\ngit log --branches --not --remotes\n```\n\n\n__다른 방법:__\n```sh\ngit log @{u}..\n```\n\n\n```sh\ngit cherry -v\n```\n\n## 공백 변경사항을 제외한 모든 변경사항 추가하기\n```sh\ngit diff --ignore-all-space | git apply --cached\n```\n\n## 깃 설정 [로컬/글로벌] 수정하기\n```sh\ngit config [--global] --edit\n```\n\n## 특정 구간에서 blame 정보 보기\n```sh\ngit blame -L \u003cstart\u003e,\u003cend\u003e\n```\n\n## Git의 논리적 변수 보기\n```sh\ngit var -l | \u003cvariable\u003e\n```\n\n## 패치 파일 미리 포맷팅하기\n```sh\ngit format-patch -M upstream..topic\n```\n\n## 저장소명 가져오기\n```sh\ngit rev-parse --show-toplevel\n```\n\n## 특정 날짜 구간 사이의 커밋 로그 출력하기\n```sh\ngit log --since='FEB 1 2017' --until='FEB 14 2017'\n```\n\n## 로그에서 author 제외하기\n```sh\ngit log --perl-regexp --author='^((?!excluded-author-regex).*)\n\n```\n\n## 브랜치의 수정사항 요약하기\n```sh\ngit request-pull v1.0 https://git.ko.xz/project master:for-linus\n```\n\n## 원격 저장소의 모든 레퍼런스 나열하기\n```sh\ngit ls-remote git://git.kernel.org/pub/scm/git/git.git\n```\n\n## 트래킹되지 않은 파일들 백업하기\n```sh\ngit ls-files --others -i --exclude-standard | xargs zip untracked.zip\n```\n\n## 모든 git 명령어 별칭 나열하기\n```sh\ngit config -l | grep alias | sed 's/^alias\\.//g'\n```\n\n\n__다른 방법:__\n```sh\ngit config -l | grep alias | cut -d '.' -f 2\n```\n\n## git 상태 간략하게 보기\n```sh\ngit status --short --branch\n```\n\n## 하루 전의 커밋으로 체크아웃하기\n```sh\ngit checkout master@{yesterday}\n```\n\n## 새로운 로컬 브랜치를 원격 저장소에 푸시하고 트래킹하기\n```sh\ngit push -u origin \u003cbranch_name\u003e\n```\n\n## 브랜치 베이스 변경하기\n```sh\ngit rebase --onto \u003cnew_base\u003e \u003cold_base\u003e\n```\n\n## 원격 저장소에 HTTPs 대신 SSH 사용하기\n```sh\ngit config --global url.'git@github.com:'.insteadOf 'https://github.com/'\n```\n\n## 최신 커밋에 서브모듈 업데이트하기\n```sh\ncd \u003cpath-to-submodule\u003e\ngit pull origin \u003cbranch\u003e\ncd \u003croot-of-your-main-project\u003e\ngit add \u003cpath-to-submodule\u003e\ngit commit -m \"submodule updated\"\n```\n\n## LF에서 CRLF로의 자동 변환 막기\n```sh\ngit config --global core.autocrlf false\n```","funding_links":[],"categories":["Others"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmingrammer%2Fgit-tips","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmingrammer%2Fgit-tips","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmingrammer%2Fgit-tips/lists"}