The Ultimate Archive

완전히,

개발

Git & GitHub 독학시도

완WAN完 2023. 7. 20. 15:15

Git & GitHub 독학을 시도한지 이틀차.

 

구글링을 이래저래 해보며 여기저기 방문해보다가 정리가 잘된 곳들이 있어 그곳에서 알게된 것들을 정리할것이다. 틀린게 보인다면 수정해주십쇼. . 

 

*소스코드 저장  & 공유  => 협업*

코딩 외에 실무적인 문제를 해결해주는게 Git & GitHub

- 비단 대규모 프로젝트 뿐만이 아니라, 둘 혹은 셋이서 하는 프로젝트도 공유 할 수 있지?

- 동료한테 내 코드 보낼 때 쓰기 좋음 (아니면 압축해서 이메일로 보낼래? 과제 제출은 왜 깃허브 안쓰지. . ?)

- 포트폴리오 올릴 공간

- 로컬에 프로젝트 너무 많아서 저장공간이 부족해(사실 그럴일 많이 없긴한데 깃허브도 리포 많아지면 서버값 받나?)질 때 원격 저장공간으로도 쓸 수 있지?

 

Git : Version Control System

혼자 개발을 하더라도 프로젝트 버전관리에서 난황을 겪는 경우가 발생하는데 깃헙 쓸 줄 모를 때 학교 과제하다가 버전 관리 못해서 점수 못챙긴 불상사가 생긴 적이 있었음.

여튼 버전 관리가 주목적인데 뭐냐면 해놓은 것 까지 스냅샷이랄까, 백업파일이랄까, OS로 치면 이미지랄까, 필요한 시점의 체크포인트를 찍어서 언제든 원하는 곳으로 되돌릴 수 있게 하는 것이지 암. 

GitHub : Remote Repository

깃이랑 내나 똑같은건데 원격으로 올려서 관리할 수 있는 곳이랄까. .

 

여튼 사람들 카톡해대듯이 개발자들이 깃허브를 쓰길래 나도 잘해야겠다 싶어서 공부시작했음. 

일단 접하고 계정 만들어서 깃허브 쓰고 있다고 말하고 다닌지는 벌써 4년이 넘었달까. 

근데 제대로 못쓰고 있어서 후벼파보기로함. 

 

기본 용어

- Repository (저장소, 납골당, 비밀 따위를 털어놓을 수 있는 사람ㅋㅋ)

여튼 안전한 공간 같은 느낌.  프로젝트가 거주할 수 있는 디렉토리나 저장공간을 뜻한다. 

repo라고 줄여서도 사용(익숙해지자). 

내 컴퓨터 로컬 디렉토리, 깃허브, 다른 온라인 서버 호스트 등일 수도 있음.

 

- Commit (저지르다, 범하다, 위태롭게 하다, 위원회에 회부하다, 몸을 맡기다 등.. .  . 자살, suicide에 붙이는 동사도 commit임ㅋㅋ wanna_commit_suicide 뭐 이런 느낌. . )

Commit을 하면 그 시점의 내 repo의 체크포인트를 찍어라정도로 이해하면 된다.

 

- Branch (나뭇가지, 분기, 파생물, . .. .등)

난 항상 이게 제일 이해하기 어렵더라? 아니 이해는 되는데 적용을 잘 못시키겠던데 내가 멍청해서 그런듯.

여튼 브랜치는 말그대로 가지잖아? 그래서 여러 명이 프로젝트 하나 매달려서 하고 있는데 다 같이 메인 디렉토리 들쑤시고 있으면 파국일거아냐.  그래서 각자 가지를 쳐서 내 가지 니 가지 해서 복제를 뜬 다음에 그걸 각자 개발하고 메인 디렉토리에다가 갖다 붙여서 협업해나가는거지.

 

내가 이틀동안 보니까 일단 어떻게 하냐면,

1.  깃허브 웹사이트에 들어가서 회원가입

2.  내 컴에 Git 설치하기 -> 이건 구글링하면 바로 나옴

3.  내 개인 ssh 공개키를 깃허브에 등록해서 푸시해주기.

원래 커밋이랑 푸시하면 아이디 비번 물어봐서 깃허브에 올라가졌는데 2019년부터 보안이슈 때문에 종료했다네? 그래서 ssh 프로토콜로 업로드 하는 형식으로 바꼈나봐. 

 

일단은 이러한 양상임. command line에서 써야하는 자주 쓰이는 명령어들이 있는데 조만간 따로 글써서 정리하겠습니당. 

 

다른 곳으로 택배 보내는데

1.  택배 보낼 것 집에서 정리해서 봉지에 담기

2.  택배 상자 안에 포장하기

3.  보내기

 

git config --list

git init

리포 초기화?

 

git add . 

점 찍었으니까 파일 전부다 올리겠다는 것임

 

 

