2014. 9. 25. 13:45

도스 시절부터 써 왔던 미드나잇 커맨더 (mc)를 osx 에서 사용하고 싶어졌다.

Homebrew를 설치했다면 손쉽게 설치가 가능하다

$ brew install mc

MacPorts를 설치했다면 다음과 같이 mc를 설치가 가능하다.

$ sudo port install mc


참고) midnight commander development center(바로가기)를 통해 소스 코드를 받고 바이너리를 직접 빌드할 수 있는 정보를 얻을 수 있다.  현재 4.8.13의 최신 버전이지만 brew로는 4.8.12가 설치된다.


Posted by 모바일헌터
2014. 9. 24. 23:43

지난 8월 1일 마이크로소프트는 삼성전자를 상대로 뉴욕 남부 연방지방법원에 삼성전자가 안드로이드 운영체제 관련 특허 사용권 계약을 위반했다고 특허 로열티 소승을 제기했다.  정확히는 로열티는 지급이 되었지만 삼성전자와 체결한 지적재산권 사용권 협약이 마이크로소프트가 노키아를 인수하면서 무효화되었는지 판단키 위하여 삼성이 로열티 지급을 유보하면서 그 기간만큼 이자비용이 발생했으며 이를 청구한 것이다.

그런데 오늘(23일) 한국을 찾은 나델라 마이크로소프트 CEO와 이재용 삼성전자 부회장이 만나 기업간 협력방안을 논의했다는 이야기가 기사화되고 있다.

삼성은 녹스와 같은 보안 솔루션과 스마트폰 제조기술을 마이크로소프트는 클라우드와 사물 인터넷 관련 솔루션을 기반으로 협의가 이루어졌을 것이라는 추측이 이루어지고 있다.

       

삼성전자는 안드로이드 플랫폼을 이용하여 기대이상의 수익을 달성해왔지만 2014년 2분기 매출이 전년 동기 대비 -8.9%, 영영업이익이 -24.6% 마이너스 성장을 기록하면서 변화가 절실히 요구 되고 있다.  또한 애플이 아이폰8P를 내놓으며 삼성을 압박하고 있다.  올해만 벌써 2번이나 타이젠 카드를 꺼내고 갤러시 노트4를 내놓으며 정면 돌파를 구상하는 듯 보이고 여의치 않은 분위기이다.

마이크로소프트 역시 노키아를 인수하며 제조사로써의 분위기는 갖추었으나 구글이 모토로라를 제조사로써의 활용에 실패했 듯 마이크로소프트도 노키아를 제조사로써 성공하는 모습은 아직 보여주지 못하고 있는 상황이다.

이러한 상황에서 삼성이 윈도우즈 모바일 폰을 다시 제작한다면 어떠한 반응이 일어날까? 구글의 에코시스템에 완전히 장악당한 삼성의 안드로이드에 미래가 있어 보이지는 않는다면 지금은 혁신보다는 변화를 주어야 할 때라고 생각한다. 변화를 혁신으로 만들어주는 것은 결과라고 이야기하고 싶다. 삼성에게는 좋은 결과를 이룩할 수 있는 변화가 필요한 시기이다.

마이크로소프트를 원래 좋아하지 않는 1인이라 비판한 기사도 흥미롭다.
한국서 떼돈 벌고 특혜까지 달라는 'MS의 탐욕'

참조: 돌파구 찾는 삼성·MS … '기브 앤 테이크' 악수 [바로가기]

Posted by 모바일헌터
2014. 9. 24. 17:10

위치기반으로 폰사용 프로파일을 자동으로 조정하여 주는 타이젠 어플을 제작하고 있습니다.
 iOS와 Android로도 제작을 진행할 예정입니다.

git 저장소: https://github.com/mobilehunter/passion

in-door에서는 비콘을 이용하여 좀 더 정밀한 지원을 할 예정입니다.


Posted by 모바일헌터
2014. 9. 24. 14:11

특수한 유형의 부가통신 등록사업자 현황 (68개업체)

순번

등록일자

사업자명

사업종별

사이트

1

04/09/12

(주)네오피플

 웹하드 

프루나
www.pruna.com

2

05/04/12

비엔씨피㈜

 웹하드 

온디스크
www.ondisk.co.kr(org,tv)

3

05/09/12

(주)블루트리

 웹하드 

