GUI: 사용자 친화적, 편하게 사용 가능, but 세부적인 기능을 사용하기 힘들다, 협업 문제를 해결하기 어렵다
CLI: 세부적인 기능을 사용할 수 있다, 문제해결 하기에 좋다(세부기능 활용이 유연하기 때문에), 자동화 하기에 좋다(스크립트), 명령어 인터페이스를 잘 다루게 되면 생산성이 높아진다
# 폴더 안에 있는 내용 확인
ls
# 경로 이동
cd
⭐️# print working directory 현재 폴더 경로 확인
pwd
# 빈 폴더 생성
mkdir {폴더 이름}
# 빈 파일 만들기
touch {파일 이름}
# 파일명 변경(또는 파일 경로 이동)
mv
오픈소스 프로젝트의 본질은 "협업", "리뷰", "토론"에 있다.
commit이 많을 수록 프로젝트의 덩치가 크다는 것을 알 수 있다
🧑💻:"총 몇 번의 commit이 있었나요?"
git log --oneline | wc -l
🧑💻:"이 프로젝트에서 누가 제일 많이 개발했나요?"
git shortlog -sn | nl
🧑💻:"이 폴더에서 누가 제일 많이 개발했나요?"
git shortlog -sn -- {폴더 이름} | nl
🧑💻:"어느 시간대 중에서 이 폴더는 누가 제일 많이 개발했나요?"
git shortlog --after={YYYY-MM-DD} -sn -- {폴더 이름} | nl
"merge 제외하고 커밋 내역 보기"
git log --oneline --no-merges
git shortlog -h | grep summary
-s, --summary suppress commit descriptions, only provides commit count커밋 설명을 생략하고, 커밋 수만 표시합니다
git shortlog -h | grep number
-n, --numbered 작성자별 커밋 수에 따라 정렬합니다
"6월 한달간의 커밋 수를 볼 때"
git log --oneline --after 2020.06.01 --before 2020.06.30 | wc -l
"6월 한달간의 내역 볼 때"
git log --oneline --after 2020.06.01 --before 2020.06.30 | -l
"가장 최근의 것을 3개 뒤집어서 보여줌"
git log --oneline --reverse -3
"가장 옛날 것 3개를 보여줌"
git log --oneline --reverse | head -3
단순히 git은 add-commit-push
만 잘하면 어디가서 '나 git 좀 한다'라고 말할 수 있을 거라 생각했는데, 전혀 아니었다.
생각보다 git으로 할 수 있는 것이 많고, commit이 더 큰 의미를 가진다는 것을 깨달았다.
특히나 git을 CLI로 다루는 것에 약간의 지루함을 느끼고 있었는데
다양한 명령어와 약어들이 있는 것을 보고
역시 공부하지 않으면 아무 것도 모르는구나,
전혀 다른 세계가 있다는 것을 알게 되어 흥미로웠다.
2편에서는 본격적으로 협업에서 꼭 필요한 rebase, blame을 다룰 예정인데,
장담컨데 이 편보다 훨씬 더 재밌을 것이다!
2편 주세요! 더 재밌는거 보고 싶어요! 재밌게 읽었습니다 :)