Hyperskill - 컴퓨터 CS 및 영어 독해/Introduction to Git

Searching with git - Git 에서 검색하는 법

코딩크리처 2024. 6. 13. 10:00

hyperskill - Searching with git 영어 원문

당신이 거대한 프로젝트의 메인 프로그래머라고 상상 해 보세요.

그리고 당신은 끊임없이 동료들의 작업물의 결과를 지켜보고 있습니다.

그들이 작업하는 branch, commit, merge 그리고 실수들,

그 실수를 캔슬하고.. 캔슬 때문에 conflict가 일어나고.. 등등이 있습니다.

이러한 행동들을 쉽게 따라서 볼 수 있는 방법이 없을까요?

다시 한 번 말하지만, Git은 도와 줄 겁니다!

다른 것들 사이에서, Gitcommit 검색 옵션을 가지고 있습니다.

이제 한번 이것이 정확히 무엇이고, 이를 통해서 commit을 어떻게 찾을 수 있는지 살펴 봅시다.


Git blame - Git blame (레포지토리 파일 책임자)


누가 프로젝트 파일 copy.py의 실수에 대한 책임을 가지고 있을까요?

이는 git blame 명령어를 통해서 쉽게 찾아 낼 수 있습니다.

이는 코드에 있어 저자의 정보와 파일 내부의 특정 줄을 변경한 커밋에 대한 정보를 반환합니다.

당신은 간단하게 위의 명령어를 타이핑 한 후, 변경 된 파일의 이름을 작성하면 됩니다.

$ git blame code.py
^36a1d7 (John User 2020-11-17 12:10:07 -0500  1) 

좋습니다! 우리는 불완전한 커밋을 찾아냈어요.

이건 John이 저지른 것 같네요.

이제 당신은 그에게 가서 코드 내부에 버그가 있었는지 물어 볼 수 있습니다.


Git log - Git 로그


위에서 말했듯이 John과 이야기를 해 본 후,

당신은 가장 최신의 변경사항을 좀 더 가까이 보기로 결정했습니다.

이를 수행하기 위해서,

친숙한 git log 명령어가 필요한데,

이는 git blame 명령어가 그저 마지막 커밋과, 커밋되지 않은 변경사항(staging area) 을 보여주기 때문입니다.

git log 명령어의 도움이 있다면, 당신은 프로젝트에 있어 해당 파일이 변경이 된 커밋들을 발견 할 수 있습니다.


해당 파일이 커밋 된 메세지를 보기 위해서,

git show --name-only <hash from git blame> 명령어가 필요합니다.

또한 당신은 이러한 커밋에서 변경이 되었던 다른 파일들에 대한 정보도 얻을 수 있습니다.

여기 이에 대한 더 자세한 예제가 있습니다 :

$ git show --name-only ^36a1d7

또한 우리는 조심스럽게 이 파일이 수정되었던 커밋들을 조사하거나, 검사 할 수 있습니다.

여기 이러한 역할을 위한 두 개의 log 명령어가 더 있습니다.


주어진 파일 에서 일어난 변경사항에 대한 모든 커밋들의 정보를 얻기 위해서,

당신이 사용해야 하는 것은 :

$ git log code.py

그리고 밑의 명령어의 도움에 따르면,

우리는 마지막 커밋에서 일어난 변경사항에 대한 정보를 얻을 수 있습니다 :

$ git log -n1 code.py

git log 명령어는 옵션의 결합에 대해 흥미로운 플래그와 옵션들을 많이 가지고 있습니다.

이러한 모든 결합을 보고 싶으면, --help 플래그를 사용하거나, Git log documentation를 볼 수 있습니다.

개인적으로 위의 Git log documentation이 엄청난 도움이 될 것 같습니다.


Git find word and description - Git 로그에서 단어 찾기


위의 상황 예시를 이어서,

당신은 프로젝트의 철저한 점검 과정에서,

당신은 "updated" 키워드가 있는 파일에 매우 흥미로운 것들이 있다는 것이 밝혀졌습니다.

이 흥미로운 것들은 코드 내부의 John의 마지막 변경사항들이었습니다.

그리고 거기엔 결과적으로 꽤 많은 양의 변경사항들이 있었습니다.

John이 업데이트 한 기능이 있는 모든 파일들을 찾기 위해서,

이 명령어를 사용합니다 :

git log -G updated

당신이 커밋의 description (설명란)에 포함하고 있는 단어를 찾고 싶은 경우,

이 명령어를 통해 수행 할 수 있습니다 :

git log --all --grep='README'

Conclusion - 결론


이제 당신은 변경 사항을 추적하는 법을 알며,

동료와 작업하는 것을 잘 컨트롤 하게 되었습니다.

만약 당신이 프로젝트에서 가장 중요하고 똑똑한 사람이 되고 싶다면!

이러한 명령어들을 사용하는 것을 잊지 마세요.



words to remember


provoke : 야기하다, 화나게 하다

blame : 책임을 지다, 비난하다

faulty : 불완전한, 결점이 있는

concrete : 결합체, 구체적인, 굳어진, 현실의

examine : 조사하다, 검사핟, 심사하다, 시험하다

vigilant : 철저한

It turned out : 밝혀졌다. ====> As it turned out : 결과적으로

consolidate : 통합하다, 합병 정리하다, 합동하다