빅파일
www.bigfile.co.kr(biz)

4

05/09/12

(주)센클라우드

 웹하드 

센클라우드
www.cencloud.com

5

05/09/12

(주)퍼니뱅크

 웹하드 

티디스크
www.tdisk.co.kr(me)

6

05/09/12

주식회사 에이플러스커뮤니케이션즈

 웹하드 

티플
www.tple.co.kr

7

05/09/12

아이콘큐브(주)

 웹하드 

파일구리
www.fildguri.co.kr(com)

8

05/09/12

㈜에이치랩

 웹하드,p2p 

갬플
www.gample.net

9

05/10/12

㈜퍼스트랩

 웹하드,p2p 

지파일
www.gfile.co.kr

10

05/11/12

(주)티비이엔엠

 웹하드 

피디팝
www.pdpop.com

11

05/11/12

(주)와이즌와이드

 웹하드 

디스크스토리
www.diskstory.com

12

05/11/12

(주)디비고닷컴

 P2P 

디비고
www.dbgo.com

13

05/11/12

(주)이즈텔

 P2P 

토파토팡
www.tomatopang.net

14

05/11/12

㈜이지원 인터넷서비스

 웹하드 

위디스크
www.wedisk.co.kr(cc/kr/co/or.kr/tv/asia/cm))

15

05/14/12

주식회사 컬러소프트

 웹하드 

오렌지파일
www.orangefile.com

16

05/15/12

(주)트라이앵글스퀘어모바일

 웹하드 

지오파일
www.ziofile.com

17

05/16/12

주식회사 더블아이소프트

 웹하드 

디시크맨
www.diskman.co.kr

18

05/16/12

(주)제타미디어

 웹하드 

피디박스
www.pdbox.co.kr

19

05/16/12

(주)에이치제이소프트

 웹하드 

따오기
www.daoki.com

20

05/16/12

에이치디커뮤니케이션

 웹하드 

클럽넥스
www.clubnex.co.kr

21

05/16/12

주식회사 선한아이디

 웹하드 

파일노리
www.filenori.com(cc/kr/co/or.kr/tv/asia/cm)

22

05/17/12

주식회사 인포제닉

 웹하드 

럭키월드
www.luckyworld.net(co.kr/org/biz)

23

05/17/12

(주)스피드커뮤니케이션

 웹하드 

파일독
www.filedok.com

24

05/17/12

(주)제이엘에스커뮤니케이션

 웹하드 

파일조
www.filejo.com

25

05/17/12

(주)케이앤피네트웍스

 웹하드 

넷폴더
www.netfolder.co.kr

26

05/18/12

(주)뱅크프라임

 웹하드 

애플파일
www.applefile.com(co.kr/ kr)

27

05/18/12

주식회사 사과나무한그루

 웹하드 

엔피
www.enppy.com

28

05/18/12

(주)미디어플러스

 웹하드 

파일시티
www.filecity.co.kr

29

05/18/12

(주)이비즈디스크

 웹하드 

하이디스크
www.hidisk.com

30

05/18/12

(주)엔비즈코리아

 웹하드 

나우다운
www.now.co.kr

31

05/21/12

㈜파인네트워크

 웹하드 

메가파일
www.megafile.co.kr

32

05/21/12

(주)토토로사

 웹하드 

토토디스크
www.totorosa.com

33

06/11/12

스토리지원(주)

 웹하드 

프리팝
www.freepop.co.kr

34

10/25/12

주식회사 기프트엠

 웹하드 

파일찜
filezzim.com(co.kr) 

35

12/11/12

(주)송사리

 웹하드 

송사리
www.songsari.com

36

12/13/12

(주)케이엠씨

 웹하드 

칠파일
www.7file.co.kr

37

02/06/13

㈜호넷

 웹하드 

파일혼
www.filehon.com(kr)

38

02/25/13

㈜썬더미디어

 웹하드 

돈디스크
www.dondisk.co.kr(net)

39

05/20/13

㈜에이치투커뮤니케이션즈

 웹하드 

파일팜
www.filefarm.co.kr

40

05/24/13

㈜엘케이커뮤니티

 웹하드 

엘티이파일
www.ltefile.co.kr

41

05/28/13

㈜삼보컴퓨터

 웹하드 

티지튠즈
ww.tgtunes.co.kr

42

06/17/13

㈜디케이커뮤니티

 웹하드 

