git & github

김예린·2023년 12월 21일
0

필수 리눅스 명령어

pwd : 현재 작업 디렉토리 보여줌
~ : root, 우리가 보는 데스크탑보다 상위의 폴더
ls -a(list all) : 숨겨진 파일(보통 . 로 시작)도 모두 볼 수 있음
cd : change directory - ls 명령어에서 확인된 폴더로 이동 가능
mkdir 폴더명 : make directory - 폴더 만들기
touch 파일명 : 현재 경로에서 파일 만들기 ex) touch test.txt

Git?

코드 변경점 기록 = 버전 관리 도구 = 형상 관리 도구
소프트웨어의 변경사항을 체계적으로 추적하고 통제하는 것
github: 온라인 백업, 공유, 협업

Git 필수 명령어

git init :
코드 관리를 시작하는 명령어. 초기 세팅을 하는 명령어 프로젝트 시작전 한번만 입력하면 됨.(여러번 입력해도 문제 없긴함) * 정확한 프로젝트 폴더(경로)에서 입력해야함
.git 폴더 생성. 코드 변경을 git에서 추적한다.

git add : 저장하기 전 저장할 파일 지정 - staging area
git commit : 실제로 저장하는 명령어 - repository
git add 파일명 -> git commit -m "커밋 메세지"

git status : 저장 여부 확인
git remote add origin <github 주소>
: origin에 깃허브 주소 저장
git branch -M main
: 브랜치 지정. 현재 브랜치명을 main으로 바꾼다.
git push origin 브랜치명: 수정된 코드 github에 반영하기

흐름 정리

git사용해서 관리하고싶으면 vscode에서 내가 작업할 폴더 열고 터미널열어서
git init
이거 입력하면 이제 git이 내가 뭘하든 다 감시하고 있음 cctv보다 무서움

내가 파일 만들어서 막 코드 어쩌구저쩌구 멋지게 썼다. -> 내가 만든 파일 현재상태 기록하고 싶은데? 이러면 이제 아래 입력

git add <파일명> //git add index.html
요러케 입력 하고 enter 치고(만약 파일이 여러개면 git add . 입력하면 됨 뒤에 점임)

git commit -m '나의 첫 파일'

커밋 메세지 써서 커밋한다. 커밋 메세지 쓰는 이유는 내가 이제 git에 기록하고 수정하고 할 것아님 그럼 내가 뭘 수정하고 뭘 저장했는지 기록해주면 좋겠(커밋메세지 적는 룰이 있다고 들음)

1번. git add <파일명>으로 기록할 파일부터 고르고
2번.git commit으로 커밋메세지 써서 커밋!!

내가 커밋한 내역을 보고 싶으면
git log -all online
이거 입력하면 막 노란색글씨로 ea44f1b 막 요딴 영어같은거 나옴 이게 커밋 아이디임

내가 파일 수정해서 커밋하기 전에 현 파일과 최근 커밋한 파일의 차이점을 알고싶을땐 아래 입력.

git diff

Github 협업하기 + 충돌 해결하기

남이 한 코드 복사해오기 - git clone 레포주소 .
남이 푸시한 코드 받아오기 - git pull : push 전에 pull 해야함

충돌 해결하기

같은 파일의 같은 위치에 코드가 변경되었기 때문에 발생한다
걍 내가 수정하고 싶은대로 수정하고 애드커밋푸시..

branch 만들기

branch만드는 법
branch는 복사본임
복사본 우리가 계속 수정하고 추가하면서 커밋한다.
근데 내가 만드는 코드에 새로운 기능을 추가하고싶은거다.
근데 내가 이거 바꾸면 내가 공들여 만들어 놓은 코드(그래도 돌아가게 만든 코드..) 안 돌아갈것같고 그러니까 branch(=복사본) 만들어서 내 맘대로 다른데다가 코딩해보고 되면 합치고 안되면 버리고 할게.
그래서 협업할때도 다른 사람들이 열심히 잘 만들어 놓은 코드 바보인 내가 수정하면 우리 팀 코드 망할 수 있으니까 복사본 만들어서 나 따로 코딩하다가 운좋게 잘되면 합치고 안되면 역시..이럼서 없애면 됨

그러니 항상 무조건 branch만들어야함 ^^

git branch <브랜치이름> //복사본 만들자
git switch <브랜치이름> //방금 만든 복사본으로 이동하자

branch 복사본 만들어서 작업한거는 절대 원래 브랜치에는 영향이 가지 않으니 맘놓고 니 맘대로 코드 짜도된다..

자 이제 복사본 만들어서 내 맘대로 코드 짜다가 100000000000만분의 1의 확률로 기능을 만들었다!!!!
코드가 돌아간다!!!!! 그럼 이제 당당하게 메인브랜치에 합치면됨 => merge(병합)하면됨.

profile
아자아자

0개의 댓글