처음으로 Git을 업그레이드해야 하는 3가지 이유

2992 단어 tipsgit
Git은 놀라울 정도로 빠른 속도로 움직입니다. 2021년 8월 현재 Git( git --version ) 버전은 2.33입니다.

나는 일반적으로 내 Git 버전이 무엇인지 알지 못하거나 신경 쓰지 않지만 지난 1년 동안 이것은 변경되었습니다. Git 팀이 뭔가 제대로 하고 있는 게 틀림없어요. 상대적으로 가벼운 사용으로 인해 몇 가지 문제가 발생한다는 사실을 알게 되었기 때문입니다.

init.default분기



Git의 기본 분기 이름은 master 입니다. Git 2.28부터는 이제 다른 것으로 구성할 수 있습니다. 물론this is merely symbolic 하지만 감사한 신호다.

git config --global init.defaultBranch main


이 설정은 새 저장소에서 작동합니다. 기존 리포지토리와 BOTH mastermain와 잘 작동하는 git 별칭의 경우 my .

자식 스파스 체크 아웃



전체 기록을 다운로드하고 싶지 않은 저장소의 경우 git clone -–depth 1 [remote-url]에 대해 알고 있을 것입니다. Git 2.25에는 현재 버전도 너무 큰 거대한 저장소에 대한 추가 명령이 도입되었습니다. 따라서 스파스 체크아웃은 git clone --depth 1와 같지만 파일의 경우:

git clone --no-checkout https://github.com/my/big-repo
cd big-repo/
# only files at the root
git sparse-checkout init --cone 
# only files in specific directories (recursive)
git sparse-checkout set <dir1> <dir2> ...

# do it
git checkout main


More on the GitHub blog .

자식 복원



나는 오늘 이것이 필요했다. 기본적으로 파일을 망쳐 Git에서 다시 가져와야 하는 경우 v2.23에서 새로운git restore 명령을 사용할 수 있습니다.

git restore path/to/file # discard current changes
git restore --staged path/to/file # unstage staged file
git restore --source [hash] path/to/file  ## restore from specific commit hash


⚠️ Be careful - once you run this command you cannot get back the changes you discard.



예, checkout , restore , reset 및 even switch 사이에 혼동을 일으킬 정도로 유사한 명령이 있습니다. This StackOverflow answer 꽤 권위있게 명확히 :
  • git-revert 다른 커밋에 의해 변경된 사항을 되돌리는 새로운 커밋을 만드는 것입니다.
  • git-restore 인덱스 또는 다른 커밋에서 작업 트리의 파일을 복원하는 방법입니다.
    이 명령은 분기를 업데이트하지 않습니다.
    이 명령을 사용하여 다른 커밋에서 인덱스의 파일을 복원할 수도 있습니다.
  • git-reset는 분기를 업데이트하고 분기에서 커밋을 추가하거나 제거하기 위해 팁을 이동하는 것입니다. 이 작업은 커밋 기록을 변경합니다.
    git reset은 git restore와 겹치는 인덱스를 복원하는 데에도 사용할 수 있습니다.
  • 좋은 웹페이지 즐겨찾기