본디스크
www.bondisk.co.kr

43

07/15/13

㈜티케이소프트

 웹하드 

파일브이
www.filev.co.kr

44

08/26/13

몬스터주식회사

 웹하드 

파일쿠키
www.filekuki.com(net/co)

45

08/26/13

(주)베가스타

 웹하드 

베가디스크
www.vegadisk.com(net/co.kr,kr)

46

11/01/13

(주)스마트크루

 웹하드 

스마트파일
www.smartfile.co.kr(pe.kr)(smart-file.co.kr)

47

11/8/13

이노시스템(주)

 웹하드 

헬로디스크
www.hellodisk.kr

48

11/29/13

(주)누리엔넥스

 웹하드 

팟플레이
www.potplay.co.kr

49

12/02/13

(주)한스피플

 웹하드 

무한캐스트
www.moohancast.com

50

12/11/13

㈜루트미디어

 웹하드 

파일스퀘어
www.filesquare.co.kr

51

12/30/13

㈜유니크인

 웹하드 

킹박스
www.kingbox.co.kr

52

02/14/14

(주)크리에이티브미디어

 웹하드 

구디스크
www.goodisk.com

53

02/14/14

(주)에이블타이드

 웹하드 

카카오디스크
www.kakaodisk.com

54

02/26/14

(주)조이미디어

 웹하드 

파일24
www.file24.co.kr(net,co)

55

02/26/14

(주)에스투컨텐츠

 웹하드 

미투디스크
www.me2disk.com

56

02/26/14

(주)더윈

 웹하드 

파일주리
www.filejuri.com

57

03/12/14

㈜온허브

 웹하드 

슈퍼다운
www.superdown.co.kr

58

03/24/14

(주)위드웹

 웹하드 

엔탈
www.ental.com

59

07/10/14

㈜아이엔에스커뮤니케이션

 웹하드 

원하드
www.onehard.com

60

05/14/12

㈜드림핸즈

웹하드

내디스크
www.nedisk.co.kr
www.nedisk.com
www.nedisk.net

61

06/14/12

디와이에스

웹하드

아이러브디스크
www.ilovedisk.co.kr

62

05/13/13

㈜라온미디어

웹하드

톰파일
www.tomfile.co.kr
www.tomfile.com

63

11/21/13

㈜인포텔레콤

웹하드

아이팝클럽
www.ipopclub.co.kr

64

05/14/14

㈜엑시토엠알오

웹하드

올미디어
www.am.co.kr

65

08/08/14

조이컴즈

웹하드

조이파일
www.joyfile.co.kr
www.joyfile.kr

66

11/19/12

하은기획

 웹하드 

www.jinifile.co.kr

67

01/24/13

㈜에스엔에스스토리

 웹하드,P2P 

멜론디스크
www.melondisk.co.kr

68

08/29/12

㈜제이앤아이

 P2P 

오즈파일
www.ozfile.net


Posted by 모바일헌터
2014. 9. 23. 20:13

VirtualBox VM에서 Ubuntu를 설치 후 Resolution이 변경되지 않는다면?

 Devices 메뉴  → Insert Guest Additions CD Image... (Host+D) 를 실행

 Run 버튼을 클릭하여 설치를 실행하자. 

 이제 Virtual Box의 창 크기를 조절할 때 Ubuntu의 Resolution이 조정되는 것을 확인 할 수 있다. 



Posted by 모바일헌터
2014. 9. 23. 12:26


 AVD 생성

자! 이제 AVD Manager를 다시 실행해보자.

  1. $ adroid adv 

  2. Android Development Tool의 eclipse
    1. 툴바의 버튼을 클릭
    2. Window메뉴에서 Android Virtual Device Manager를 실행



 Create... 버튼 클릭하고 AVD를 설정한다.

  - AVD Name: AVD-Phone
  - Device: 원하는 디바이스를 선택
  - Target: 테스트를 원하는 타겟 디바이스의 Android Version을 선택
  - CPU/ABI: ARM 혹은 Intel 선택
  - Hardware keyboard present를 체크
  - Skin: 선택한 Device에 알맞은 스킨을 선택
  - Memory Options 와 Internal Storage는 테스트 목적에 맞게 변경
  - Emulation Options: Use Host GPU 체크

