728x90

팀플하느라 강제로 깃을 써본적은있는데..

 

공부한 내용들을 정리해야지 하며 미루고 미루다 오늘은 해본다...

 

찔금찔금 깃을 배우고 써봐서 뭔가 다 해보긴 한것들인데 막상 하려니 뭐부터 할지 혼란스러워서 미뤄왔기에 과정을 정리해본다.

엄청엄청 쉽게쓸생각이니까 나의 미천한 글이 처음하시는 분들에게 도움이 되길 바람

물론 첫술에 배부를 수 없으니 더 좋은 글들도 찾아보시긜....

 

 

1. GITHUB 회원가입 : 은 패스

구글 네이버 가입하는거랑 비슷허다

 

2. Repository 생성

들어가면 메인부터 만들기가 잘 보이는곳에있다..

만들기를 누르고

저장소이름 / 내용을 간단히 적으면 된다

부끄러우면 프라이빗 해도 되지만 뭐... 난 그냥 다 퍼블릭으로 했다 하하

열심히 해보고 싶은 프로젝트는 프로젝트 단위로 만들었고 

자잔한 공부는 비슷한 주제끼리 묶기로 했다(오늘 만드는 레포지토리 : 운영체제와 리눅스 시스템콜)

 

로컬에서 git init을 하고 그걸 올려도 되긴 하나 나는 repository 생성 후 clone 이 왠지 더 좋당

Add a ReadMe 나 .gitignore 는 선택하던말던 상관없는데

리드미만 추가하는걸 선호한다

.gitignore 는 아래에서 작성할거고

Readme는 개대충 깃허브가 자동으로 한두줄이라도 써주기때문에 체크하면 편하다고 갠적으로 생각(찐 프로젝트는 리드미가 엄청 중요하지만.... 일단은 올리는게 중요하니까 그건 나중에 생각하자)

 

3. git clone

로컬에서 입력하는 명령어. 방금 위에서 생성한 레포의 링크를 넣으면

깃이 들어있는..?폴더를 통째 생성해준다.

명령어는

git clone [레포지토리URL] 이다.

 

 

 

누르면 URL이 복사되고..

ssh 를 쓰고싶으면 ssh 키를 받아야하는데 그건 다음에 글을 또 써봐야겠담...

난 저번에 받아둔게 있어서 그냥 고고

일단 HTTPS해도 갠춘하다

 

terminal 로 해당 폴더를 놓을 경로에 가서

명령어를 치면 된당

(윈도우 쓰는 사람이면 깃 설치했으면 아마...폴더에서 우클릭하면 GIT Bash 라는게 있고

그거 누르면 CLI창이 뜰것이당 거기서 명령어 치면 되고,

맥의 경우는 파인더에서 맨밑에 조그맣게 경로가 나오는데 거기서 폴더 우클릭하면 Open in terminal 이 있다.

리눅스쓰는사람은....뭐 내가 설명을...할필요가있나....?ㅋㅋㅋ)

 

그러면 짜잔! .git 디렉토리가 있는 reposirtory 와 동일한 디렉토리가 만들어진당

이거 열면 .git 이랑 리드미 뭐 고런거 그대로 들어있음~

 

 

3. 소스코드 업로드 / 코딩

 나는 이미 작성해둔 코드가 있었으므로 복붙(원래 경로에는 오만게 다있어서 복잡하고... 깃허브에는 내가 다시 참고하고플것 같은거... 좀 깔끔하게 올려보려한다...)

또, 약간 레포지토리 안에서도 주제별로 나누려고 디렉토리를 하나 더 만들었다

Makefile 은 요 디렉토리 안에 작성할 것이다

 

 

 

4. .gitignore 와 Makefile 작성(패스해도 ㄱㅊ)

 

.gitignore : github에 올리지 않는 파일이나 디렉토리, 확장자를 설정한다. API key같은것도 이그노어 해주어야한다.

걍 파일명을 .gitignore로 하고 아무 에디터나 써서 내용을 적으면 된다.

메모장 ㅇㅋ

 

나는 오늘은.. 확장자 .a 와 .o 를 일단 제외해 주었다.

본인이 쓰는 언어등에 따라 git ignore를 적절히 생성해주는 사이트들도 있다

>> https://www.toptal.com/developers/gitignore

 

gitignore.io

