댓글 검색 목록

[Git] 내 인생을 바꾼 7 가지 Git 트릭

페이지 정보

작성자 운영자 작성일 20-11-13 15:05 조회 1,041 댓글 0

이 유용한 팁은 널리 사용되는 버전 관리 시스템으로 작업하는 방식을 바꿀 것입니다.


https://opensource.com/article/20/10/advanced-git-tips


Git은 사용 가능한 가장 일반적인 버전 제어 시스템 중 하나이며 모든 종류의 개발 작업을 위해 개인 시스템과 공개적으로 호스팅 되는 웹 사이트에서 사용됩니다. 

내가 Git에 얼마나 능숙해 졌는지에 관계없이 항상 발견해야 할 기능이 남아 있는 것 같습니다. 다음은 Git 작업 방식을 바꾼 7 가지 트릭입니다.


1. Git의 자동 수정 


우리 모두는 때때로 오타를 만들지 만 Git의 자동 수정 기능을 활성화 한 경우 Git이 잘못 입력 된 하위 명령을 자동으로 수정하도록 할 수 있습니다.


git status로 상태를 확인하고 싶지만 실수로 git stats를 입력했다고 가정합니다. 정상적인 상황에서 Git은 'stats'가 유효한 명령이 아니라고 알려줍니다.


git stats
git: ‘stats’ is not a git command. See ‘git --help’.

The most similar command is
status 


유사한 시나리오를 방지하려면 Git 구성에서 Git 자동 수정을 활성화하십시오.


git config --global help.autocorrect 1 


현재 저장소에만 적용하려면 --global 옵션을 생략하십시오.


이 명령은 자동 수정 기능을 활성화합니다. 심층 튜토리얼은 Git Docs에서 사용할 수 있지만 위와 동일한 잘못된 명령을 시도하면 이 구성이 수행하는 작업에 대한 좋은 아이디어를 얻을 수 있습니다.


git stats
git: ‘stats’ is not a git command. See ‘git --help’.
On branch master
Your branch is up to date with ‘origin/master’.

nothing to commit, working tree clean 


대체 하위 명령을 제안하는 대신 Git은 이제 최상위 제안 만 실행합니다.이 경우에는 git status입니다.


2. 커밋 계산 


커밋을 계산해야 하는 이유는 여러 가지가 있습니다. 예를 들어 많은 개발자는 빌드 번호를 늘릴 시기를 판단하거나 프로젝트가 어떻게 진행되고 있는지 감을 잡기 위해 커밋 수를 계산합니다.


커밋을 계산하는 것은 정말 쉽고 간단합니다. 다음은 Git 명령입니다.


git rev-list --count 


위의 명령에서 branch-name은 현재 저장소에서 유효한 브랜치 이름 이어야 합니다.


git rev-list –count master
32
git rev-list –count dev
34 


3. 저장소 최적화 


코드 리포지토리는 귀하 뿐만 아니라 귀하의 조직에도 중요합니다. 몇 가지 간단한 방법으로 저장소를 깨끗하고 최신 상태로 유지할 수 있습니다. 모범 사례 중 하나는 .gitignore 파일을 사용하는 것입니다. 이 파일을 사용하면 바이너리, 임시 파일 등과 같은 원치 않는 파일을 많이 저장하지 않도록 Git에 지시하는 것입니다.


저장소를 추가로 최적화 하려면 Git 가비지 수집을 사용할 수 있습니다.


git gc --prune=now --aggressive 


이 명령은 사용자 또는 팀에서 pull 또는 push 명령을 많이 사용하는 경우에 도움이 됩니다.


이 명령은 저장소에서 연결할 수 없거나 "분리 된"Git 개체를 정리하는 내부 유틸리티입니다.


4. 추적 되지 않는 파일 백업 


대부분의 경우 추적 되지 않은 모든 파일을 삭제하는 것이 안전합니다. 그러나 여러 번 삭제하고 싶지만 나중에 필요할 경우를 대비하여 추적 되지 않은 파일의 백업을 만들어야 하는 상황이 있습니다.