OK 버튼을 클릭하여 새로운 AVD를 생성하자.


 다음과 같이 설정정보를 표기한다. 


 AVD를 실행해보자.

- AVD를 선택하고 Start...버튼을 클릭
- Launch Options 팝업에서 Launch 버튼을 클릭 


시스템에 따라서 오랜 시간이 걸리는 경우가 있으니 인내심을 갖고 기다려보자.

새로 생성된 AVD가 실행되었습니다. 앞으로 실제 디바이스 없이도 개발된 앱을 확인하실 수 있습니다.


"emulator -avd avd_name" 명령어를 이용하여 생성한 AVD를 실행해보자~.

$ emulator -avd AVD-Phone 

단축키 - 1) Home : Android의 홈화면, 2) F2 : 메뉴키, 3) esc : 뒤로가기 키, 4) control+F11 : 가로세로 변경


 AVD 이상동작 시 삭제 

에뮬레이터가 갑자기 죽었을 경우 안드로이드 가상 디바이스실행도 되지 않고 삭제하려 할 때, 실행중이라며 삭제조차도 되지 않는 경우가 있다. 이럴경우 AVDM은 이 문제를 해결할 수 없다.


  1. Home 폴더로 이동한다. "cd ~/"
  2. .android폴더의 하위 avd폴더로 이동한다. "cd .android/avd"
  3. rm -r {device-name}.avd {device-name}.ini


'개발 거들기 > Android 개발' 카테고리의 다른 글

Android SDK and Path  (0) 2014.09.22
안드로이드 샘플 - ApiDemos  (0) 2014.09.21
0-1. Eclipse ADT Bundle 설치  (0) 2014.09.12
Posted by 모바일헌터
2014. 9. 23. 11:30

"檢 "카톡 검열한다" 엄포에 네티즌 '脫 카톡'으로 맞선다"에 따르면 검찰이 서울중앙지검에 '사이버 명예훼손 전담수사팀'을 만들고 포털 사이트, 카카오톡 등에 대한 실시간 모니터링 방침을 천명했다고 한다. 사이버 상의 명예훼손을 막기 위해서 카카오톡 같은 SNS를 모니터링 하겠다는 것이다.

대안으로 제시된 텔레그램에 대해서 알아보도록 하겠다.


  1. 가입이 쉽다 (전화번호 인증을 통한 가입)
    • 아이템/쇼핑/뉴스/광고/웹툰/게임 등 다양한 영역으로 영역을 넓혀가는 카카오톡에 비해 텔레그램은 메세징 자체 서비스에만 집중하며 아직은 초심을 지키고 있다고 이야기 할 수 있다.
    • 하지만 돌이켜 보면 카카오톡도 초반에는 전화번호 인증만을 통한 가입을 지원하였었다.  하지만 추후 번호가 바뀔 시에 메신저를 이용하지 못하게 되는 부분을 해결하기 위해서 계정을 지원하기 시작했는데 텔레그램은 이 숙제를 어떻게 풀어 나갈지 의문이다.
  2. 시크릿 채팅 모드
    • 보안성이 뛰어나다. 2013년 12월 20만 달러를 걸고 서버코드의 암호를 깨는 해킹 이벤트를 열었지만 아직까지 해킹을 한 사람은 없다.
    • 텔레그램이 러시아 비밀 기관이 열수 없는 메신져를 만드는 것에 출발하였다고 합니다. 
  3. 문자 메시지의 전송 속도가 빠르다
  4. 눈살을 찌푸리게 하는 광고나 공지가 없다. 카카오톡은 이제 스팸성 기업 광고 까지 하기 시작했다.
  5. 오픈소스 플랫폼의 형태를 지향하며 다양한 디바이스를 지원하고 있다.
    • API의 오픈을 통해 누구나 쉽게 메세징 서비스를 이용하여 개발을 할 수 있다. (https://telegram.org/source)
    • 데스크 탑의 Windows, OSX, Linux등을 지원하며 iOS, Android, Windows Mobile, BlackBerry, Symbian등의 다양한 모바일 플랫폼을 지원한다.
    • Q: Can I use the Telegram API?
      Yes. Developers for all platforms are welcome to use our protocol, API and even source code. Check out the Getting started section of the docs.



한글화가 아직 되어 있지 않다는 것이 단점이라고하는데 사용에 별다른 어려움은 되지 않을 것 같다. 하지만 사용자가 많지 않아 설치하여 친구들을 찾았을 때 몇명 되지않는 다는 것은 함정이다.


참조: [이동현 칼럼] 아이폰 사용자의 빌어먹을 안도감 [바로가기]




Posted by 모바일헌터
2014. 9. 22. 20:30

Android Development Kit을 /Users/account/adt-bundle-mac 폴더에 압축을 풀었다. eclipse와 sdk가 하위 폴더 이므로 루트 폴터에서 .bash_profile파일을 수정(없다면 생성)하여 PATH를 수정해보자. 1) tools와 2) platform-tools 폴터를 추가하면 된다.