Create useful .gitignore files for your project

www.toptal.com

안드 프로젝트 이그노어는 여기서 도움을 받을 것이다.... 그런 프로젝트들은 구조가 너무 복잡시럽기땜시....

 

내가 작성한 파일은 다음과 같다(꼴랑두줄)

.gitignore 사용법을 좀 기억해두고자 주석으로 메모를 조금 해뒀다

# Just file name 그냥 파일 이름
# /[filename] : file on certain route
# [dir name]/ : ends with / means it's a directory /로 끝나면 디렉토리
# ![file not to ignore or exception] 
# [route]/**/[all the files have this name]
# *.txt : all txt files

*.o
*.a

 

그리고 Makefile..

이건 빌드할때의 규칙을 설정해둔것으로..

나중에 다른사람이 다운받거나 내가 코드를 조금씩 고치고 계속 새로 빌드해서 실행할 때

해당 디렉토리에서 make 만 치면 설정대로 빌드가 되도록 해둔 것이다.

 

이건 나중에 결국은 알아야겠지만 뭐라는건지 싶으면 몰라도될거같다... 왜냐면 저거 공부하는데만도 나는 시간이 좀 걸렷엇기떄문 ㅠ  걍 이거 없으면 매번 통합개발툴로 빌드하던지 뭐 그렇게하면된다... 배포하는거 아니고 공부하는거니깜...

파일명은 Makefile (확장자x)

 

나는 아래와 같이 작성해주었다

쓰레드를 쓰는 코드라 옵션으로 -lpthread 추가..

 

CC = gcc
CFLAGS =
LDFLAGS = -lpthread

.SUFFIXES : .c .o
.c.o :
	$(CC) -c $(CFLAGS) $<
	
ALL = shm sipc1 sipc2 sipc_sem sipc_m

all : $(ALL)

shm : shm.o
	$(CC) -o $@ $< $(LDFLAGS)
	
sipc1 : sipc1.o
	$(CC) -o $@ $< $(LDFLAGS)

sipc2 : sipc.o
	$(CC) -o $@ $< $(LDFLAGS)

sipc_sem : sipc_sem.o
	$(CC) -o $@ $< $(LDFLAGS)

sipc_m : sipc_m
	$(CC) -o $@ $< $(LDFLAGS)

clean :
	rm -rf *.o $(ALL)

 

 

 

 

4. git add / git commit

add는 스테이지..(앞으로 깃에 올라갈애들이 대기하는 곳..)에 올리는 것이고 (깃이 기억할 상태를 조성?하는것)

commit 은 깃에게 이상태를 기억해! 하는것이다

push 는 기억한 상태를 온라인에도 동기화시키는 것이다..

 

스테이지에 착착올리고 하나둘셋~ 하고 사진 촥 찍는다고 생각하면 된다 하하하

 

git add . << 에서 . 은 전부라는 뜻이당

git status 는 상태를 볼 수 있다

지금 다 새파일들이라서 newfile로 뜸

 

이제 커밋을 해보자

git commit

을 하면 현재 스테이지에 있는 애들이 다 저장되는데

보통 -m "커밋메시지"

옵션을 넣는다...

뭔커밋인지 요량껏 쓰면된다.

 

그리고 git status 로 확인하면

당신의 브랜치가 origin/main 으로부터 1개 앞선다고 나오는데

원격 레포지토리(깃허브) 보다 내가 1개 커밋을 많이했다는 뜻이당

 

고로 지금 한 커밋을 깃허브에도 업데이트 해주어야한당

 

5. git push

git push [원격저장소이름] [푸시하려는브랜치]

젤 기본값은 origin 과 main 이다

(원래 master 였는데 main으로 바꼈네...몰랐네...)

 

이렇게 하면

 

짜잔!

 

 

오늘 새로 올린 IPC_Synchronization 폴더와 내용물들이 깃허브에 잘올라갔당

 

 

 

엄청 많은 내용들이 생략되었으나

세상에 좋은 책도 글도 너무 많으니 참고할 수 있을거라고 생각한다.

 

나는 그저 처음할때 너무 막막하고 자세한 설명들이 더 어렵게 느껴졌었기에 허접하지만 이렇게 글을 남겨본다

 

 

그럼 굿나잇 나자신!!

728x90

+ Recent posts