초보자를 위한 32가지 Git 명령 치트 시트

게시 됨: 2022-09-23

GIT 명령 치트 시트는 개발자를 위한 편리한 참조이며 git 프로젝트에 가장 일반적으로 사용되는 명령을 포함합니다.

GIT 란 무엇입니까?

GIT는 사용자가 코드, zip, 텍스트 또는 전체 프로젝트를 포함한 파일을 저장할 수 있는 오픈 소스 리포지토리입니다.

협업, 버전 제어, 프로세스 제어 등과 같은 여러 기능이 있습니다. GIT는 파일을 더 효율적으로 저장하고 다른 버전 제어 시스템보다 더 나은 무결성을 제공합니다. Git은 명령줄 도구입니다.

깃허브란?

깔끔한 사용자 인터페이스 덕분에 개발자를 위한 허브인 GitHub는 가장 널리 사용되는 버전 관리 시스템이 되었으며 누구나 어디서나 액세스할 수 있습니다.

Git 워크플로

Git에는 다양한 워크플로가 있으며 모든 프로젝트에는 요구 사항에 따라 워크플로가 있어야 합니다. Git 워크플로는 프로젝트를 정기적으로 배포하는 팀을 돕는 가벼운 분기 기반 워크플로입니다.

예를 들어, Git 워크플로를 분기하면 리포지토리의 로컬 복사본이 생성됩니다. 따라서 각 개발자에게는 로컬 작업 공간과 중앙 저장소가 있습니다. 이러한 종류의 워크플로는 여러 개발자가 관련되어 있을 때 유용하며 개발자가 기본 리포지토리를 변경하기 전에 분기된 복사본에 대해 공동 작업을 수행할 수 있습니다.

Git이 필요한 이유는 무엇입니까?

Git은 버전 제어 시스템이므로 개발자는 변경 사항을 저장하고, 다른 사람이 볼 수 있도록 하고, 변경 사항을 다른 사람과 병합하는 등의 작업을 지속적으로 수행합니다.

Git 리포지토리에 대한 변경 사항에 대해 개발자는 올바른 작업에 대한 올바른 명령을 알아야 합니다. 다음은 중요하고 일반적으로 사용되는 Git 명령 목록입니다.

일반적인 Git 명령

자식 추가

지정된 파일을 스테이징에 추가하려면

 git add <file> -- add a specific file git add * -- add all the files

자식 아카이브

커밋, 분기 및 트리의 아카이브를 만들고 여러 파일을 하나로 결합합니다. 필요할 때 파일을 추출하여 내용을 검색할 수 있습니다

git archive HEAD — 리포지토리의 HEAD 참조에서 아카이브 생성

git archive output = '.tar' — 아카이브된 파일을 지정된 위치에 저장합니다.

git archive --format=tar.gz — tar, zip, tar.gz와 같이 아카이브된 파일의 형식을 지정합니다.

자식 분기

저장소의 모든 분기를 나열합니다. 분기가 지정되면 이름을 가진 새 분기가 생성됩니다. 분기를 삭제하려면 분기 이름과 함께 -d 옵션을 사용하십시오. 현재 분기의 이름을 바꾸려면 -m을 사용합니다.

git branch — 모든 브랜치를 나열합니다.

git branch <branch_name > — 'branch_name'이라는 새 브랜치를 생성하지만 새 브랜치를 체크아웃하지 않습니다.

git branch -d <branch_name> — 분기를 삭제하고 병합되지 않은 변경 사항이 있으면 삭제를 방지합니다.

git branch -D <branch_name> — 병합되지 않은 변경 사항이 있더라도 분기를 강제로 삭제합니다.

git branch -m <branch2> — 현재 분기의 이름을 바꿉니다.

자식 고양이 파일

리포지토리 개체의 내용 또는 크기/유형 정보 표시

git cat-file <object> — 객체 내용을 보여줍니다.

git cat-file -t <object> — 객체의 유형을 표시합니다.

git cat-file -s <object> — 객체의 크기를 보여줍니다.

git cat-file -p <object> — 개체의 유형을 예쁜 방식으로 인쇄합니다.

git cat-file -e <object> — 개체의 형식이 잘못되었거나 존재하지 않는 경우 stderr에 오류를 표시합니다.

git cat-file <type> <object> — 객체의 원시 내용을 보여줍니다.

자식 체크 아웃

저장소의 다른 분기 간에 전환하려면 '실행 취소'가 없으므로 주의해서 사용하십시오.

git checkout <branch_name> — 지정된 브랜치를 체크아웃합니다.

git checkout -b <branch_name> — 새 분기를 만들고 이 분기로 전환

예를 들어:

 C:\Users\geekflare>git checkout -b development_branch Switched to a new branch 'development_branch'

청소하다

작업 감독을 정리합니다. 커밋된 파일은 제거되지 않습니다.