$ vi ~/.bash_profile

export ANDROID_HOME=/Users/account/adt-bundle-mac/sdk export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

물론, 다음과 같은 방법을 사용할 수도 있다.

  1. Terminal을 실행한다. 
  2. "cd ~/"를 입력하여 홈 폴더로 이동한다. (터미널을 시작하면 홈폴더이다)
  3. "touch .bash_profile"이라고 입력하여 새로운 파일을 생성한다.
  4. 자신이 가장 좋아하는 에디터를 이용하여 내용을 수정합니다. ("open -e .bash_profile"이라고 입력하시면 TextEdit에서 파일을 수정할 수 있다.)
  5. 위의 내용을 추가하시고 저장을 하신 후에 ". .bash_profile"이라고 입력하여 .bash_profile을 재로드하여 추가사항을 반영하시면 됩니다.

자! 이제 터미널의 어느 폴더에서나 adb를 사용해보자!

'개발 거들기 > Android 개발' 카테고리의 다른 글

0-2. Android Virtual Device manager  (0) 2014.09.23
안드로이드 샘플 - ApiDemos  (0) 2014.09.21
0-1. Eclipse ADT Bundle 설치  (0) 2014.09.12
Posted by 모바일헌터
2014. 9. 21. 02:36

한 가지 프로그래밍 언어를 어느 정도 익힌 상태에서 또 다른 언어 혹은 플랫폼 개발방법을 배울 때 가장 쉬운 방법은 많은 샘플과 소스를 접해보는 것이었습니다.  대개의 UI의 경우 사용자에게 보여지는 부분이 비슷하며 심지어 서버/데이터베이스 등과 같은 써드파트와 연결되는 인터페이스 영역이 비슷하기 때문이라고 생각한다.

우선, 안드로이드에 포함되어 있는 샘플들을 살펴봄으로써 안드로이드 개발에 좀 더 친숙해져보자.

0. 샘플을 Android SDK Manager에서 다운로드합니다. 
API별로 Samples for SDK가 존재한다. 최신 버전의 샘플을 선택하여 작업을 해보자.

1. File → New → Project... (또는 Package Explorer → New  →  Project...)

2. Android → Android Sample Project → Next

3. 최신 Target "Android 4.4.W"  →  Next

4. "legacy > ApiDemos"  → Finish

5. 에러수정 (외부 라이브러리 삽입)
5.1 프로젝트 Properties (Project → Properties)
5.2 Java Build Path 
 → Libraries → Add External JARs...
5.3 {ADT location}/sdk/extras/andoid/support/v4/android-support-v4.jar

이제 무리없이 소스가 컴파일 될 것이다.

6. Android Virtual Device Manager를 이용하여 에뮬레이터를 수행하고 ApiDemos 앱을 실행해보자!






'개발 거들기 > Android 개발' 카테고리의 다른 글

0-2. Android Virtual Device manager  (0) 2014.09.23
Android SDK and Path  (0) 2014.09.22
0-1. Eclipse ADT Bundle 설치  (0) 2014.09.12
Posted by 모바일헌터
2014. 9. 20. 02:42

소프트웨어를 개발할 때 개발자들에게 가장 큰 골치거리 중에 하나가 소스의 관리이다.  혼자 개발을 해도 관리가 어려운데 실제 직장에서는 혼자 개발할 수 있는 프로그램은 그렇게 많지 않아 항상 여러 명의 개발자가 공동 작업을 하게 되고 따라서 소스의 관리는 무엇보다 중요한 업무 중에 하나가 된다.

