오픈소스 git&github 스터디(1)

파일 위치 설정하고
git add 명령어를 이용해 원하는 파일을 깃헙에 업로드한다.

그리고 git commit 명령어를 통해 등록한 코드에 대한 기록을 한다.

예시(document.txt 파일 업로드 과정)

git add document.txt
git commit -m "Add Text File [document.txt]"
git push

실행결과


오픈소스의 컨트리뷰션 활동은 이력이 된다!
별이 많이 박힌 (1000개 이상) 오픈소스를 보는 것만으로도 좋은 자극과 공부가 될 수 있다!

커미터 <-> 컨트리뷰터
커미터 (committer) : 실제로 누군가 컨트리뷰션을 하면, 해당 내용을 라부하고 실제 프로젝트에 반영할지 결정하는 사람. 오픈소스 관리자


깃은 프로젝트를 commit하여 적용하는 순간을 중요시함. 파일 자체를 저장하기 보다 수정내역 자체를 저장 --> 메모리를 효율적으로 관리함.

git add : working directory에서 진행한 작업을 git add 명령어를 통해 staging area에 반영한다.

git commit : local repository에 반영한다. 내 컴퓨터에 있는 .git 폴더에 기록한다.

git push : commit한 내용을 깃헙(remote repository)에 기록한다.

git fetch & git merge : 다른 사람이 작업한 내용을 내 컴퓨터에 반영한다.

git pull : fetch와 merge를 동시에 하는 것

저장소 (repository)

repo(저장소)는 실제 소스코드가 담겨 있으면서 commit 내역 등의 모든 작업이력이 담겨있는 공간
--> .git


소스코드 수정

  1. 해당 프로젝트의 소속된 사람이 아닌 경우
    커뮤니티의 구성원이 아니라서 커밋하여 저장소에 적용할 권한이 없다면, 소스코드 수정에 제약이 있다. 이런 경우 PR(Pull Request)를 작성하여 오픈소스에 기여

오픈소스의 관리자가 승인하는 경우 반영됨.

  1. 해당 프로젝트에 소속된 사람인 경우
    그냥 커밋하고 푸쉬하면 된다.

git status 명령어를 입력하면 현재 프로젝트의 상태를 확인 (staging area에 올라갔는지 아닌지 확인할 수 있다.)

git reset 명령어를 통해 staging area에 올라가있는 파일을 다시 내릴 수 있다.

git add . --> "."은 모든 파일을 add 한다는 것이다.

git checkout -- (파일명) 명령어를 통해서 이전 버젼의 파일로 복구가 가능하다.

마지막으로 push 명령어를 통해 깃헙에 반영해준다.


commit 내역 수정

git log : commit 내역을 보여줌.

C:\Tutorials\Git-Tutorial>git log
commit 43a8e973b16277fb4027a9ca0046f4636a46c2eb (HEAD -> main, origin/main, origin/HEAD)
Author: minhee020 <[email protected]>
Date:   Wed Dec 29 14:37:21 2021 +0900

    Add my_module [Mul]

commit bde6d96c2fd200a7ee0bd0f80c74e94d2d1a3fad
Author: minhee020 <[email protected]>
Date:   Wed Dec 29 14:21:27 2021 +0900

    Add my_moudle [Sub]

commit 076271bc0ef3e46c9f2dff6197d5d3e9866aff85
Author: minhee020 <[email protected]>
Date:   Wed Dec 29 14:18:45 2021 +0900

    Add mu_module [Add]

commit fa9bbda1badc66fb64a16ae530377bfd36866104
Author: minhee020 <[email protected]>
Date:   Wed Dec 29 13:22:05 2021 +0900

    Add Text File [document.txt]

git reset --hard (log의 코드 입력) : 이 이후 발생한 모든 수정내역을 삭제
(소프트도 존재한다.)

git push -f : 일반적인 push는 오류가 뜨기 때문에 -f 옵션을 이용해 강제적으로 깃헙에 푸쉬해준다.

좋은 웹페이지 즐겨찾기