Tools/Git, Github

    Github Page란?

    Github Page github에서 제공하는 정적 웹사이트 호스팅 서비스 Github page는 github에서 제공하는 정적 웹사이트 호스팅 서비스로서 자신의 repository에서 웹페이지를 구동할 수 있도록 해준다. 여기서 호스팅이 무엇인지, 정적 웹사이트는 무엇인지에 대한 내용은 해당 링크의 블로그를 참고하기 바란다. 해당 블로그 내에는 관련 용어뿐 아니라 github page에 대한 언급도 있으니 참고하면 많은 도움이 될 것이다. https://opentutorials.org/course/3084/18891 웹호스팅 (github pages) - 생활코딩 --- 직접 웹서버를 운영하는 일은 쉽지 않은 일입니다. 우선 컴퓨터가 있어야 하고요, 컴퓨터가 냉장고처럼 항상 켜져 있어야 합니다. 웹서버..

    github을 이용한 협업상황에서의 질문

    지금까지 Git과 Github에 대한 실습을 진행하면서 이전에 살펴보았던 협업구조에 대한 내용은 다음과 같았다. 이전에 살펴보았던 협업의 구조는 다음의 순서로 이루어졌다. 우선 팀원의 Github Repository를 나의 Github Repository로 Fork 나의 Github Repository로 fork한 프로젝트를 나의 Local Repository로 Clone Clone한 프로젝트 내용을 나의 Local Repository 내에서 수정 및 추가 해당 프로젝트를 다시 나의 Github Repository로 commit 해당 프로젝트를 팀원의 Github Repository로 PR(= Pull Request) 그런데 다음의 과정은 내가 이러한 작업을 진행하는 동안 팀원이 수정한 소스를 push ..

    git rebase

    git rebase는 활용할 수 있는 부분이 정말 많이 있지만 이번에는 commit 메시지를 수정함에 있어서 git rebase를 활용하는 것을 보도록 하겠다. 다음과 같이 본인이 관리하고 있던 프로젝트의 commit log에서 다음과 같이 commit 메시지를 잘못 적어서 수정이 필요한 상황이라고 가정해보자. 기록된 commit의 내역, 가장 최근에 commit한 버전이 1.2 버전이어야 하는데 메시지를 잘못 기입하여 1.3으로 기입되었고 commit 메시지의 기입이 변화된 내용에 대한 기술이 없어 어떠한 점이 변경되었는 지를 알수 없는 상황으로 commit message 수정이 필요한 상황이다. rebase 명령을 활용하기 위해서 명령어를 아래와 같이 입력해야 한다. git rebase -i --ro..

    git revert, reset

    잘못수정한 소스를 실수로 commit을 해버리거나 하는 등의 이유로 이전 버전으로 돌아가고 싶은 경우가 있다. 이때 사용할 수 있는 명령어가 2가지 있는 데 그것이 바로 git revert와 git log이다. 이 두 명령어는 차이가 존재하는 데 이에 대해서 알아보도록 하자. git revert 특정 시점의 commit 상태로 변경하는 commit을 추가로 수행 git revert 명령은 특정 시점의 commit을 삭제하는 것이 아니라 이전 시점의 commit으로 되돌리는 효과가 나타나도록 새로운 commit을 추가하는 개념에 해당한다. 즉, git revert 명령을 수행하면 파일의 상태는 해당 commit 시점으로 돌아갈 수 있지만 여전히 git log에는 기록이 남아있기 때문에 revert한 com..

    Git 실습 시나리오 따라해보기(3)

    이번 실습에서는 이전 실습에 이어서 두 branch(master, ver_B)에 서로 같은 파일을 추가하고 이를 서로 다르게 수정해서 merge를 시도해 보도록 하겠다. ​ 1. master에 smartCal.c 파일 추가 ​ 2. ver_B에 smartCal.c 파일 추가 3. master에 ver_B merge 시도 이전 시나리오(2)와는 달리 서로 같은 파일을 서로 다르게 수정한 상태에서 merge를 진행하려고 하니 충돌이 발생하여 merge가 진행되지 않는다. 이를 해결하기 위해서는 파일을 적절히 수정해준 후 다시 merge를 시도해야하는 데 이 상황에서 smartCal.c 파일을 열어보면 사용자가 내용을 쉽게 수정할 수 있도록 다음과 같은 형태로 바뀌어 있다. ​ 잘보면 다음과 같이 각 bran..

    Git 실습 시나리오 따라해보기(2)

    이번에는 이전의 (1) 시나리오에서 생성한 branch master와 ver_B에 각각 다른 파일을 생성해보고 그 후에 이를 master에 merge 하는 실습을 진행해 보도록 하겠다. 그리고 이렇게 했을 때 git log 상에 어떻게 나타나는 지도 같이 함께 살펴보도록 하겠다. ​ 1. master에서 새로운 파일 helloLinux.c 생성 및 add, commit 2. ver_B 에서 새로운 파일 helloGit.c 생성 helloLinux.c 는 master에서 관리중인 파일이기 때문에 ver_B에서는 나타나지 않는다. ​ 3. master에서 ver_B를 merge 기존에 master에 없는 파일을 merge 하려고 하자 특별히 commit 메시지를 남겨야 하지 않겠냐며 바로 merge가 되지 ..

    Git 실습 시나리오 따라해보기(1)

    교재에서 제시된 시나리오 #1에 대한 실습을 진행해 보도록 하겠다. 1. 디렉터리를 생성 및 .git 디렉터리를 생성 다음과 같이 branch_ex3 라는 디렉터리를 생성하고 그 후 git init 명령을 입력하여 .git 디렉터리를 추가한다. 여기서 cd 명령을 사용할 때 뒤에 적은 !$ 표현이 보이는 데 이 표현의 의미는 "이전 명령어의 마지막 Argument" 라는 의미이다. 이 상태에서 git branch를 입력해보면 다음과 같이 디렉터리 생성 후 아무런 저장된 내용이 없기 때문에 branch 가 없는 것을 확인할 수 있다. 2. 새로운 소스파일을 생성 후 add, commit 다음과 같이 vim을 실행하여서 다음과 같이 간단한 덧셈연산을 수행하는 cal.c 파일을 생성했다. 3. cal.c를 수..

    git branch, merge

    Branch? Branch란 어떤 작업을 독립적으로 수행하기 위한 개념이다. 브랜치란 어떤 작업을 독립적으로 수행하기 위한 개념이다. git에서는 바로 이 branch를 이용해서 다양한 버전관리를 수행할 수 있다. 예를들어 현재 개발을 진행하고 있는 주 프로젝트가 있고 이 프로젝트에 실험적으로 추가해보고자 하는 기능이 있을 수 있다. 하지만 이것을 바로 주코드에 포함시키고 구현해서 하는 것은 다소 부담이 되는 일이다. 왜냐하면 반드시 포함해야하는 기능이 아니라 실험적으로 추가해보고 테스트 해보려는 기능일 뿐인데 이 기능을 메인으로 관리하고 있는 프로젝트에 포함시킨다는 것은 굉장히 부담스러운 일이기 때문이다. 바로 이러한 상황에서 Branch와 Merge를 활용하면 여러가지 버전들을 효율적으로 관리하면서 ..

    git push - github 사용하기

    remote repository Local의 Git Repository가 아닌 외부서버 공간에 존재하는 Git Repository 실제로 개발은 많은 사람들이 협업하여 개발을 하게 되는 데 이렇게 협업을 하는 상황에서는 함께 개발 중인 프로젝트의 버전을 어떻게 관리하고 어떻게 이를 공유할 수 있을까? 기존처럼 로컬 저장소에 존재하는 Git Repository를 함께 열람할 수 있는 외부 서버 공간에 올려두고 이를 함께 공유하면 팀원들은 서로 동일한 버전으로 프로젝트의 버전을 맞추고 개발을 진행할 수 있게 된다. 실제로 이 Remote Repository를 사용할 수 있도록 해주는 서비스는 몇가지가 존재하는 데 그 중에서 가장 대표적으로 사용되는 것이 바로 "Github"이다. Github을 사용하면 아래..

    git checkup - 수정한 내용 취소하기

    git checkout (파일명) Modified 상태의 파일을 다시 Unmodified 상태의 파일로 되돌림 (해당 파일에 대한 변경내용을 취소) 우선 Working Directory에서 아래 첫번째 이미지와 같은 내용의 helloWorld.c 파일을 생성한다. 그리고 해당 파일을 Staging Area에 add한 후 commit을 진행한다. 그 후 Working Directory의 helloWorld.c 파일의 내용을 아래와 같이 수정한 후 수정한 내용을 저장한다. 그 후 git status 명령을 입력하면 아래와 같이 helloWorld.c 파일이 modified 상태가 된 것을 확인할 수 있다. 현재까지의 상태에 대해서 잠시 정리해보면 Working Directory에는 가장 최근에 수정한 버전의..