무슨 파일이 어떤 목적을 위해서 수정되었는지에 대해한 상세 기록을 통해서 소스의 수정사항들을 추적하고 관리할 수 있도록 도와주는 형상관리 툴은 개발을 진행하는 상황에서도 손쉽게 특정 소스에서 일부 버그만을 수정한 핫픽스 버전을 발행하는 등 다양한 소스 관리 방법도 제공을 한다.

다양한 형상관리 툴이 존재하지만 git은 리누스 토르발스가 리눅스 커널 개발에 이용하려고 개발하였으며 현재 널리 사용되고 있다. git은 많은 부분에서 cvs나 svn과 같은 다른 형상관리 툴과 기능은 비슷하지만 로컬 저장소(Local Repository)만 혹은 로컬 저장소와 원격 저장소(Remote Repository)를 함께 사용할 수 있다는 큰 특징을 갖고 있다. 네트워크에 접근하거나 중앙서버에 의존하지 않고 로컬에서 작업할 수 있다는 점은 특정 서버를 운영하지 않아도 된다는 장점이 있다. 또한, 인텍스(Index)라고 부르는 스테이징 영역(Staging Area)이 존재한다.  로컬 저장소에 커밋 할 파일들을 스테이지 영역에 추가하여 관리할 수 있다. 이러한 스테이징 영역과 스냅샷/브랜치를 잘 활용할 수 있다면 git을 제대로 사용하고 있다고 말할 수 있을 것이다.  그렇지 않다면 굳이 git을 사용해야 하는 이유는 없다.  


< 기본 명령어 정리>

- clone : 다른(로컬/원격) 저장소를 새로운 폴더에 복사 (작업폴더/로컬저장소가 생성)

- add : 작업내용을 스테이징 영역(Index)에 추가

- commit : 로컬 저장소에 작업내용을 기록

- push : 로컬 저장소의 내용을 원격 저장소

- fetch : 다른 (로컬/원격) 저장소로 부터 작업 내용을 내려받기

- merge : 내려 받은 데이터를 병합

- pull : 다른 저장소로 부터 작업 내용을 내려받고 다른 저장소 혹은 브랜치에 병합

- checkout : 브랜치를 선택하여 작업영역에 선택된 브랜치를 반영한다.

- brach : 브랜치들을 확인하고 특정 브랜치를 생성하고 삭제한다.

- cerry-pick : 다른 브랜치의 특정 commit내용을 가져온다.

- reset : 현재 HEAD를 특별한 상태로 리셋한다.





로컬 저장소 생성(.git 폴더)

- 기존 디렉토리를 Git 저장소로 만들기 

$ git init 

Initialized empty Git repository in /Users/mobilehunter/Developments/git-test/.git/


- 기존 저장소를 Clone하기

$ git clone [username]@[host]:[/remote/repository/location] 


git clone git://github.com/schacon/grit.git mygrit

Cloning into 'mygrit'...

remote: Counting objects: 4051, done.

remote: Compressing objects: 100% (2824/2824), done.

remote: Total 4051 (delta 1170), reused 4051 (delta 1170)

Receiving objects: 100% (4051/4051), 2.10 MiB | 508.00 KiB/s, done.

Resolving deltas: 100% (1170/1170), done.

Checking connectivity... done.


$ git clone [/local/repository/location]

git clone ~/Developments/git-test/mygrit

Cloning into 'mygrit'...

done.  


- 파일의 상태 확인하기

$ git status 

On branch master

Your branch is up-to-date with 'origin/master'


nothing to commit, working directory clean



clone에 의해서 작업폴더가 복사 되었거나 checkout에 의해서 작업 폴더가 생성되었을 때 모든 파일은 관리되며(tracked) 수정되지 않은(unmodified) 파일들로 구성된다. 새롭게 생성되는 파일(이나 로컬저장소에서 삭제된 파일)은 관리가 되지 않는 (untracked)파일이며, 관리가 되는 파일 중 수정이 이루어 지면 수정된(modified)파일이 된다.  수정된 파일 중  add명령에 의해서  스테이지 영역에 인덱스가 생성되어 커밋 명령에 의해서 로컬 저장소에 기록될(staged) 파일이 되며 tracked된다. commit에 의하여 staged 파일이 로컬 저장소에 반영되면 unmodified 파일이 된다.


- 파일 생성 (새로운 파일을 생성 - untracked file)

$ vi README

... 파일 생성/저장

$ git status

On branch master

Your branch is up-to-date with 'origin/master'


untracked files:

   (use "git add <file>..." to include in what will be committed)


           README


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


