반응형
해당 글에서는 Git에 존재하는 저장소에 대해 소스코드의 줄을 세는 방법에 대해 알아봅니다.
1) 프로젝트의 모든 줄(라인 수) 세기
💡 프로젝트의 모든 줄(라인 수) 세기
- 저장소의 모든 파일 내용을 읽어서 라인수를 세고 총 라인수를 표시합니다.
- Git이 설치되어 있고 저장소가 로컬 저장소에 있는 경우에만 작동합니다.
1. git ls-files 명령어는 저장소에 있는 모든 파일을 나열합니다.
2. xargs cat 명령어는 git ls-files로부터 전달받은 파일들을 cat 명령어에 전달하여 파일의 내용을 출력합니다.
3. wc -l 명령어는 cat으로부터 전달받은 파일 내용을 읽어 라인 수를 세고, 총 라인 수를 표시합니다.
# [예시] Git이 연결된 디렉터리로 이동합니다
$ cd Desktop/workspace/study/multi-flex-chatgpt
# Git 저장소에 있는 모든 파일의 라인 수를 세는 명령어입니다.
$ git ls-files | xargs cat | wc -l
2) 모든 파일 별 소스코드 줄(라인 수) 세기 명령어
💡 파일별 소스코드 줄 세기 명령어
- 저장소의 모든 파일을 나열한 다음 wc -l 명령으로 파일마다 라인 수를 세어 총 라인 수를 표시합니다.
- Git이 설치되어 있고 저장소가 로컬 저장소에 있는 경우에만 작동합니다.
- 주석과 빈 줄을 포함하여 저장소의 모든 줄을 세기 때문에 유의해야 합니다.
# [예시] Git이 연결된 디렉터리로 이동합니다
$ cd Desktop/workspace/study/multi-flex-chatgpt
# 디렉터리의 모든 파일의 라인수를 셉니다.
$ git ls-files | xargs wc -l
3) 특정 디렉터리 소스코드 줄(라인 수) 세기
💡 특정 디렉토리 소스코드 줄 세기
- 저장소의 특정 디렉터리의 파일 내용을 읽어서 라인수를 세고 파일 별 라인 수와 총 라인 수를 표시합니다
- Git이 설치되어 있고 저장소가 로컬 저장소에 있는 경우에만 작동합니다.
- 지정한 디렉터리 내의 파일만을 나열한 후 wc -l명령으로 파일마다 라인 수를 세어 총 라인 수를 표시합니다.
- 주석과 빈 줄을 포함하여 저장소의 모든 줄을 세기 때문에 유의해야 합니다.
# [예시] Git이 연결된 디렉터리로 이동합니다
$ cd Desktop/workspace/study/multi-flex-chatgpt
# format
$ git ls-files <디렉터리 경로> | xargs wc -l
# 사용예시 : 프로젝트의 src 경로에 있는 모든 파일에 대해 소스코드 줄 세기 위한 명령어
$ git ls-files src | xargs wc -l
4) 확장자 별 특정 파일 소스코드 줄(라인 수) 세기
💡확장자 별 특정 파일 소스코드 줄(라인 수) 세기
- 확장자 별로 특정 파일을 검색하고 파일 내용을 읽어서 라인수를 세고 파일 별 라인수와 총 라인수를 표시합니다.
- Git이 설치되어 있고 저장소가 로컬 저장소에 있는 경우에만 작동합니다
- Git 저장소의 확장자에 따라 라인수를 세는 명령어입니다.
1. git ls-files 명령어는 저장소에 있는 모든 파일을 나열합니다.
2. grep '\.java' 명령어는 git ls-files로부터 전달받은 파일들 중에서 확장자가 .java인 파일들을 필터링합니다.
3. xargs wc -l 명령어는 grep으로부터 전달받은 파일들을 wc -l 명령어에 전달하여 파일의 라인 수를 세고, 총 라인 수를 표시합니다.
# [예시] Git이 연결된 디렉터리로 이동합니다
$ cd Desktop/workspace/study/multi-flex-chatgpt
# [예시] 확장자가 .java인 파일의 개수를 셉니다.
$ git ls-files | grep '\\.java' | xargs wc -l
오늘도 감사합니다. 😀
반응형
'Github > 이해하기' 카테고리의 다른 글
[Github] 원격 저장소의 Commit 내용 지우기 : API 키 노출 시 해결 방법 (0) | 2024.01.07 |
---|---|
[Github] .gitignore 파일이 바로 적용이 안될때 해결방법 : git 캐시 삭제 (1) | 2024.01.01 |
[Github] Git-flow 브랜치 전략을 변형한 간단한 사용방법(with. JIRA) (1) | 2023.12.28 |
[Github] Git-flow 브랜치 전략을 이용한 사용 예시(with. JIRA) (1) | 2023.12.27 |
[Github] Git 브랜치 전략(Git Branch Strategy) : Git Flow, Github Flow, GitLab Flow, TBD (1) | 2023.12.26 |