Skip to main content

Command Palette

Search for a command to run...

Git & Github 특강

Updated
•4 min read•View as Markdown
Git & Github 특강

필수 리눅스 명령어

pwd
현재 작업중인 디렉토리 경로 표시
~는 home 경로이며, 바탕화면을 의미하는 desktop 폴더의 상위 경로

ls
디렉토리 내의 파일 및 다른 디렉토리 목록 표시

ls -a
숨겨진 파일(보통 .으로 시작함)도 모두 볼 수 있음

cd 폴더명
다른 디렉토리로 이동

..
한단계 위의 폴더라는 뜻 (뒤로가기)

.
현재 경로

mkdir 폴더명
현재 경로에서 새 디렉토리 생성

ll
적었을 때 앞이 d로 시작되면 폴더인 것

touch 파일명
현재 경로에서 새 파일 생성 또는 기존 파일의 타임스탬프 갱신


Git, Github 개념

하나의 폴더 내에서 코드의 변경점을 기록하기 위해 git을 사용
에러발생 시 과거의 코드 기록으로 쉽게 되돌아가기 가능

Git이란?

코드 변경점 기록, 버전 관리 도구(형상 관리 도구)

Github 란?

git 리포지토리를 호스팅해주는 웹 기반 서비스로 코드의 백업 및 협업에 유용

Git과 Github 의 차이점

git은 로컬에서 코드의 버전을 관리하는 도구이고,
github는 웹 기반 서비스로 코드를 호스팅하고 협업을 돕는 도구이다.


Git의 작동 원리

Git은 코드의 변경점을 추적하여 이를 버전으로 관리하는 도구이다.

사용자가 코드를 수정하고 commit을 실행하면, 그 시점의 코드 상태를 스냅샷으로 저장한다.

이렇게 각 변경점마다 스냅샷을 찍어 버전을 만들어 나간다.

Branch를 통해 여러 버전을 동시에 관리하고, Merge로 다른 버전과 합칠 수도 있다.
Git은 코드의 변경 이력을 체계적으로 관리해준다.

스냅샷으로 저장한다는 것은?

Git이 파일의 변경 내용을 직접 추적하지 않고, 특정 시점의 파일 전체를 스냅샷으로 저장한다는 의미이다. 이를 통해 Git은 빠르게 작동하고 효율적인 버전 관리를 할 수 있다.


git 필수 명령어

git init

코드 관리를 시작하는 명령어

initialize (초기화하다, 초기 세팅하다)의 준말

프로젝트 시작 전 딱 한번만 입력하면 됨

정확한 프로젝트 폴더(경로)에서 실행해야 함. 잘못하면 데스크탑 전체 파일, 폴더가 다 기록됨.

pwd로 반드시 경로 확인할 것

Initialized empty Git repository in 가 나오면 성공 !

.git이 있으면 해당 폴더에서는 git init 할 필요가 없다. (.git 확인 법 : ls -a)

git init 명령어를 입력하면 .git 폴더가 생기는데, 이때부터 코드 변경을 git에서 추적한다.

git status

저장되기 전 상황을 확인하는 명령어

빨간색이 나왔다 ! 아직 저장 안했다 !

git add & git commit

코드를 저장하는 명령어

git add 파일명
git commit -m “메세지 작성"

아직 저장된건 아니지만 저장 하려고 올려두면 초록색으로 바뀜

git add 파일명 → 저장하기 전 저장할 파일 저장

git commit -m “메세지 작성" → 실제로 저장하는 명령어

add는 지정하는것, commit은 저장하는 것

git log

저장 내역을 확인하는 명령어

커밋 메시지로 코드 변경점 추측 가능

커밋 id를 통해 과거로 돌아가기 가능


github로 코드 백업하기 (git push)

git remote add origin <github 주소>

- git push “github 주소" 브랜치명 → 귀찮다

- guthub 주소를 origin 이라는 이름으로 저장

- git push origin 브랜치명 → 편하다 !