- 파일 추가 (생성된 파일 staged file)

$ git add README

$ git status

On branch master

Your branch is up-to-date with 'origin/master'.


Changes to be committed:

  (use "git reset HEAD <file>..." to unstage)


          new file:   README 


- 파일 수정 (Tracked파일 중에 파일이 수정 - modified file)

$ vi benchmarks.rb

... test 추가 ...

$ git status

On branch master

Your branch is up-to-date with 'origin/master'.


Changes to be committed:

  (use "git reset HEAD <file>..." to unstage)


          new file:   README


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:   benchmarks.rb 


- 파일 추가 (수정된 파일 - staged file)

$ git add benchmarks.rb

$ git status

Your branch is up-to-date with 'origin/master'.

Changes to be committed:

  (use "git reset HEAD <file>..." to unstage)


          new file:   README

          modifed:   benchmarks.rb


- 수정사항 확인 (작업 폴더와 Staging Area 비교)

$ vi benchmarks.rb

... mobilehunter.net 추가 ...

$ git diff

diff --git a/benchmarks.rb b/benchmarks.rb

index 3e64fc3..6a3bb89 100644

--- a/benchmarks.rb

+++ b/benchmarks.rb

@@ -6,6 +6,7 @@ require 'ruby-prof'

 require 'memcache'

 require 'pp'

 

+mobilehunter.net

 

 #require 'grit'

 require 'lib/grit'


- 수정사항 확인 (Staging Area와 로컬 저장소 비교)

$ git diff --chached  or $ git diff --staged

diff --git a/README b/README

new file mode 100644

index 0000000..76e579a

--- /dev/null

+++ b/README

@@ -0,0 +1,2 @@

+test

+

diff --git a/benchmarks.rb b/benchmarks.rb

index e445e28..3e64fc3 100644

--- a/benchmarks.rb

+++ b/benchmarks.rb

@@ -1,3 +1,4 @@

+

 require 'fileutils'

 require 'benchmark'

 require 'rubygems'


- 변경사항 커밋하기

$ git commit



# Please enter the commit message for your changes. Lines starting

# with '#' will be ignored, and an empty message aborts the commit.

# On branch master

# Your branch is up-to-date with 'origin/master'.

#

# Changes to be committed:

#       new file:   README

#       modified:   benchmarks.rb

#


".git/COMMIT_EDITMSG" 10L, 285C



$ git commit -m "inline message" 


- Staging Area 생략하고 commit하기

 $ git commit -a -m 'added new benchmarks'

[master b703ffc] added new benchmarks

 2 files changed, 4 insertions(+)

 create mode 100644 README 


- 파일 삭제하기

$ rm grit.gemspec

$ git status

On branch master

Changes not staged for commit:

  (use "git add/rm <file>..." to update what will be committed)

  (use "git checkout -- <file>..." to discard changes in working directory)


          deleted:    grit.gemspec


no changes added to commit (use "git add" and/or "git commit -a") 


- 삭제 파일 추가 (삭제된 파일을 Stated 상태가 되게 한다)

$ rm grit.gemspec

$ git status

On branch master

Changes to be committed:

   (use "git reset HEAD <file>..." to unstage)


       delete: grit.gemspec


- 커밋 수정

$ git commit -m 'inital commit'

$ git add forgotten_file

$ git commit --amend 

첫 번째 commit은 무시되며 첫 번째 commit이 두 번째 위치에서 수정된 것과 동일한 결과를 갖는다.


- Unstage하기 (Staged 파일을 Unstage하기)

 $ git reset -- benchmarks.rb : 해당 파일을 index에 추가한 것을 취소하고 작업 폴더의 변경내용은 보전된다

 $ git reset HEAD benchmarks.rb : 위와 동일.


--soft: index보존, 작업폴더 보존

--mixed: index취소, 작업폴더 보존(기본 옵션)
--hard: index취소, 작업폴더 취소


- 수정한 파일 복구하기 (로컬 저장소에서 해당파일 다시 가져오기)

 $ git checkout -- benchmarks.rb              : 작업폴더에서 수정한 파일을 index에 있는 것으로 원복

 $ git checkout HEAD -- benchmarks,rb     : 작업폴더에서 수정한 파일을 HEAD에 있는 것으로 원복

 $ git checkout FETCH_HEAD -- benchmarks.rb : 작업폴더에서 수정한 파일을 FETCH_HEAD에 있는 것으로 원복