Git은 일부 Bash 명령 파이핑과 함께 추적 되지 않은 파일에 대한 zip 아카이브를 쉽게 만들 수 있습니다.


git ls-files --others --exclude-standard -z |\
xargs -0 tar rvf ~/backup-untracked.zip 


위의 명령은 backup-untracked.zip이라는 이름으로 아카이브를 만들고 .gitignore에 나열된 파일을 제외합니다.


5. .git 폴더 파악 


모든 저장소에는 .git 폴더가 있습니다. 특별한 숨겨진 폴더입니다.


ls -a
. … .git 


Git은 주로 두 가지 작업을 수행합니다.

  • 작업 트리 (현재 체크 아웃의 파일 상태)
  • Git 저장소의 경로 (특히 버전 정보가 포함 된 .git 폴더의 위치)

이 폴더는 모든 참조 및 구성, 저장소 데이터, HEAD 상태, 로그 등과 같은 기타 중요한 세부 정보를 저장합니다.


이 폴더를 삭제하면 소스 코드의 현재 상태는 삭제되지 않지만 프로젝트 기록과 같은 원격 정보는 삭제됩니다. 이 폴더를 삭제하면 프로젝트 (적어도 로컬 복사본)가 더 이상 버전 제어를 받지 않습니다. 변경 사항을 추적 할 수 없음을 의미합니다. 리모컨에서 당기거나 밀 수 없습니다.


일반적으로 .git 폴더에는 해야 할 일이나 해야 할 일이 많지 않습니다. Git에서 관리하며 대부분 제한이 없는 것으로 간주됩니다. 그러나 이 디렉토리에는 HEAD의 현재 상태를 포함하여 몇 가지 흥미로운 아티팩트가 있습니다.


cat .git/HEAD
ref: refs/heads/master 


잠재적으로 저장소에 대한 설명도 포함됩니다.


cat .git/description 


이것은 이름이 없는 저장소입니다. 이 파일 '설명'을 편집하여 저장소 이름을 지정하십시오.


Git hooks 폴더도 여기에 있으며 예제 후크 파일이 있습니다. 이 샘플을 읽고 Git 후크를 통해 가능한 작업에 대한 아이디어를 얻을 수 있으며 Seth Kenlon의 이 Git 후크 소개도 읽을 수 있습니다.


6. 다른 브랜치의 파일보기 


다른 분기에서 파일의 내용을 보고 싶을 때가 있습니다. 간단한 Git 명령으로 실제로 분기를 전환하지 않고도 가능합니다.


README.md라는 파일이 있고 기본 브랜치에 있다고 가정합니다. 당신은 dev라는 브랜치에서 일하고 있습니다.


다음 Git 명령을 사용하여 터미널에서 수행 할 수 있습니다.


git show main:README.md 


이 명령을 실행하면 터미널에서 파일의 내용을 볼 수 있습니다.


7. Git에서 검색 


간단한 명령 하나로 전문가처럼 Git에서 검색 할 수 있습니다. 더 나은 방법은 변경 한 커밋 또는 분기를 잘 모르는 경우에도 Git에서 검색 할 수 있다는 것입니다.


git rev-list --all | xargs git grep -F ‘’ 


예를 들어 "font-size : 52 px;"문자열을 검색한다고 가정합니다. 저장소에서 :


git rev-list –all | xargs git grep -F ‘font-size: 52 px;’
F3022…9e12:HtmlTemplate/style.css: font-size: 52 px;
E9211…8244:RR.Web/Content/style/style.css: font-size: 52 px; 


이 팁을 시도하십시오 


이 고급 팁이 유용하고 생산성을 높여 많은 시간을 절약하기를 바랍니다.





댓글목록 0

등록된 댓글이 없습니다.

웹학교 로고

온라인 코딩학교

코리아뉴스 2001 - , All right reserved.