git clean -n — 제거할 파일을 나열합니다.

git clean -f — 파일을 제거합니다.

자식 클론

기존 저장소의 사본을 새 디렉토리에 작성하십시오. 중앙 저장소의 개발 사본을 얻는 데 유용합니다.

git clone <central_repo> <new_dir> — 중앙 저장소의 복사본을 새 디렉토리에 생성

예를 들어:

 C:\Users\geek>git clone geekflare master Cloning into 'master'… done.


git clone -branch <branch> <repo> — 언급된 저장소에서 분기를 복제합니다.

자식 커밋

다른 사람들이 볼 수 있도록 변경 사항을 준비 환경에 저장합니다.

git commit — 변경 사항을 스테이징에 커밋

git commit -m <useful_msg> — 커밋 시 변경된 사항을 강조 표시하는 메시지를 제공합니다.

git commit -a — 스테이징 없이 변경 사항을 직접 커밋

samplefile.txt라는 파일을 작업 디렉토리에 추가했고 파일을 커밋하려고 한다고 가정해 보겠습니다. 위의 명령을 내리면 다음과 같이 출력됩니다.

 Please enter the commit message for your changes. Lines starting with '#' will be ignored, and an empty message aborts the commit. On branch master Initial commit Changes to be committed: new file: samplefile.txt

메시지를 전달하면 변경 사항이 커밋됩니다.

 C:\Users\geekflare>git commit -m 'samplemsg' [integration_branch (root-commit) ed52dd0] 'samplemsg' 1 files changed, 24 insertions(+) create mode 100644 samplefile.txt

자식 구성

속성 값을 쓸 구성 수준을 지정합니다. '로컬' 수준이 기본값입니다(아무것도 지정되지 않은 경우).

git config –local — 리포지토리의 .git 디렉토리에 구성을 저장합니다.

git config –global — 사용자의 홈 디렉토리에 구성을 저장합니다.

git config –system — 모든 사용자 및 저장소의 구성을 포함하며 루트의 git 구성 파일에 있습니다.

자식 차이

스테이징 전, 스테이징 시, 스테이징(커밋) 후 수행할 수 있는 git repo의 변경 사항을 비교합니다.

git diff — 아직 준비되지 않은 repo 변경 사항 추적

git diff --staged — 커밋되지 않은 준비된 파일의 변경 사항을 추적합니다.

git diff HEAD — 커밋 후 파일 변경 사항 추적

git diff <commit1_id> <commit2_id> — 두 커밋 간의 변경 사항을 추적합니다. ' git log -p --follow --filename '을 사용하여 commit_ids를 찾을 수 있습니다.

자식 가져오기

분기 또는 전체 원격 저장소 가져오기

git fetch <remote-url> — 원격 저장소 URL에서 전체 저장소 가져오기

git fetch <branch_url> <branchname> — 특정 브랜치를 가져옵니다.

git fetch -all — 원격 저장소의 모든 분기를 가져옵니다.

git fetch origin — 로컬 리포지토리를 원격 리포지토리의 새로운 변경 사항과 업데이트 및 동기화

자식 fsck

파일 시스템 검사 K 명령 은 데이터베이스 개체의 유효성연결성 을 확인합니다. 개체의 SHA-1ID와 개체가 만드는 연결을 확인합니다. Fsck는 손실된 커밋 및 파일을 복구하는 데 유용합니다.

git fsck –full

자식 GC

현재 저장소에서 가비지 수집을 실행하고 사용하지 않는 파일을 정리합니다.

git gc

자식 그렙

저장소에서 특정 컨텐츠를 검색합니다. Git은 다양한 방법으로 검색할 수 있는 다양한 옵션을 제공합니다.

git grep -i 'search_term' — 대소문자를 무시하여 검색 [남자와 남자는 같을 것입니다]

git grep -f <file_name> — 특정 파일의 일치하는 패턴 표시

git grep -e 'search-term' — 패턴 일치에 -e 사용

git grep -E 'regexp|multiple_exp' – 정규식 검색, 파이프(OR) 연산자를 사용하여 여러 개 검색 가능

git grep -n 'expr' — 일치하는 줄의 접두사 줄 번호

git grep -c 'expr' — 각 줄 대신 일치하는 줄 수 표시

자식 ls-트리

현재 디렉터리에서 트리 개체의 내용을 나열합니다.

git ls -tree -d <path> — 자식이 아닌 지정된 트리 항목만 표시

git ls -tree -r — 하위 트리로 재귀

git ls -tree -l — 파일(blob) 객체의 크기 표시

git ls -tree --name-only — 긴 출력이 아닌 파일 이름만 표시

git ls -tree --full-name — 현재 디렉토리에 상대적인 경로뿐만 아니라 전체 경로 이름을 표시합니다.

