카테고리 없음

ABC 부트캠프 AI 파일럿 1기 MLOps 50일차 : git 심화과정 및 실습

개발 기록자 2026. 10. 14. 18:12

오늘은 개인과제와 팀과제를 하기로 했다.

이 개인과제를 진행해보겠다.

user.name 명령어가 기억나지 않아서 구글에 검색해보았다.

이때까지도 diff랑 diff --staged의 역할이 헷갈렸다.

 

 

 

 

 

 

 

1. local이 적용된다.

2. diff는 stage에 올라가기 전의 버전의 문서가 출력

diff --staged는 satge에 올라간 후의 버전 문서가 출력

3.커밋 해시정보, user.name, user.email, 커밋 정보

 

 

2.출력본

3.출력본

 

 

문제2 

 

 

 

 

git add -p를 사용하라고 하셨는데, 모르는 거라서 찾아보았다.

 

git add -p는 파일 전체를 한번에 스테이징 하지 않고

변경 내용을 덩어리 단위로 하나씩 보여주면서 커밋에 넣을지 물어보는 명령이다.

 

한 파일에 성격이 다른 수정이 섞여 있을 때 유용하다고 한다.

 

파일보다 작은 단위를 수정할 수 있도록 하기 위해 예시를 내주신 것 같다.


 

 

git init을 git-practice에서 이미 했는데

detective 파일내에서 또 해도 되나??

 

git init과 git init -q -b main의 차이가 무엇일까?

일단 에러없이 되긴 했다..

 

교수님께 무슨 의미인지 물어보았다.

 

-q : quiet 명령어라서 뭐라고 아래에 답변 안나오게 하는거

-b: initial-branch라서 브랜치명을 main으로 하겠다는 의미이다.

c 함수를 만들었다.

이건 리눅스에서 사용되는거고 수업시간에서 배운 것은 아니라고 한다.

 

내 생각에 이 함수는  user.name과 commit문구를 커밋할 때 매개변수로 받게하는 함수이다.

 

 

1. git lg / 2개

2. 

 

 

이건 모르겠어서 LLM에게 질문해보았다.

 

물어보기 전의 나의 대답

1.여기서 말하는 global 설정이란 user.name, user.email을 말하는 것인가? 

local 설정 없이 커밋을 시도하면 커밋한 작성자의 이름이 안나온 상태로 커밋이 된다. 혹은 커밋이 되지 않는다.
  2.이미 만들어진 커밋의 작성자는 안바뀐다
  3.질문의 의도를 모르겠다

 

LLM의 도움을 받아서 1번을 실습해보았다.

 

fake-global을 들어가서 글로벌 설정을 임시로 비웠다.

 

이후 global list를 뽑아보니 나오지 않았다.

정상적으로 비워졌다.

local list를 뽑아보면 user이 나온다.

 

새 저장소를 만들어서 다시 local list를 해보았더니 user가 사라졌다.

 

에러 메시지가 나왔다.

로컬과 글로벌에 user.email, user.name이 없어서 발생한 오류이다.

1의 정답

새 저장소에서 global 설정을 임시로 비운 상태로 local 설정 없이 커밋을 시도하면 에러 메시지가 뜬다.

 

 

 

2번을 실습해보았다.

 

아까 임시로 비워둔 글로벌을 다시 설정했다.

일부러 local name을 Wrong로 잘못 입력했다.

 

grep으로 user를 찾아서 user가 포함된 애들만 출력되게 했다.

 

 

git log를 보려는데 오류가 발생했다.

알고보니 = 옆에 공백이 있어서 그렇다.

와우 최악이다.

 

깃은 띄어쓰기가 있으면 매개변수로 인식을 해서 오류가 난다고 한다.

 

로그를 확인해보니 제대로 나온다.

 

 

user name을 아까 잘못 입력했으니 제대로 입력해본다.

이렇게 로컬 이름을 변경한 후 커밋을 다시 확인해보니

변경되지 않은 것을 확인할 수 있다.

2의 정답

커밋의 작성자가 바뀌지 않는다.

 

이렇게 배운 것을 옆자리 교육생에게 알려주었다.

옆자리 교육생은 나에게 아래의 것을 알려주었다.

 

각자 서로 공부하고 서로에게 알려주니 시간도 절약되고 공부도 되고 좋았다.

 

 

1

 

 

 

2

 

3

 

4

 

 

5

 

 

 

 

 

 

 

 


 


 

1

 


 

 

 

2

 

 


 

 

3

팀원과 브랜치 충돌이 발생하여 난 에러다.

 

git fetch, --no-rebase를 하여 push를 해결했다.

 

 

 

push 성공 !

git pull도 성공 !!!

 

즉, origin의 이름을 변경했을 경우에도 인자없이 pull, push가 정상적으로 작동한다.

 

branch -vv로 확인해보면 origin->upstream으로 변경된 것을 확인할 수 있다.

 

다시 원래대로 origin으로 변경한다.

 


하루가 어떻게 지나간지 모르겠다.

실습을 하니까 정신없이 몰입하게 된다.

 

실습 할 것은 많고 시간이 촉박해서 더더욱 집중하게된 거 같다.

아쉬운 점은 내일은 리눅스(wsl)를 해야해서

남은 깃 실습을 이어서 하기 어렵다는 점이다.

 

 

수업이 끝난 후 농스닥 팀원들과 공모전에 제출할 과제를 위해 8시까지 작업했다.

요즘 너무너무 바쁘다.