git status

뭘 추가할 수 있는지 찾아봤더니 이런 이런 애들 찾았어라고 뭐 올릴 수 있는지 상태 보여주는

 

git commit -m "first commit"

커밋한거임

히스토리를 만드는 과정

 

여기까지하고나면 깃허브로 올려야함. 

어디로 올릴지 로컬이랑 깃은 모르니까 좌표찍어줘야겠지?

git remote add origin git@github.com:username/reponame.git

연결고리를 만들어준거지. .. .

 

git remote -v

연결고리 잘 맺어졌는지 확인가능

 

git push origin master

 

여기까지 프로젝트 로컬에서 하다가 리포만들어서 깃허브에 처음 올리는 과정


코드 수정하다가 변동사항 꽤나 많아져서 한번 저장때리고 싶으면 

git add . (이게 아마 인덱스(커밋 때리기 전에 잠시 담아두는 곳이랄까?) 에 추가하는 거일꺼임)

 

git status

git이 내 파일 전체 싹다 훑고 어디에 변동사항 있는지 확인해줌.  그거 보고 아 인마이거 일 잘했네 싶으면 커밋때려주는거지

 

git commit -m "Second Commit" 그러면 체크포인트 핀 한번 찍었지?

 

했으니까 이제 올려주는거지

git push origin master


이제 여기부터는 협업 할 때 GitHub 쓰는 방법

 

상황 : 내가 누군가와 함께 작업하는데 그 사람 코드를 들고와서 내가 이어개발해야함. 

git clone git@github.com:username/reponame.git

(다운 받으려하는 디렉토리에 들어간 상태여야함)

 

할거 다하고 올리려면

git add . 

git commit -m "code edited"

(x) git push origin master 

마스터(최종 브랜치)에다가 절대 절대 넣으면 안됨.  당연한 말이지?

 

브랜치 새로 만들어서 내 공간 할당하기

git checkout -b wan

 

git push origin wan

 

하고 깃헙 들어가보면 pull request가 떠있음 누르면 텍스트 칠 수 있고 pull request 올리면 됨.  -> 함께 작업하는 사람한테 master에 merge하기 전에 검토해달라는거임

 

그럼 같이 하는 사람이 Merge pull request를 누를지 말지 고민하는거임.

Merge하고 나면 wan branch에서 커밋했던 사안이 master로 들어가서 대체되어 있는 것을 볼 수 있음

 

위의 상황과 같이 

Master에 변화가 생기면 그 프로젝트 작업하고 있던 모두가 Pull (동기화)를 해주어야함

그래야 프로젝트 할 때 차질이 안생기지?

 

상황: Master가 바뀌었는데 바뀔 동안 나도 개발해놓은게 있음 -> 거의 이런 상황이겠지?

이럴 때

git add . 

git commit -m "did some work"

커밋까지 해놓고 push말고 pull 해주는 거임

git pull origin master

git이 지 알아서 마스터랑 내꺼랑 대조해서 다른 부분 덮어 씌워준다. 

수정완료하고

git push origin master or branchname

 

 

잘못설정해서 remote origin 다시 설정해야할 때, 덮어쓰기가 안돼서 삭제 후에 추가해줘야함 삭제법 간단함!!

git remote rm origin해주면 된다.

 

 

 

 

 

 

참고 웹사이트

Zero2Bang : https://velog.io/@augus-xury/github-사용법-간단-정리

 

Git/Github 사용법 간단 정리

Git : version control system Github : remote repository

velog.io

 

블로그 제목을 잘 모르겠는 대단한 어떤 분의 블로그 : https://sudo-minz.tistory.com/10

 

GitHub 깃헙 사용법! 차근차근 첫 커밋 해보기 (git add,commit,push)

우선, 깃헙을 쓰려면 몇가지 간단한 리눅스 명령어를 알아야 한다. 🐾 리눅스 명령어 # pwd : 본인의 현재 위치 확인 # cd : change directory : 일루 들어갑니다~ 라는 의미 # mkdir : make directory : 폴더 생

sudo-minz.tistory.com

 

코딩알려주는누나 : https://hackmd.io/@oW_dDxdsRoSpl0M64Tfg2g/ByfwpNJ-K

 

Git 명령어 총정리집 (by 코딩알려주는 누나❤) - HackMD

# Git 명령어 총정리집 (by 코딩알려주는 누나❤) ![](https://c.tenor.com/UNTqMDwqh1gAAAAM/hello-hi.gif) 안녕하세요 여러분 :)

hackmd.io

 

'개발' 카테고리의 다른 글

개발 짜투리 정보  (0) 2023.08.25
AI (Artificial Inteligence, 인공지능)와 담론  (0) 2023.08.23
Flutter & Dart 독학  (0) 2023.08.08
PS (Problem Solving)  (0) 2023.07.21