예시:

 C:\Users\geek>git ls-tree --full-tree -r HEAD 100644 blob e883e60087e84f1660a9673ccb86eb0adc4f004d samplefile.txt 100644 blob 1426dc6fbff0677a484b248983a8740ff30fbb80 sample_jsindex.js

자식 초기화

새 빈 저장소를 만듭니다. git 프로젝트를 만들기 위해 실행하는 첫 번째 명령입니다.

git init — 작업 디렉토리에 .git 저장소를 생성합니다.

예를 들어 'geekflare'라는 새 저장소를 만들려면 다음과 같이 명령을 지정합니다.

 $ git init geekflare Initialized empty Git repository in C:/Users/geek/geekflare/.git/

자식 인스타 웹

브라우저를 통해 git 저장소를 탐색하는 사용자 인터페이스. CGI 스크립트 GitWeb을 사용합니다.

git instaweb --httpd=webrick — 서버(httpd)를 시작하고 페이지에서 웹 브라우저를 엽니다.

서버를 중지하려면 위의 명령을 –stop 옵션과 함께 사용합니다.

자식 로그

git 저장소의 모든 활동을 기록합니다.

git log — 마지막 몇 개의 커밋을 표시합니다.

git log --oneline — 출력을 SHA의 처음 7자로 표시하고 커밋 메시지를 줄당 하나의 커밋으로 표시합니다.

git log stat — 추가/제거된 줄 수, 변경된 총 레코드 요약, 추가/제거된 줄과 같이 수정된 파일에 대한 추가 정보를 표시합니다.

git log --patch (or -p) — 수정된 파일, 특정 변경 사항 및 해당 위치를 표시합니다.

git log --graph — 그래프 형식으로 로그 결과 보기

git log -<n> — 마지막 'n' 커밋 수 표시

git log --after=<date/x days/yesterday> — 지정된 날짜 이후의 모든 커밋을 표시합니다. --before 를 사용하여 지정된 날짜 이전의 커밋을 표시할 수 있습니다.

git log --author=<author_name> — 특정 작성자(사용자)의 커밋을 표시합니다.

git log --grep=<commit message> — 커밋 메시지를 기반으로 커밋 필터링

자식 병합

모든 개발 파일을 단일 분기로 통합하고, 두 분기를 결합하고, 여러 커밋을 단일 기록으로 병합합니다. 충돌이 있으면 병합이 중지되고 git은 충돌 파일을 표시합니다. 충돌이 해결되면 병합이 계속됩니다.

git checkout -b — 먼저 병합할 분기를 체크아웃합니다.

git add <file>

git commit — 파일 추가 및 커밋

git checkout master

git merge — 브랜치를 마스터와 병합

자식 가지치기

현재 분기에서 연결할 수 없는 파일을 삭제(정리)합니다. 지점에서 사용하지 않는 파일을 제거하는 정리 과정입니다.

git prune -n ​​— 가지치기를 하지 말고, 모두 정리할 수 있는 것만 보여줍니다.

git prune -v — prune에 의해 수행된 작업의 출력을 보여줍니다.

git prune --progress — 프룬의 진행 상황을 보여줍니다.

git fetch --prune — 오래된 브랜치를 모두 제거합니다.

자식 풀

원격 서버에서 작업 저장소로 데이터를 수신합니다. 원격 저장소의 모든 최신 파일로 로컬(작업) 분기를 업데이트합니다.

git pull — 원격 저장소를 가져옵니다.

git pull <repo URL> — 특정 원격 분기 가져오기

자식 푸시

모든 로컬 변경 사항을 원격 저장소로 푸시합니다. pull 및 fetches 명령과 정확히 반대되는 업로드 프로세스입니다.

git checkout master — 최신 변경 사항이 있는 브랜치를 체크아웃합니다.

git push origin master — 변경 사항을 원격 저장소로 푸시

예시:

 C:\Users\geek>git checkout development_branch Switched to branch 'development_branch' C:\Users\geek>git push master development_branch Enumerating objects: 4, done. Counting objects: 100% (4/4), done. Delta compression using up to 4 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (4/4), 612 bytes | 204.00 KiB/s, done. Total 4 (delta 0), reused 0 (delta 0), pack-reused 0 To master [development_branch] development_branch -> development_branch

또한 git push --delete <branch> 명령을 사용하여 원격 분기를 삭제하기 위해 push를 사용할 수도 있습니다.

예를 들어:

 C:\Users\geek>git push master --delete development_branch To master [deleted] development_branch

자식 리베이스

다른 분기의 여러 커밋을 결합하여 새로운 최종 기본 커밋을 만듭니다. 모든 변경 사항을 병합하기 전에 다른 분기의 변경 사항을 하나씩(선형적으로) 커밋하는 데 유용합니다.

git rebase <branch name> — 커밋을 하나의 최종 베이스로 결합

