일상적인 워크플로우에서 자주 사용하는 Git 명령 및 구성
11446 단어 gitpracticesproductivity
만약 네가 나처럼 된다면, 너는 언젠가부터 사소한 일에 화가 나기 시작할 것이다.예를 들어 항상 두 개의 단독 명령
git add <file>
을 입력한 다음 git commit -m 'Your commit message'
을 입력하여 변경 사항을 제출하는 것은 좀 짜증나기 시작한다.또는, git log
를 입력할 때, 더 좋은git 기록을 원할 수도 있습니다.또는 원격 브랜치를 삭제한 후 로컬 브랜치를 자동으로 클립하려고 합니다.이런 사소한 일은 네가 알게 될 것이다.시간의 추이에 따라 저는 정성스럽게 기획한 명령, 별명과 설정 목록을 세웠습니다. 저는 매일 이런 명령, 별명과 설정을 사용합니다. 이것은 제 업무 절차를 더욱 효율적이고 즐겁게 합니다.저는 아래에서 여러분과 나누고 싶습니다.
로컬 지점 및 원격 추적 지점 나열
이 명령은 최근에 제출한 해시 코드와 제출 메시지를 표시합니다.원격 브랜치가 삭제되었는지 여부도 알려 줍니다.
git branch -vv
예를 들어 내 기계에서 이 명령을 실행하면 다음과 같은 출력이 발생합니다.원격 분기 체크 아웃
Git 버전 사용≥ 1.6.6 리모컨 하나만 있으면 다음을 수행할 수 있습니다.
git fetch
git checkout <branch_name>
리모컨이 여러 개 있는 경우 git checkout <branch_name>
는 현대 Git에서 작동하지 않습니다.이 경우git checkout -b <branch_name> <remote_name>/<branch_name>
속기git checkout -t <remote_name>/<branch_name>
명령에 추가 및 제출
다음 별칭을 글로벌 Git 구성 파일에 추가합니다(Linux/Mac OS 시스템에서는 일반적입니다
~/.gitconfig
.나는 두 번째를 더 좋아한다. 왜냐하면 그것은 더 많은 키 횟수를 절약할 수 있기 때문이다.# add a `add-commit` alias, or
git config --global alias.add-commit '!git add -A && git commit'
# add a `ac` alias to save a few more keystrokes
git config --global alias.ac '!git add -A && git commit'
그리고 그것을git add-commit -m 'My commit message' # or
git ac -m 'My commit message'
로컬 및 원격 삭제 분기
브랜치를 처리한 후 다음 명령을 사용하여 원격 및 로컬 컴퓨터에서 브랜치를 제거할 수 있습니다.
# delete a remote branch
git push -d <remote_name> <branch_name> # or
git push -D <remote_name> <branch_name>
# delete a local branch
git branch -d <branch_name> # or
git branch -D <branch_name>
대부분의 경우 이름은 소스입니다.참고:
-d
옵션은 --delete
의 별칭으로, 브랜치가 상위 브랜치에 완전히 통합된 경우에만 브랜치를 삭제합니다.또한 -D
를 사용할 수 있습니다. 이것은 --delete --force
의 별명으로 분기 irrespective of its merged status 를 삭제하는 데 사용됩니다.원격에서 병합된 모든 분기 삭제
장기적으로 실행되는
development
분기가 있다고 가정하고 그 분기를 다른 특징 분기(예: feature/A
, feature/B
를 생성합니다.동업자가 이 두 기능에 대한 요청을 검토한 후 다시
development
통합하고 원격에서 삭제합니다.로컬 삭제 feature/A
및 feature/B
를 실행하여# switch to the development branch first
git checkout development
# delete local branches whose remote tracking branches have been merged back to development
git delete-merged
Git 명령이 아님을 알 수 있습니다 delete-merged
. 이것은 실제로 우리가 설정한 별명입니다.실제 명령에 사용되는 매개변수는 설정에 따라 다릅니다.단, 다음 절차에 따라 필요한 명령을 구성할 수 있습니다.1단계: 분기 보기
development
.2단계: 원격에서 병합된 모든 지점을 나열합니다.
git branch --merged
단계 3: 삭제하기 싫은 지점을 볼 수 있습니다. 예를 들어 master
, release
등입니다. 이 지점을 제외하면 목록을 선별할 수 있습니다.git branch --merged | egrep -v "(^\*|master|development|skip_branch_name)"
egrep
명령에 사용되는 정규 표현식은 기본적으로 이름 master
, development
또는 skip_branch_name
으로 시작하는 모든 지점이 삭제되지 않는다는 것을 의미한다.위의 지점을 수정할 수도 있고, 삭제하고 싶지 않은 지점을 추가할 수도 있습니다.
4단계: 현재 체크 아웃된 브랜치에 병합된 모든 로컬 브랜치 제거
git branch --merged | egrep -v "(^\*|master|development|skip_branch_name)" | xargs git branch -d
단계 5: 명령에 대한 글로벌 별칭 설정deleted-merged
git config --global alias.delete-merged 'git branch --merged | egrep -v "(^\*|master|development|skip_branch_name)" | xargs git branch -d'
현재 작업 디렉터리의 노화되지 않은 파일 버리기
현재 작업 디렉터리에 있는 모든 노화되지 않은 파일을 버리려면
git checkout -- .
특정 파일의 경우git checkout -- path/to/file/to/revert
--
는 해체에 사용됩니다argument ambiguation.로컬 및 원격 분기 이름 바꾸기
1단계: 로컬 브랜치 이름 바꾸기
이름을 바꿀 브랜치에 있는 경우:
git branch -m <new-name>
다른 지점에 있는 경우:git branch -m <old-name> <new-name>
단계 2: 원격 브랜치 삭제 및 밀어넣기<old-name>
로컬 브랜치git push origin :<old-name> <new-name>
3단계: 로컬 브랜치의 업스트림 브랜치 재설정브랜치로 전환한 다음:
git push origin -u <new-name>
Git 로그 미화
다음과 같이 Git 로그를 포맷하고 앨리어스를 설정할 수 있습니다.
1단계: 글로벌 Git 구성 파일에서 다음 별칭 설정
git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"
단계 2: 필요한 경우 추가 플래그 추가# filter by start date
--after="2016-01-31"
--since="2016-01-31"
# filter by end date
--before="2017-03-10"
--until="2017-03-10"
# filter by author
--author="Zean Qin"
제가 가장 많이 쓰는 명령은요.git lg --after="yesterday" --author="Zean"
Git diff 미화
나는 diff-so-fancy를 사용하여 차이를 더욱 읽을 수 있게 했다.따라가다
git diff
공식 설정 단계 삭제된 다른 브랜치의 원격 추적 브랜치 자동 트림
없음
<new-name>
, 지점에 대한 원격 추적 지점다른 한쪽은 이미 제거되어 영원히 그곳에 남을 것이다.
모든 Git 저장소에서 항상
<new-name>
for git fetch --prune
및 --prune
:git config --global fetch.prune true
항상 git fetch
git config remote.origin.prune true
#^^^^^^
#replace with your repo name
Git에서 Vim을 편집기로 사용하여 커밋 메시지 작성
Git에 대한 편집기만 설정하려면 다음 중 하나를 수행합니다.
git pull
: --prune
core.editor
환경 변수: git config --global core.editor "vim"
GIT_EDITOR
및 export GIT_EDITOR=vim
환경 변수를 설정합니다.이 두 개의 매개 변수를 동시에 설정해야 하는 것은 아니지만, 일부 프로그램에서는 더 정확한 매개 변수
VISUAL
를 사용할 수 없습니다.export VISUAL=vim
export EDITOR="$VISUAL"
공구서류
Reference
이 문제에 관하여(일상적인 워크플로우에서 자주 사용하는 Git 명령 및 구성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/zeanqin/common-git-commands-and-configurations-used-in-a-day-to-day-workflow-8e2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)