- 작업폴더 복구하기

 $ git reset --hard HEAD  : 작업폴더를 마지막 커밋 상태로 되돌림. 마지막 커밋 이후의 작업폴더와 index의 

                                           수정사항이 모두 삭제됨

 $ git checkout HEAD .     : 

 $ git checkout -f             : 


<원격 저장소관련>

- 원격 저장소 정보 관리

$ git remote -v

$ git remote add [단축이름] [원격 서버 주소] 


원격 저장소로부터 데이터를 가져오기 
(원격 저장소에서 데이터를 로컬 저장소로 갖고 온다.)

$ git fetch [remote-name] 


원격 저장소로부터 데이터를 가져오기 
(원격 저장소에서 데이터를 로컬 저장소로 갖고 오고 작업폴더와 머지까지 한다.)

$ git pull [remote-name] 


원격 저장소에 데이터 보내기 

(원격 origin 서버로 현재 master branch의 내용을 push)

$ git push origin master  (또는 git push)


원격 저장소 정보 확인/수정/삭제

$ git remote show [원격 저장소 이름] 

$ git remote rename [기존명] [신규명]

$ git remote rm [원격 저장소 이름]


원격 저장소를 옮기기

$ git remote rm origin

$ git remote add origin git@github.com:mobilehunter/{projectname}.git

 



- untracked 파일 제거

 $ git clean -f

 $ git clean -f -d  : 폴더까지 제거


- 파일무시: 생성/수정되더라도 관리되지 않는 파일이라고 표기 하지 않고 무시하기 위해서  .gitignore 파일에 추가

$ vi .gitignore

Debug 폴더를 무시하고 싶다면 다음과 같이 추가하여야 한다.

Debug/ 

run/


.gitignore에 표기하지 않고 git이 추적하지 못하도록(untracked 파일)하려면 staging area에서만 삭제하면 된다.

※ $ git rm --cached readme.txt


- 로그 확인

  $ git log 

  $ git log --pretty=oneline

  $ git log -p -2                    => -p 각 커밋의 diff결과를 보여준다. -2는 최근 2개의 결과


-태그 조회하기

$ git tag

$ git tag -l 'v1.4.2.*'

$ git show v1.4


-태그 붙이기(-a)

$ git tag -a v1.4 -m 'my version 1.4'


-태그에 서명하기(-s)

$ git tag -a v1.5 -m 'my signed 1.5 tag'


※ 태그와 브랜치를 혼동하는 사람이 있다. 태그는 일정 과거 시점을 표시하고 그 시점으로 쉽게 이동을 하거나 브랜치 혹은 특정 태그와의 비교 작업을 용이하게 할 수 있다.

다음의 





- remote branch를 가져오기

 $ git branch -b local_branch_name remote_branch_name

$ git branch -b next origin/next  

(local branch의 이름을 remote와 동일하게 하고 싶을 경우)

or 

$ git branch -b next_local origin/next

(local 브랜치의 이름을 변경하고 싶을 경우)


- branch 이름 변경

 $ git branch -m old_branch_name new_branch_name


- git의 전체 환경설정

git을 사용하기 전에 몇가지 전역 값을 설정하는 것이 편리하다. 우선, 첫번째는 이름과 이메일이다.

  $ git config --global user.name ["name"]

  $ git config --global user.email ["email"]


$ git config --global core.editor [vi]


color.ui값을 "auto"로 설정하여 여러 색을 이용한 출력 결과를 터미널에서 확인할 수 있다.

$ git config --global color.ui true


$ git config format.pretty oneline


설정값들이 제대로 잘 저장되었는지 확인해보자

  $ git config --global --list 


※ Staging Area = Index = Git Index



삼성 오픈소스 컨퍼런스에서 서울대 박성재님이 발표했던 내용입니다.




'개발 거들기' 카테고리의 다른 글

소스를 블로그에 올릴 때  (0) 2016.05.12
ATOM에서 TODO관리하기  (0) 2015.12.21
git 로컬 저장소 생성(.git 폴더)  (0) 2015.01.14
git 수정사항 확인  (0) 2015.01.14
Ubuntu에 Apache + Tomcat + MySQL 설치  (0) 2014.10.24
Posted by 모바일헌터