git branch -m main

- 기본 브랜치 = master → 노예 제도와 관련

- 현재 브랜치명 (master)을 main으로 바꾼다

git push -u origin main

- git push origin main → 귀찮아!

- git push → 이 명령어만 입력해도 git push origin main 해줘

git remote -v : 어떤 깃허브 주소에 있는지 나옴


github 협업 기초와 충돌 해결법 (conflict)

팀장

  1. 초기 프로젝트 코드 작성

  2. github 레포지토리 생성

  3. 코드 github에 올리기

나머지 팀원들은 협력자 등록하기

  1. 레포지토리 → settings → collaborators → add people 클릭

  2. 팀원들의 username 혹은 email로 추가 → 초대 수락해야 함

코드 복사해오기 - git clone

  1. 깃허브 주소 복사

  2. 다른 멤버가 코드를 만들 폴더 만들어주고

  3. vscode에서 해당 폴더로 들어간 다음 터미널

  4. git clone <깃허브 주소> .

팀원도 코드 변경하고 깃허브에 올리기 (팀원들은 git init 할 필요 없음)

  1. 코드 수정

  2. 코드 저장 명령어 실행 git add, git commit

  3. git push origin 브랜치명

다른 사람이 변경한 코드 내 코드에도 가져오기 - git pull

가지고 와서 내 로컬에 있는 코드와 합쳐주는 역할

  1. 코드 수정 후 git push origin 브랜치명 → 이때 브랜치명은 main으로

  2. git pull을 먼저 하라는 에러 발생 시 git pull origin 브랜치명 [merge 옵션 코드 복사해서 붙여넣기]

  3. git config pull.rebase false

  4. git pull origin main

터미널에 아무것도 입려깅 안되는 vim 에디터가 뜬다면 → esc : wq 엔터

충돌(conflict) 해결하기

git pull 명령어로 가져왔을 때 fix conflicts and then commit the result 오류가 나면

  1. 충돌 발생한 파일 확인하기

  2. 둘중 하나만 선택하거나 둘 다 선택해서 고치기

충돌(conflict) 해결 후 다시 git push 하기

  1. 코드 수정

  2. 코드 저장 명령어 실행 git add . & git commit -m “메세지"

  3. git push origin 브랜치명

23 views

More from this blog

s3사용 및 s3:PutBucketPolicy 권한 오류

1. S3 생성 중 정책 생성 페이지에서 s3:PutBucketPolicy 권한이 없어 오류 발생 IAM 사용이 아닌 루트 사용자 버전으로 설명 AWS IAM 콘솔 → 정책 → AdministratorAccess⁠검색→ 정책이 나타나면 사용자에 연결→ 없다면 새로운 정책 추가 없으므로 AdministratorAccess 생성 정책 생성 버튼 클릭 → JSON 탭 선택 후 아래 코드 입력 → 생성 { "Version": "2012-10-1...

Mar 12, 20252 min read9
s3사용 및 s3:PutBucketPolicy 권한 오류

챗봇과 사용자의 대화 내용이 길어질수록 llm 호출 시 토큰 수가 증가하여 응답 시간이 지연되는 문제가 발생

https://youtu.be/5soSQgVHGEA OpenAI API를 이용한 챗봇을 만들면서 대화가 길어질수록 LLM 호출 시 토큰 수 증가로 응답 시간이길어지는 문제가 발생 문제분석 여기서 생각하는 문제는 db 조회의 부하 처음 챗봇에게 부여하는 역할이 너무 긴데, 이걸 매 API 호출마다 전송함 대화 흐름을 기억하기 위해 챗봇-유저 간 대화 내용을 모두 DB에 저장한 다음 그대로 API 호출 마다 LLM에 전달함 → 모든 대화 ...

Jan 16, 20253 min read122
챗봇과 사용자의 대화 내용이 길어질수록 llm 호출 시 토큰 수가 증가하여 응답 시간이 지연되는 문제가 발생

dayeon's blog

124 posts