알 아야 할 Git 명령
Git 은 분포 식 버 전 관리 소프트웨어 로 처음에는 더 잘 관리 하기 위해 서 였 다.
Linux
커 널 개발 로 디자인 되 었 습 니 다.출처: 위 키 백과 - Git
Git
시스템 (또는 그룹) 파일 의 역 사 를 주석 할 수 있 는 소프트웨어 입 니 다.이 제출 은 주어진 시간 에 시스템 에 대한 차이 점 인 '스냅 샷' 입 니 다.홈 페이지 다운로드 속도 가 느 립 니 다. 이 링크 를 사용 하여 다운로드 하거나
Github
주 소 를 다운로드 할 수 있 습 니 다. 다른 버 전이 필요 하 시 면 issue
연락 주세요.1.
Git
설정--system #
--global #
--local #
git config --global user.name "xxxx" #
git config --global user.email "[email protected]" #
git config --list #
원 격 창고 연결
github
SSH Key
ssh-keygen -t rsa -C
GitHub
, 열기 Account settings
-> SSH Keys
-> Add SSH Key
, 임의의 Title
을 작성 하고 Key
텍스트 상자 에 파일 내용 붙 이기 id_rsa.pub
ssh [email protected]
작업 공간
(Working Directory)
: 컴퓨터 에서 볼 수 있 는 목록 입 니 다.임시 저장 소
(stage / index)
: 다음 에 제출 할 파일 목록 정 보 를 저장 합 니 다. 보통 .git
디 렉 터 리 에 저 장 된 index
파일 (.git/index)
에 저 장 됩 니 다. 그래서 저 희 는 임시 저장 소 를 색인 (index)
이 라 고도 부 릅 니 다.버 전 라 이브 러 리
(Repository)
: 작업 영역 에 숨겨 진 디 렉 터 리 .git
가 있 습 니 다. 이것 은 작업 영역 이 아니 라 Git
버 전 라 이브 러 리 입 니 다.원 격 창고
(Remote)
완 일 봉 선생님 이 Git 작업 구역, 임시 저장 구역, 버 전 라 이브 러 리, 원 격 창고 에 대한 설명Runoob Git 작업 영역, 임시 저장 영역, 버 전 라 이브 러 리, 원 격 창고 에 대한 설명
파일 설정 무시: 추가
.gitignore
파일파일
.gitignore
의 형식 규범 은 다음 과 같다.#
로 시작 하 는 줄 은 Git 에서 무시 합 니 다./
로 시작 하여 재 귀 를 방지 할 수 있 습 니 다./
마지막 으로 디 렉 터 리 를 지정 할 수 있 습 니 다.!
를 붙 여 반대 할 수 있 습 니 다.2. 버 전 라 이브 러 리 만 들 기
버 전 라 이브 러 리 는 창고 라 고도 부 릅 니 다. 영어 이름
repository
은 하나의 디 렉 터 리 로 간단하게 이해 할 수 있 습 니 다. 이 디 렉 터 리 안의 모든 파일 은 Git
관리 할 수 있 습 니 다. 모든 파일 의 수정, 삭제, Git
추적 할 수 있 습 니 다. 언제든지 역 사 를 추적 하거나 미래 어느 순간 에 '복원' 할 수 있 습 니 다.git clone url # clone
git init #
3.
Git
분기master
: 기본 개발 지점HEAD
: 현재 개발 지점HEAD^([n])
: HEAD
의 제 n
차 부 는 제출 했 고 ^
는 ^1
에 해당 했다.HEAD~([n])
: HEAD
의 제 n
조상 제출origin
: 기본 원 격 버 전 라 이브 러 리graph TD;
br1_c1-->master*;
br2_c2-->master*;
br3_c3-->master*;
br1_c1_c1-->br1_c1;
br2_c2_c2-->br2_c2;
br3_c3_c3-->br3_c3;
master
: master
분기*
: HEAD
, 현재 활약 (개발) 지점br1_c1
: br1
분기 의 제출 첫 번 째 제출br1_c1_c1
: br1_c1
의 첫 번 째 제출 `^` `~`?
, `master`, `HEAD` `master`, `c1`, `c2`, `c3` `master`
`HEAD^ -> c1`,`HEAD^2 -> c2`,`HEAD^3 -> c3`, `HEAD~ -> c1`,`HEAD~2 -> c1_c1`
git branch #
git branch -r #
# 。
git branch --contains
git branch #
git checkout #
git checkout -b # +
#
git branch -m
#
git branch -m
# : , , 。
git push origin :
git push origin
git merge #
git branch -d #
git branch -D #
# ( ), push server , 。
git push origin :
Note
: checkout
포인터 만 이동 HEAD
하고 reset
인용 치 를 변경 합 니 다.4. 보기
git status #
git diff #
git diff .. #
git diff --shortstat "@{n day ago}" # n
git diff --cached(--staged) #
git show : # ,
git show #
git show --name-only #
git reflog #
git blame #
5. 수정
git add | # , ( )
git add . #
# -p( -patch) 。 。
git add -p
git mv #
git rm --cached # ,
git rm -f # -f
6.
git commit -m 'message' #
git commit -a -m 'message' # , ( )
git commit --amend -m # , , commit
HEAD
7. 취소, 버 전 스크롤 백git reset --hard HEAD #
git reset --keep [commit] # HEAD commit,
git reset [file] # , commit ,
git commit --amend #
git checkout [file] #
# --patch 。
git checkout -p
# 。 - 。 。
git checkout -
# , , 。
git checkout .
git checkout HEAD #
git checkout --patch #
git revert #
8. 과거 기록 제출
일반적인 매개 변수 옵션:Git Commit
: 제출 할 때마다 내용 의 차 이 를 표시 합 니 다.-p
: 업데이트 할 때마다 파일 수정 통계 정 보 를 표시 합 니 다.—stat
: —shortstat
의 마지막 줄 수 수정 에 제거 통 계 를 추가 합 니 다.—stat
정 보 를 제출 한 후에 수 정 된 파일 목록 만 표시 합 니 다.--name-only
새로 추 가 · 수 정 · 삭 제 된 파일 목록 을 표시 합 니 다.--name-status
: 모든 40 글자 가 아 닌 앞의 몇 글자 만 표시 합 니 다.--abbrev-commit
: 비교적 짧 은 상대 시간 표시 (예 를 들 어 SHA-1
를 사용 합 니 다.--relative-date
: 2 weeks ago
도형 이 나타 내 는 분기 합병 역 사 를 표시 합 니 다.--graph
: 이 옵션 은 제출 역 사 를 기본 형식 과 다른 방식 으로 보 여 줍 니 다.이 옵션 은 당신 이 사용 할 수 있 도록 내 장 된 하위 옵션 이 있 습 니 다.- `oneline`: , 。
- [`format`](https://git-scm.com/book/zh/v2/Git- - #rpretty_format): 。
ASCII
: —pretty=(oneline,short,medium( ),full,fuller,email,raw,format)
의 간소화 용법.—oneline
: 날짜 형식 을 맞 춥 니 다.
일반적인 출력 매개 변수:--pretty=oneline --abbrev-commit
: 최근 n 개 만 표시--date= (relative|local|default|iso|rfc|short|raw)
, -n
: 지 정 된 시간 후의 제출 만 표시 합 니 다.—since
, —after
: 지정 한 작성 자 와 관련 된 제출 만 표시 합 니 다.--until
: 지정 한 제출 자 와 관련 된 제출 만 표시 합 니 다.—before
: 지정 한 키워드 만 표시 하 는 제출—author
: 키 워드 를 추가 하거나 제거 한 제출 만 표시 합 니 다.
기본적으로 매개 변 수 를 사용 하지 않 으 면 —grep
제출 시간 에 따라 모든 업 데 이 트 를 표시 합 니 다. 최근 업 데 이 트 는 맨 위 에 있 습 니 다.git log #
git log -p -n # n
git log -p -n # n
-S
설정git log --pretty=format:'%s %C(bold blue)(%an)%Creset' --abbrev-commit
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)%Creset' --abbrev-commit
# git alias
git config --global alias.slg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)%Creset' --abbrev-commit"
# 。
git whatchanged —-since='2 weeks ago'
9. 라벨git log
역사의 한 제출 에 라벨 을 붙 여 중요 함 을 나 타 낼 수 있다.git log alias
두 가지 주요 유형의 라벨 을 사용 합 니 다. 경 량 라벨 Git
과 주석 라벨 Git
을 사용 합 니 다.
경 량 탭: 변 하지 않 는 지점 같 습 니 다. - 특정한 인용 일 뿐 입 니 다.그것 은 본질 적 으로 검사 제출 과 파일 에 저장 합 니 다. - 다른 정 보 를 저장 하지 않 았 습 니 다.
주석 라벨 은 (lightweight)
데이터베이스 에 저 장 된 완전한 대상 입 니 다.그것들 은 검 증 될 수 있다.태그 작성 자의 이름, 이메일 주소, 날짜 시간 이 포함 되 어 있 습 니 다.태그 정보 가 하나 더 있 습 니 다.또한 (annotated)
서명 과 검증 을 사용 할 수 있 습 니 다.일반적으로 주석 탭 을 만 드 는 것 을 권장 합 니 다. 그러면 상기 모든 정 보 를 가 질 수 있 습 니 다.그러나 임시 탭 을 사용 하거나 어떤 이유 로 정 보 를 저장 하지 않 으 려 면 가 벼 운 탭 도 사용 할 수 있 습 니 다.Git
: 주석 태그 만 들 기GNU Privacy Guard(GPG)
탭 에 저 장 될 정 보 를 지정 합 니 다.주석 탭 에 정 보 를 지정 하지 않 으 면 -a
편집 기 를 실행 하여 정 보 를 입력 하 라 고 요구 합 니 다.git tag #
git tag # ,-a
git tag -d #
git show #
git push origin #
git push origin --tags #
10. 변성 기-m
: 이미 검출 된 지점 에 하나 이상 의 지점 을 합병 한 다음 에 현재 지점 바늘 을 합병 결과 로 이동 시 키 면 기 존 지점 은 수정 되 지 않 습 니 다.Git
: 보통 '연 합' 이 라 고 부 릅 니 다. 제출 역 사 를 수정 하여 쌍방의 merge
역 사 를 비교 한 다음 에 서로 다른 캐 시 를 찾 아 간 다음 에 rebase
역 사 를 수정 합 니 다.commit
: 다른 분기 에 있 는 commt 를 수정 하여 현재 분기 (HEAD) 에 이식 하 는 데 사용 합 니 다. push
매개 변 수 는 원래 제출 한 작성 자 정 보 를 보류 하고 제출 하 는 것 을 의미 합 니 다.git merge #
git rebase #
# commit , (HEAD), … ,^…
git cherry-pick …
11. 저장 및 정리
프로젝트 의 일부분 에서 한동안 일 한 후에 모든 것 이 혼 란 스 러 운 상태 에 들 어 갔 을 때 다른 부분 으로 전환 하여 다른 일 을 하려 고 합 니 다.문 제 는 잠시 후 이 점 으로 돌아 가 절반 의 일 을 하기 위해 제출 을 만 들 고 싶 지 않다 는 점 이다.
저장 은 작업 디 렉 터 리 의 더러 운 상 태 를 처리 합 니 다. 즉, 수 정 된 추적 파일 과 임시 저장 변경 - 그리고 완료 되 지 않 은 수정 사항 을 한 스 택 에 저장 합 니 다. 이 변경 사항 을 언제든지 다시 적용 할 수 있 습 니 다.git add . && git stash #
git stash save 'message' # , stash
# -p( -patch) 。 。
git stash -p
# , , 。 , -u 。 -a(-all) , 。
git stash -u
git stash list #
git stash apply # , , :
git stash pop # , , , :
git stash drop #
git stash clear #
git stash branch #
12. 원 격 조작
원 격 창 고 는 인터넷 이나 다른 네트워크 에 위탁 관리 되 는 프로젝트 의 버 전 라 이브 러 리 를 말한다.git remote #
git remote -v # -v, Git URL。
git remote show #
git remote add # Git
git remote rm #
git remote rename #
git fetch #
# , origin , git pull
git pull
# ,--set-upstream -u
git push --set-upstream
# , origin , git push
git push
git push [remote] --force # ,
git push [remote] --all #
git push : #
git push --tag #
13. 충돌# , , 。
git diff --name-only --diff-filter=U | uniq | xargs $EDITOR
로 컬 초기 화 에서 원 격 창고 로 업로드 하 는 일반적인 절차git init
git add .
git commit -m 'hint message'
git remote add origin 'your project repositories href on github'
git pull origin master
git push -u origin master
첫 번 째 commit
원 격 창고 제출 오류 -> 오류 캡 처 해결 상세 참조error: failed to push some refs to 'https://github.com/xxx.git'
# --allow-unrelated-histories 。
git pull origin master --allow-unrelated-histories
git push -u origin master
참고 자료
Git 문서 중국어 문서
15-git-commands-you-may-not-know
완 일 봉 상용 cherry-pick
명령 목록
류 설 봉 -x
튜 토리 얼
Runoob GitHub
튜 토리 얼push
입문Git
, 알 지? 금 캐 기, 소질 3 연 타 ~ ~
Github
알다
금 을 파다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ZSH에서 물고기까지ZSH는 수년 동안 내 기본 셸이었습니다. 이제 몇 달 동안 사용하면서 ZSH 구성에 대해 몇 가지 사항을 발견했습니다. 우리는 을 제공하는 시스템과 더 빨리 상호 작용하는 경향이 있습니다. 내.zshrc 구성에는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.