27~31

JH공원·2025년 3월 17일

즉석노트

목록 보기
31/32

27 - git 은 개발 프로젝트 관리를 위해 만들어진것이다.
각 사용자의 컴퓨터에서 개발을하고 하나의 프로그램으로 만들기위해 실시간으로 개발 현황을 업로드 할 수 있는 공유 폴더를 만드는 것이다 그리고 이 공유 폴더를 git 이라고 한다. 서로 직접 파일을 주고받을 필요가 없다는 장점이 있다.

공용 폴더를 복사및 다운로드 하는 명령어
git clone (공용폴더 주소) 주소 localhost 부분 뒤에 :포트번호를 입력해줘야 한다.

해당 폴더를 수정하고 다시 해당 주소에 업로드 한다면 깃의 기능을 온전히 사용하는 것이다.

28 - 실제 개발자들은 깃을 통해 작업을 많이 하곤한다. 그리고 이러한 소스코드에 비밀번호나 관리자 아이디등을 업무 편의상 주석으로 달아놓는 경우가 많다.
출시 과정에서 이러한 주요정보들을 바꾸고 서비스 하면 문제가 없지만 종종 소스코드에 적힌 중요 정보들을 그대로 출시까지 사용하는 경우도 있기때문에 공격자들이 해당 사이트가 개발된 깃 레포 정보를 알게되면 해당 git repository 에서 중요 정보들을 탈취 할 수 있다.

깃은 협력자와 공동 개발을 위해 만들어진 저장장치이기 때문에 수정을 하더라도 이전 버전의 파일을 볼 수 있을뿐더러 어떠한 부분을 어떤 협력자가 수정했는지 확인 할 수 있기 때문에 깃의 파일을 수정한다고 중요정보 노출이 방지된것은 아니다.

git log = 깃에 남겨진 로그들을 확인하는 방법 (위에서부터 최신순이다.)

commit - 파일을 올리기위해 확인 도장을 찍는 절차
push - 최종적으로 파일을 서버에 올리는 절차

git checkout (commit id) = 해당 커밋 버전의 깃을 다운로드 할 수 있다.

29 - production (배포버전)

git에는 branch 라는 개념이 있다.

개발을 하는데 있어서 갈래길 같은게 있는것인데

예를들어 main branch 가 있고 이것이 주로 개발자들이 개발하는 git 이라면
해당 branch 를 이용해 또다른 버전의 개발을 하고싶을때 새로운 branch를 추가해
하나의 갈래길을 더 만들 수 있는것이다.
이러한 식의 병렬개발을 할 경우 하나의 git내에서의 코드를 혼동하지 않고 할 수 있는것이다.

dev -> 개발
pro -> 배포
보통 이런식으로도 branch를 많이 나눈다. 주로 주요 정보는 개발 버전의 branch에서 많이 발견이 된다.

git branch -a = 전체 branch를 출력하는 옵션이다.

git checkout [해당 깃의 경로] = 해당 branch로 전환하는 명령어

30 - 깃에는 tag라는 것이 있다.
쉽게 생각해 포스트잇이라고 생각하면 되는데 개발 과정 중간중간 자신이 남기고 싶은 메모를 남기는것이라 생각하면 쉽다.

git tag = 태그를 확인하는 명령어
git show [태그명] = 해당 태그를 출력하는 명령어

출시과정에서 태그에 중요 정보가 있을 수 도 있으니 이것또한 조심해야한다.

31 - 깃에 파일을 업로드하기 전에는 크게 세가지 과정이 있다.

add - 추가할 파일을 깃에 대기목록으로 올리는과정
commit - 추가할 파일에 대한 결제도장 즉 확인도장을 찍는 과정
push-

작업시 생략해야할 파일들이 지정돼 있을 수도 있느니 ignore 항목을 잘 찾아봐야한다.

ignore 항목에서 지정한 파일을 올리고 싶을때 우리는 add에 -f 옵션을 주어 해당 업로드를 강제할 수 있다.

commit을 하는 과정에서 commit -m "[하고싶은말]" 를 통해 해당 결제가 무슨 결제인지 메모를 할 수 있다. 즉 로그를 봤을때 해당 메모를 확인하고 이해할 수 있는 것이다. 이 과정에서는 따로 어떤 파일을 올릴지 적지 않아도 된다.

git push -u origin [지정할 branch] = 어떤 브랜치에 최종적으로 업로드 할지 정하고 업로드 하는 명령어 따로 브랜치가 없을때는 push 까지만 적어도 된다.

profile
개발&해킹 일지 작성

0개의 댓글