Tools
Command Mode - 복사/지우기/붙여넣기 명령
Command Mode - 복사/지우기/붙여넣기 명령
2021.02.06Command 모드에서는 지우기와 관련된 명령들도 여러가지 존재하는 데 그 종류는 다음과 같다. 종류 기능 x 한 글자 지우기 dw 현재 커서의 위치에 해당하는 단어 지우기 dd 현재 커서가 위치한 라인을 지우기 (숫자)dd 현재 커서가 위치한 라인부터 숫자만큼의 라인내용 삭제 D 현재 커서의 위치부터 라인 끝까지 삭제 J 커서 아래라인을 커서 라인에 공백하나를 추가하고 붙임 y 한 라인의 내용을 모두 복사 p 붙여넣기 1. x - 한글자 지우기 다음의 상태에서 x를 입력하면 Insert 모드로 변경하지 않았음에도 삭제가 이루어졌다. 해당커서가 위치했었던 "r" 문자가 삭제되었다. 2. dw - 현재 커서의 위치에 해당하는 단어 지우기 다음과 같은 상황에서 dw를 입력하면 커서가 위치해있던 단어..
Command Mode -> Insert(Edit)모드로 진입하는 명령
Command Mode -> Insert(Edit)모드로 진입하는 명령
2021.02.05초기에 vim을 실행하면 설정되어 있는 모드인 명령모드(Command Mode)에서 문서를 작성하거나 편집하기 위한 Insert 모드로 넘어가기 위한 명령의 키는 여러가지가 있는 데 그 종류는 다음과 같다. 종류 기능 i 현재 커서의 앞에서 편집시작 a 현재 커서의 다음부터 편집시작 A 현재 라인의 맨 끝으로 커서를 이동하고 편집시작 o 현재 커서 아래에 새로운 줄을 추가하고 편집시작 O 현재 커서 위에 새로운 줄을 추가하고 편집시작 s 현재 위치의 문자를 지우고 입력모드로 진입 S 현재 위치의 라인을 모두 지우고 입력모드로 진입 위 명령들은 모두 Command 모드에서 Insert 모드로 진입할 수 있는 명령어들이다. 다음과 같은 내용을 가진 hello.txt를 가지고 각 명령들이 어떻게 동작하는 ..
Vim 이란 무엇인가?
Vim 이란 무엇인가?
2021.02.04Vim Linux의 대표적인 텍스트 편집기 vi와 호환되는 텍스트 편집기 현재의 linux가 나오기 전에 Unix라는 OS가 있었다. 그리고 이 Unix 시절부터 사용되던 텍스트 편집기인 vi라는 것이 있었는 데 이 vi의 새로운 버전이 vim이고 그렇기 때문에 이 vim은 기존의 vi와 기본적인 기능면에 있어서 동일하다. vim에서 가장 중요한 것은 모드를 구분하는 것이다. vim은 총 4가지 모드를 가지고 있는 데 그것은 다음과 같다. 1. 일반(Normal)모드 or 명령(Command)모드 2. 명령줄 모드(Command Line Mode) 3. 편집/입력모드(insert mode) 4. 비쥬얼 / 선택모드(Visual) 그렇다면 이 vim을 공부해야하는 이유는 무엇일까? 사실 vim을 공부..
Github Page란?
Github Page란?
2021.01.22Github Page github에서 제공하는 정적 웹사이트 호스팅 서비스 Github page는 github에서 제공하는 정적 웹사이트 호스팅 서비스로서 자신의 repository에서 웹페이지를 구동할 수 있도록 해준다. 여기서 호스팅이 무엇인지, 정적 웹사이트는 무엇인지에 대한 내용은 해당 링크의 블로그를 참고하기 바란다. 해당 블로그 내에는 관련 용어뿐 아니라 github page에 대한 언급도 있으니 참고하면 많은 도움이 될 것이다. https://opentutorials.org/course/3084/18891 웹호스팅 (github pages) - 생활코딩 --- 직접 웹서버를 운영하는 일은 쉽지 않은 일입니다. 우선 컴퓨터가 있어야 하고요, 컴퓨터가 냉장고처럼 항상 켜져 있어야 합니다. 웹서버..
github을 이용한 협업상황에서의 질문
github을 이용한 협업상황에서의 질문
2021.01.21지금까지 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
2021.01.20git rebase는 활용할 수 있는 부분이 정말 많이 있지만 이번에는 commit 메시지를 수정함에 있어서 git rebase를 활용하는 것을 보도록 하겠다. 다음과 같이 본인이 관리하고 있던 프로젝트의 commit log에서 다음과 같이 commit 메시지를 잘못 적어서 수정이 필요한 상황이라고 가정해보자. 기록된 commit의 내역, 가장 최근에 commit한 버전이 1.2 버전이어야 하는데 메시지를 잘못 기입하여 1.3으로 기입되었고 commit 메시지의 기입이 변화된 내용에 대한 기술이 없어 어떠한 점이 변경되었는 지를 알수 없는 상황으로 commit message 수정이 필요한 상황이다. rebase 명령을 활용하기 위해서 명령어를 아래와 같이 입력해야 한다. git rebase -i --ro..
git revert, reset
git revert, reset
2021.01.19잘못수정한 소스를 실수로 commit을 해버리거나 하는 등의 이유로 이전 버전으로 돌아가고 싶은 경우가 있다. 이때 사용할 수 있는 명령어가 2가지 있는 데 그것이 바로 git revert와 git log이다. 이 두 명령어는 차이가 존재하는 데 이에 대해서 알아보도록 하자. git revert 특정 시점의 commit 상태로 변경하는 commit을 추가로 수행 git revert 명령은 특정 시점의 commit을 삭제하는 것이 아니라 이전 시점의 commit으로 되돌리는 효과가 나타나도록 새로운 commit을 추가하는 개념에 해당한다. 즉, git revert 명령을 수행하면 파일의 상태는 해당 commit 시점으로 돌아갈 수 있지만 여전히 git log에는 기록이 남아있기 때문에 revert한 com..
Git 실습 시나리오 따라해보기(3)
Git 실습 시나리오 따라해보기(3)
2021.01.18이번 실습에서는 이전 실습에 이어서 두 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)
Git 실습 시나리오 따라해보기(2)
2021.01.18이번에는 이전의 (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)
Git 실습 시나리오 따라해보기(1)
2021.01.17교재에서 제시된 시나리오 #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
git branch, merge
2021.01.16Branch? Branch란 어떤 작업을 독립적으로 수행하기 위한 개념이다. 브랜치란 어떤 작업을 독립적으로 수행하기 위한 개념이다. git에서는 바로 이 branch를 이용해서 다양한 버전관리를 수행할 수 있다. 예를들어 현재 개발을 진행하고 있는 주 프로젝트가 있고 이 프로젝트에 실험적으로 추가해보고자 하는 기능이 있을 수 있다. 하지만 이것을 바로 주코드에 포함시키고 구현해서 하는 것은 다소 부담이 되는 일이다. 왜냐하면 반드시 포함해야하는 기능이 아니라 실험적으로 추가해보고 테스트 해보려는 기능일 뿐인데 이 기능을 메인으로 관리하고 있는 프로젝트에 포함시킨다는 것은 굉장히 부담스러운 일이기 때문이다. 바로 이러한 상황에서 Branch와 Merge를 활용하면 여러가지 버전들을 효율적으로 관리하면서 ..
git push - github 사용하기
git push - github 사용하기
2021.01.15remote repository Local의 Git Repository가 아닌 외부서버 공간에 존재하는 Git Repository 실제로 개발은 많은 사람들이 협업하여 개발을 하게 되는 데 이렇게 협업을 하는 상황에서는 함께 개발 중인 프로젝트의 버전을 어떻게 관리하고 어떻게 이를 공유할 수 있을까? 기존처럼 로컬 저장소에 존재하는 Git Repository를 함께 열람할 수 있는 외부 서버 공간에 올려두고 이를 함께 공유하면 팀원들은 서로 동일한 버전으로 프로젝트의 버전을 맞추고 개발을 진행할 수 있게 된다. 실제로 이 Remote Repository를 사용할 수 있도록 해주는 서비스는 몇가지가 존재하는 데 그 중에서 가장 대표적으로 사용되는 것이 바로 "Github"이다. Github을 사용하면 아래..