Git 설명서 - (3) .gitignore

|

파일 무시하기

프로젝트를 구성하다보면, 어떤 파일들은 Git에서 관리할 필요가 없는 파일들이 있습니다. 예를 들어 Android Studio 프로젝트에 있는 properties.local 같은 파일들은 로컬 PC에 있는 설정값이 기록된 파일이기 때문에 굳이 Git에 올릴 필요가 없는 파일입니다.

이러한 파일들은 .gitignore 파일을 이용해서 관리할 수 있습니다.

.gitignore에서 사용하는 규칙은 다음과 같습니다.

  • 아무 것도 없는 라인이나, # 으로 시작하는 라인은 무시
  • 표준 Glob 패턴을 사용
  • 폴더는 끝 부분에 ‘/’를 붙여서 표현
  • 느낌표(!)로 시작하는 파일은 무시하지 않음

Glob 패턴은 일반적으로 사용하는 정규표현식의 간략화 버전이라고 생각하면 됩니다.

예를 들면 다음과 같이 사용할 수 있습니다. 다음 예제는 제가 현재 Android Studio 또는 Eclipse에서 사용하는 .gitignore 파일의 내용입니다.

*.iml
.gradle
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures
.externalNativeBuild

*.apk
*.ap_
*.dex
bin/
gen/
local.properties
.classpath
.project
proguard/
*.ipr
*.iws

Git 설명서 - (2) 파일을 수정하고 저장하기

|

파일의 상태

Git 에서는 파일의 상태를 크게 4가지로 구분합니다.

  • untracked : Git에 add 되지 않은 상태
  • unmodified : Git에 add는 되었지만, 수정이 되지 않은 상태
  • modified : 파일이 수정되었으나 commit 할 준비가 되지 않은 상태
  • staged : 파일 수정이 완료되어 commit 만 하면 되는 상태

그리고 파일의 라이프 사이클은 다음과 같습니다.

image


파일의 상태 확인

파일의 상태는 git status 명령어를 이용해서 확인할 수 있습니다.

최초 상태(init을 하거나 clone을 한 상태)에서 git status 명령어를 실행해보면 다음과 같은 결과가 출력될 것입니다.

$ git status
On branch master
nothing to commit, working directory clean

현재 특별한 상태에 있는 파일이 하나도 없다는 뜻입니다.

새로운 파일을 하나 추가해봅니다. ‘README.md’ 파일을 폴더에 생성해보도록 하겠습니다.

$ git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)

    README.md

nothing added to commit but untracked files present (use "git add" to track)

폴더에는 파일이 추가되었지만, 아직 Git에는 add 가 되지 않았기 때문에 위와 같은 결과가 출력됩니다.


새로 생성한 파일

git add 명령어를 이용해서 위에서 생성한 ‘README.md’ 파일을 Git에 등록합니다.

$ git add README.md

$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        new file:   README.md

새로운 파일이 Git에 등록되었다는 문구가 출력되었습니다.


수정한 파일을 Staged 상태로 변경하기

‘commit’ 하기 위해서는 파일 수정이 완전히 끝나고 안정적(Staged)인 단계가 되어야 합니다. 즉, 파일 수정이 다 끝나면 해당 파일의 상태를 Staged 상태로 변경해주어야 합니다.

예를 들어, ‘snowdeer.cpp’ 라는 파일을 수정했다고 가정하면 git status 결과는 다음과 같이 출력될 것입니다.

$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        new file:   README.md

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   snowdeer.cpp

Staged 상태로 만들어주는 명령어는 git add 입니다. git add는 파일을 Git에서 관리하도록 등록해주는 역할도 하며, Staged 상태로 만들어주는 역할도 합니다.

$ git add snowdeer.cpp

$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        new file:   README.md
        modified:   snowdeer.cpp

만약 git add를 한 상태에서 또 다시 파일을 수정했다면 다시 한 번 git add 명령어를 이용해서 해당 수정분을 다시 Staged 상태로 만들어줘야 합니다.


파일 저장(commit)하기

새로 추가가 되었거나 Staged 상태의 파일들은 git commit 명령어를 이용해서 저장할 수 있습니다.

또한 다음과 같이 -m 옵션을 이용해서 변경 이력 로그를 남길 수도 있습니다.

$ git commit -m "minor bug fixed"