충돌이 있으면 해결하고 리베이스를 계속하십시오.
git rebase --continue

변경 사항을 건너뛰려면:
git rebase --skip

자식 원격

원격 서버의 구성을 확인하고 원격과 로컬 간의 연결 액세스를 허용합니다.

git remote — 기본적으로 Git에서 제공한 원격 서버의 기본 이름인 'origin'을 반환합니다.

git remote -v — 사용 가능한 모든 원격 연결의 짧은 이름과 URL을 나열합니다.

git remote add <short name> <remote url> — 원격 서버를 사용 가능한 연결에 명시적으로 추가합니다. 전체 URL을 제공하는 대신 git 명령에 짧은 이름을 사용할 수 있습니다.

git remote remove <remote url/short name> — 저장소에서 원격 서버를 제거합니다.

자식 리셋

이전 커밋으로 돌아가서 해당 커밋 이후의 변경 사항을 취소합니다.

git reset <hash of the commit> — 저장소를 지정된 커밋으로 복원합니다. Git은 커밋 기록을 유지하므로 다른 커밋(해시)으로 다시 재설정하여 재설정을 취소할 수 있습니다.

자식 RM

git에서 특정 파일을 제거합니다. reset 또는 checkout 명령을 사용하여 rm의 효과를 취소할 수 있습니다.

git rm <file_ name> — 특정 파일 제거

git에서 파일을 제거하지만 로컬(스테이징)에 유지하려면 다음을 사용하십시오.

git rm --cached

자식 쇼

SHA1을 지정하여 Blob, 트리, 커밋 또는 태그와 같은 개체를 봅니다.

git show — <object>를 지정하지 않으면 분기의 마지막 커밋에 대한 세부 정보가 표시됩니다.

git show <SHA1_id> — Blob id, tree id 등과 같이 SHA1 id로 지정된 개체의 내용을 표시합니다. 개체 유형을 확인하려면 git cat-file -t 명령을 사용하십시오.

git show –pretty — 출력을 예쁜 형식으로 표시합니다.

사용자 지정 형식을 제공할 수 있습니다.

git show --pretty = 'format:Name: <format>' 또는 짧은 형식, 전체 형식, 한 줄 형식, 중간 형식 또는 전체 형식 중 하나를 사용할 수 있습니다. 예를 들면 다음과 같습니다.

git show --pretty= 'medium' — 작성자, 날짜, 제목 및 전체 커밋 메시지를 표시합니다.

git show --abbrev-commit — SHA1을 축약하기 위해

자식 숨김

현재 분기에서 커밋하지 않고 분기를 전환하려면 커밋되지 않은 데이터를 안전하게 저장하십시오.

git stash — 작업 및 인덱스 상태를 저장합니다.

git stash save <message> — 저장하는 동안 메시지 보내기

git stash list — 숨긴 콘텐츠 목록 보기

git stash apply — 숨긴 변경 사항을 커밋합니다. 특정 stash의 변경 사항을 적용하려면 stash index id를 apply와 함께 사용하십시오.

git stash show — 숨김 파일의 내용을 봅니다.

git stash drop — 대기열에서 가장 최근의 stash를 제거합니다.

자식 상태

저장소 및 스테이징의 상태, 즉 커밋 단계 이전의 상태를 봅니다. 파일 추가, 업데이트 또는 제거와 같은 다른 git 명령 다음에 이 명령을 사용할 수 있습니다.

git status — 커밋할 변경 사항 또는 추적되지 않은(단계적 없음) 변경 사항을 표시합니다.

예를 들어, 작업 디렉토리에 samplefile.txt라는 파일을 추가하고 추가되었는지 확인했다면 위의 명령어를 줄 수 있습니다. 결과는 다음과 같습니다.

 On branch master No commits yet Changes to be committed: (use "git rm --cached …" to unstage) new file: samplefile.txt

자식 태그

친숙한 참조는 코드에서 이정표 또는 참조 지점을 나타내는 데 사용됩니다.

git tag <tag_name> — 주어진 이름으로 태그 생성

git tag — 사용 가능한 모든 태그 나열

git tag show <tag_name> — 지정된 태그의 세부 정보 표시

git tag -l “.*” — 지정된 패턴 또는 문자와 일치하는 태그 표시

내용, 커밋, 전체 diff 및 기타 세부 정보를 창에 표시하는 git 사용자 인터페이스를 시작합니다.

gitk — 시각화를 위해 창에서 git repo를 엽니다.

자식 버전

git version 명령을 사용하여 사용 중인 git 버전을 확인합니다.

 C:\Users\geekflare>git version git version 2.38.0.windows.1

마지막 단어

이 게시물에는 옵션과 함께 가장 일반적으로 사용되는 git 명령이 나열되어 있습니다.

다음으로 GitHub 자격 증명 스캐너를 확인할 수 있습니다.