Staged Area는 파일 수정이 완벽하게 이루어진 파일들만 관리하기 때문에 아주 유용하긴 하지만 일반적으로는 번거롭고 귀찮은 과정이기도 합니다.

그래서 git commit을 할 때 -a 옵션을 이용해서 Staged Area 단계를 건너뛰고 파일을 저장할 수도 있습니다.

Git 설명서 - (1) 저장소 만들기

|

Git 저장소 만들기

Git 저장소를 만드는 방법은 크게 2 가지 방법이 있습니다.

  • 현재 프로젝트를 init 하는 방법
  • 서버에서 clone 해서 가져오는 방법


현재 프로젝트를 init 하는 방법

현재 프로젝트가 있는 폴더에서 다음 명령어를 입력합니다.

$ git init

이 명령은 현재 폴더에 .git 이라는 하위 폴더를 하나 만들어줍니다. 여기에는 Git 저장소에 필요한 아주 기본적인 파일들만 들어있으며, 아직 어떤 파일도 관리되고 있지 않습니다. Git이 각 파일들을 관리하게 하기 위해서는 git add 명령을 이용해서 파일들을 등록해주어야 합니다.

$ git add *.cpp
$ git add README.md
$ git commit -m 'initial commit'


서버에서 clone 하는 방법

기존에 이미 구현되어 있는 서버의 파일들을 로컬에 모두 가져오는 방법입니다. git clone 명령어를 이용하며, 프로젝트의 모든 히스토리(History) 내역까지 모두 가져옵니다.

다음과 같은 방법으로 사용할 수 있습니다.

$ git clone https://github.com/snowdeer/BeaconSample.git

위와 같은 명령어를 실행하면, 현재 폴더에 git 저장소의 이름에 해당하는 ‘BeaconSample’이라는 하위 폴더를 생성하고 그 안에 소스 폴더들을 다운로드합니다. 그리고 가장 최신 버전의 소스로 checkout 해줍니다.

만약 폴더 이름을 ‘BeaconSample’가 아닌 다른 이름으로 변경하고 싶으면

$ git clone https://github.com/snowdeer/BeaconSample.git SnowBeaconSample

와 같은 형태로 사용하면 됩니다.

gksu 사용법 - root 권한으로 GUI 어플 실행하기

|

라즈베리파이 뿐만 아니라 우분투(Ubuntu)에서도 동일하게 적용되는 방법입니다.

터미널에서 GUI에 Root 권한을 주는 명령어는 gksu입니다.

예를 들어 파일 탐색기 GUI를 Root 권한으로 실행하는 방법은 터미널에서

gksu pcmanfm

으로 실행하면 됩니다. (pcmanfm이 라즈베리파이용 기본 파일 탐색기입니다.)

만약 텍스트에디터를 열고 싶으시면

gksu leafpad

라고 실행하시면 됩니다. (leafpad가 라즈베리파이용 기본 텍스트에디터기입니다.)

Ubuntu Server에 Desktop GUI 설치하기

|

Ubuntu Server

Ubuntu Server는 Desktop GUI가 없고, 터미널만 존재하는 모드입니다. 여기에 Desktop GUI를 설치하기는 방법입니다.


설치 명령어

먼저 아래 명령어를 이용해서 apt-get을 업데이트해줍니다.

sudo apt-get update
sudo apt-get upgrade

그리고 아래 명령어를 이용해서 ubuntu-desktop를 설치해줍니다.

apt-get install ubuntu-desktop

위와 같이 설치할 경우, 파이어폭스나 오픈오피스 등의 기본적인 프로그램들도 같이 설치되는데, 대략 700MB 정도의 설치파일을 다운로드하게 됩니다. (설치후에는 더 큰 용량을 차지합니다.)

만약 기본 프로그램들은 제외하고 Ubutu Desktop 최소 설치를 진행하려면 아래와 같은 명령어를 사용하면 됩니다. 이 때는 약 170MB 정도의 설치파일을 다운로드합니다.

sudo apt-get install --no-install-recommends ubuntu-desktop


실행 방법

Ubuntu Desktop를 실행하는 명령어는 startx 입니다.


추가 패키지 설치

만약 최소 설치로 진행한 경우 추가적인 패키지를 설치해주도록 합시다.

상단 메뉴 시간 추가

sudo apt-get install indicator-datetime

hud service not connected 오류 해결

sudo apt-get install indicator-appmenu-tools

볼륨조절 아이콘 추가

sudo apt-get install indicator-applet-complete