레이블이 Tools For Wins인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Tools For Wins인 게시물을 표시합니다. 모든 게시물 표시

10/10/2018

SSH/Serial Program

1. Window SSH/ Serial Program 

Window에서 내가 개인적으로 좋아하는 Serial Program 과 SSH Program을 간단히 정리한다.
SSH를 지원을 한다면, 확인해야 할 것이 SFTP or SCP의 기능도 확인을 해야 할 것이다.

  • XSHELL
SSH 사용과 Serial 사용시 필요한 잘 사용하는 프로그램으로, 평가판/가정 및 학교사용자는 무료로 사용이 가능하지만, 기업은 유료라는 사실을 잊으면 안된다.

Download
  https://www.netsarang.co.kr/download/down_form.html?code=612

Ubuntu 16.04 사용시 주의사항
  https://ahyuo79.blogspot.com/2018/05/ubuntu-1604-lts-version.html

기타내용
  https://ahyuo79.blogspot.com/2015/02/vi.html
  https://ahyuo79.blogspot.com/2013/12/virtual-box-network-nat.html




  • Teraterm 
완전무료이며, SSH 와 Serial 을 지원하고 있으며, 상위와 비슷한 기능을 가지고 있지만, 나에게는 크게 매력적으로 다가오지는 않는다.
다만 회사에서만 사용하면 모를까

Download
  https://download.cnet.com/Tera-Term/3000-2094_4-75766675.html



1/28/2018

SD Card Formatter 와 SD Card Writer

1. SD Card Formatter 

Download
  https://www.sdcard.org/downloads/formatter_4/eula_windows/index.html

  SD_CardFormatter0500SetupEN.exe





2. SD Card Writer 

SD Card를 Writer 하는 Tool 이며,  Raspberry Pi를 하면서 알게된 Tool 인데, 아래의 프로그램과 차이점은 아직 발견을 못했다.
다만 기존 Win32 Disk의 경우 간혹 잘못 Write 되는 경우가 발생하는 것을 봐서 2번씩 꼭 했는데, 이것은 아직 잘 모르겠다.
추후에 시간이 있을 경우 이를 파악해보자

기존의 Win32 Disk Imager
  https://ahyuo.blogspot.com/2016/05/sd-card-writer-window.html

Download
  https://etcher.io/

  Etcher-Setup-1.4.4-x64.exe




10/16/2016

동영상변환기

만약 동영상을 변환해야하거나 오디오를 변환해야한다면 아래와 같이 카카오 인코더로 변경하면된다.



9/09/2016

HxD (Hex 보기 프로그램)

윈도우에서 Hex File을 보고 싶다며 아래와 같이 HxD를 이용하여 사용해보자.
Linux에서는 hd/hexdump가 존재한다.

Download
  https://mh-nexus.de/en/hxd/




8/19/2016

VLC 미디어 재생기

미디어 재생 혹은 Network Stream 재생을 위해서 보통 VLC을 설치하여 테스트하는 것이 일반적이다.
동영상 Network Stream 재생 TEST 위해서는 설치하여 TEST 해보자.
아래는 IP Camera의 RTSP 이며, RTSP가 아니더라도, 다양한 Network Stream을 지원한다.

VLC는 Windows/Linux Version이 다 존재한다.





8/02/2016

ARM DS-5 Development Studio

ARM DS-5 Development Studio

ARM사에서 제공하는 이클립스 기반의 개발툴이며, 30일간 만 무료이니, 유료 프로그램 같다.
나도 아직 사용을 하지 못해봐서, 추후 많이 사용한다면, 그때 다시 한번 고려 해보겠다.
설치방식도 기존 이클립스 설치와 유사한 것 같다.

  • Download
   http://www.arm.com/products/tools/software-tools/ds-5/index.php


  • DS-5 Tools에 대한 설명
   http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.subset.swdev.ds5/index.html

7/01/2016

SourceTree ( Git 관리용)

1. Bitbucket Site 

Atassian은 요즘 대세인 애자일 개발 솔루션업체로 Bitbucket 뿐만아니라 Bamboo와 Jira 등 여러개를 지원을 해주고 있지만, 물론 무료는 아니다.
DevOps 좀 더 관심을 가지면 무료로 쓸수 있는 것들이 많이 있다. 이 부분은 좀더 찾아보자

  https://ko.atlassian.com/

Bitbucket Site는 Github와 같이 Git Remote Repository를 제공해주는 Site이며
SourceTree라는 Git관련 프로그램 무료이용이 가능하며 가장 편한게 호환성있게 사용할 수 있어 소개한다.

SourceTree는 Git와 Merurial Service를 무료이용이 가능하며 Bitbucket 뿐만아니라 Github도 연결하여 사용가능하기에 개인적으로 이것을 더 선호한다.
사실 사용하기도 더 편하다.

Bitbucket은 Github와 다르게 Private Remote Repositories를 개인에게 무료제공을 해주고 있다.
현재 나의 경우는 Private Repository는 Bitbucket을 이용하며, Team Project까지도 이용하고 있지만 무료이용한다 물론 5명까지 제한이 있다.
한마디로 좀 더 쓰고 싶다면, 돈내고 쓰라는 것이다.

Github는 경우는 모든 Remote Repository를 공개로 사용해야 무료이다.

  • Project 진행시, 사용자수가 5명
   https://blog.bitbucket.org/2014/05/30/repository-size-limits/
   https://groups.google.com/forum/#!topic/bitbucket-users/5nXmbmVwYA4

  • Github도 최근에 변경이 된것 같다.
여전히 Private Repository는 유료지만, 무제한 Repository를 제공한다.
다만, 개인으로 사용하는것인지, 기업 및 정부기관에서 사용할것인지에 따라 세부설정이 달라진다.

   https://github.com/personal
   https://github.com/business


1.1 Get Started 가입 및 설정

가입하여, 본인의 Username과 가지고 있는 email을 넣어 개인 Profile을 설정하고 가입하자.
Log in 은 email 과 passwd 이며, repository 사용시는 username과 passwd도 기억하자.



  • 기본정보 설정
       사이트의 맨 우측의 물음표 옆 아이콘을 누르면, BitbucketSetting에서 기본설정이 가능하다.
       이곳에서 자신의 기본 Profile과  Avatar및 Website 등 기본설정을 하자.
       Username을 변경을 원하다면 이곳에서 가능하다.


  • 외부 Repository 연결
       BitbucketSetting->Connected accounts->Github Import 가능
       Github와도 연결이 가능하며 설정하자.




1.2 New Repository or Import Repository 




   Bitbucket 사이트의 기본메뉴 Repositoires에서 본인 Remote Repository를 만들거나, 외부의 것을 import 하자.

  1. Repositories->Create repository 
  2. Repositories->Import repository 


 
    Remote Repository가 생성이 되면,  상위 메뉴 Reositories에서 선택이 가능하며, 접근이된다.
   아래와 같이 좌측에 여러메뉴가 있다.

A. Actions
  • Clone : git의 clone 명령으로 remote repository에서 local repository를 생성해준다.
  • Create branch: git의 branch 기능
  • Create pull request :  Pull request 요청 준비를 하는 것 같다.
  • Compare : branch 사용할 경우, Compare & Merge 기능을 제공
  • Fork:  Repository를 그대로 복사가져오는 경우이며, Github와 동일하다.

B. Navigation
  • Overview: ReadME.md 정보 및 git 주소를 알수 있으며 공유도 가능하다.
  • Source: Repository에 저장된 Source를 보여준다.
  • Commit: Remote Repository에 Push된 History를 보여준다.
  • Branches: Branch를 가능하게 한다.
  • Pull Request: 협업을 할 경우 pull command라는 것이 fetch하고 merge하는 기능이기에 일종의 
       상대방 Repository와내 Remote Repository를 싱크를  맞추는 작업이다.
       상대방 Repository에게 내 변경된 소스를 반영해달라고 요청하는 것이며, 상대방은 이를 수락하면, pull을 이용하여
       자신의 Source 반영한다. 
  • Download : 현재 Source download 및 Upload가 가능
  • Setting:  Repository Name , Project 설정 및 이곳에서 Repository를 DeleteTransfer가 가능 

C. Navigation->Setting
  • Repository Details   : Repository Name, Project 설정 관련 및 기타 설정
  • Delete repository   : 현재 생성된 Repository 제거  
  • Transfer Repository : 다른 Bitbucket User에서 이전 Copy가 아님, Project 할 경우 사용.
  • Wiki                    :  Wiki 설정 (Private wiki , Public wiki 선택 가능)

 



1.4 주요 질문사항

  • File upload Size 제한 문제 
  https://confluence.atlassian.com/bitbucket/what-kind-of-limits-do-you-have-on-repository-file-upload-size-273877699.html


2. Source Tree 이용 

Window에서 Git를 이용하려면, github의 경우는 자체 Tool을 제공하여 손쉽게 접근이 가능하지만,
물론 다른 WindowGit를 사용해도 된다. 하지만, Bitbucket은 atlassian 사의 Source Tree 사용을 권장한다.
그리고 이 Tool이 사용하기도 편하다. Source Tree Tool을 사용하기 위해서는 우선 atlassian사 가입하고 설치하자.


2.1 Source Tree 기본설치 후 확인작업
C:\Program Files (x86)\Atlassian\SourceTree\tools\putty

pageant.exe : SSH 인증하는 Tool
plink.exe : SSH or Telnet Tool
puttygen.exe : SSH Key Generator



A. Bitbucket 관련설정 

처음 설치 진행 중에 호스팅계정목록에 bitbucket을 선택하고,  username과 passwd를 넣어주어 설정한다.
이부분은 Bitbucket과 연동이 되는 매우 중요한 부분이기에 반드시 확인해야 한다.

  1. 호스팅계정목록에 bitbucket을 선택
  2. username과 passwd를 넣어준다.
  3. 보기->제공저장소  본인의 Remote Repository들을 확인 가능 




  • Bitbucket Repository 확인 
     보기->제공 저장소 보기  선택

     Bitbucket에서 만들어진 Remote Repositories들을 볼 수가 있으며, Window에 Local Repository가 없다면,
     이를 더블클릭을 하여, Clone으로 가져오고 Local Repository를 생성하자.




B. Github 관련설정 

지금 현재 Source Tree는 Bitbucket을 위한 Source Tree이며, 계정설정을 Bitbucket만 하였기에, 다음과 같이 Github 설정을 추가한다.
  1. 보기->제공저장소  본인의 Remote Repository 확인
  2. 계정변경 선택
  3. 호스팅 계정목록 에서 Bitbucket을 확인하고, 추가 버튼
  4. Github의 계정 username과 password 추가 확인 (email은 안되더군요)



위와 같이 설정하면 이제 모든 Remote Repository를 볼수가 있습니다.


3. SourceTree와 Bitbucket 이용방법 

Bitbucket에서 Remote Repository Create 한 후 Source Tee를 이용하는 법을 간단히 소개한다.
Source Tree로 기본설정 후 Bitbucket의 Empty Repository 에 Clone을 한 후 사용하면된다.

전체 기본이용순서는 다음과 같다.
  1. Bitbucket에서 Login 한 다음 상위메뉴 4메뉴 중 (Repositories->Create Repository)
  2. Bitbucket에서 new Remote Repository 생성 및 확인. 
  3. Source Tree 에서 Clone으로 Remote와 동일한 Local Repository 생성
  4. 빈 디렉토리에 개발소스넣고, Commit으로 Stage에 넣고, Local Repository 반영
  5. 이 때 주석을 넣어 관련사항을 기록하자. 
  6. Push 버튼 Bitbucket의 Remote Repository에 이를 반영 

이를 3.1~3.3로 세부 그림과 함께 세부설명




3.1 Source Tree 이용하여 Bitbucket의 설정 

  1. Bitbucket에서 new Repository를 test로 하나 생성 
  2. Bitbucket에서 test Repository 생성확인  

3.2 SourceTree 소스 생성/복제

복제는 즉 Git Clone은 Bitbucket에서 Github or Bitbucket의 Remote Repository 가져오는 것이다.
생성은 존재하지 않은 소스를 Bitbucket의 Remote Repository에 생성하게 하는 것이다.

두 방법은 거의 유사하며,
방법은 여러가지가 있겠지만 아래와 같이 두가지만 간단히 소개하겠다.

1. Repository를 생성(Init)/복제(clone) 방법

이 방법은 Github와 Bitbucket를 동시 사용한다면 모든 Git를 확인이 가능하며, 
이를 확인하고 Git Init /Clone 하는 것이다.
  • 보기->제공 저장소 보기 실행
  • 상위 우측의 계정설정 (Github와 Bitbucket 설정)
  • 기존에 존재하는 Remote Resoitory를 확인가능하다. 


A. Remote Repository 생성방법  
  • 아래의 새저장소 생성 버튼 
  • 저장소 생성 메뉴에서 계정에 저장소 생성하기 메뉴에서 (Bitbucket or Github 변경) 
  • Remote Repository Name 설정 
  • 저장소 설정 한 후 BitBucket or Github에서 확인 

B. Remote Repository 복제방법
  • 아래 우측마우스를 누르고 Clone 버튼 한 다음 호스팅 프로젝트에서 본인 프로젝트 선택 
  • Source Tree-> 왼쪽 화면 하단 + 버튼 Repository 추가 


2. 저장소복제/생성 버튼 선택
  1. 복제일 경우 
  2. 소스경로/URL에서 나의 bitbucket을 주소 넣거나, 우측 호스팅프로젝트 버튼으로 탐색이용
  3. 목적지 경로 주소 나의 소스주소로 설정 반드시 빈디렉토리 설정
  4. 책갈피  본인이 알기 쉬운 이름으로 저장 Nick Name 
  5. 클론 선택하여 소스를 Remote Repository 받는다.
    *만약 실패한다면 목적지 경로 지우고, 새폴더로 생성하고 다시 시도 해보자.

* 책갈피의 역할

클론이 제대로 되어 Local Repository가 구성이 된다면, 소스트리 우측창에 프로젝트를 확인가능하다.
이때 좌측의 볼드체로 구성된 NickName이 바로 책갈피의 역할이며, 이름변경은 맘대로 가능하다.
그러므로, 본인의 프로젝트에 따라 알기쉽게 변경하여 사용하자.


3.3 Source Tree  소스 반영 (Push)

Workspace 는 정확히 말해, 나의 작업장소이며, 소스수정을 한다면
Local Repository에 이를 반영해야 하고, 그리고 나서, Remote Repository (Bitbucket)에 반영을 해야한다.
  1. Git Commit은 Local Repository에 나의 변경된 소스를 반영 하는 것이다.
  2. Git Push는 Local Repository와 Remote Repository를 Sink를 맟춘다고 보면된다.

이제 Git Command를 이해 했으니, 아래의 Source Tree를 사용해보자.
소스가 변경이 되었다면, 본인의 좌측의 local Repository 를 보면 아래와 같이 스테이지를 확인 가능하다.
이를 반영하면 된다. 
  • Git Commit & Push 
  1. 본인의 Source를 변경해준다.  
  2. Source Tree의 커밋버튼 눌러 이를 반영할 준비를 한다. 
  3. 스테이지(Index or Stage Area) 작업소스  Stage All로 반영한다 (git개념참조)
  4. 맨 아래 주석을 채우고 Local Repository에 반영하기 위해서 커밋(Commit)을 진행 
  5. Source Tree의 푸시버튼으로 Bitbucket에 이를 반영한다.  
  6. 푸시도중 출력 전부보기로 현재 상태를 확인가능 






  • 반영된 소스 확인 
   Bitbucket의 나의 Repository로 가서 Commits을 보면 History를 확인가능



4. SourceTree와 Github이용방법

사용방법은 Bitbucket과 동일하며, Github 계정을 추가하고, Git Clone을 하면 별 문제 없이사용이 가능하다


5. 문제사항

가끔 다른분의 Repository를 Fork를 하고, Clone을 하면, 아래와 같은 문제가 발생한다.
소스다운은 되지만, SourceTree가 Blocking이 되며, 이 때 취소하지 않는다면, 폴더접근에도 문제가 생긴다.

이 방법을 해결하기 위해 처음 Embeded GIT 사용 및 Init로 사용하는 방법 등
여러방법을 했지만, 근본적인 문제해결이 되지않아 아래와 같이 소스와 함께 다 분석을 했다.



5.1 확장자 제한 및 설정

Local or Remote Repository에 못올라가는 문제는 SourceTree에서 아래와 같이 못올려주기 때문이니,아래와 같이 변경을 해주자.
  • 도구->옵션
  • Mercurial 메뉴 선택과 Git 메뉴 선택 
  • 전역무시목록 선택 파일 수정 (위 두 파일은 서로 다르며, 각각 설정해야한다)
기본적으로는  .gitignore를 이용해야하지만 손쉽게 이를 이용해서 설정하자.

  .gitignore 수정하여 확장자 제어방법 소개
  http://dolfalf.tistory.com/58






5.2 Git Clone 중 Blocking 되는 현상 


git -c diff.mnemonicprefix=false -c core.quotepath=false clone --recursive https://JeonghunLee@github.com/JeonghunLee/stm32f1-ir.git D:\TEST\fff
Cloning into 'D:\TEST\fff'...

warning: templates not found C:\Program Files\Git\share\git-core\templates

Submodule 'common_lib' (git@github.com:ppkt/common_lib.git) registered for path 'common_lib'

Cloning into 'common_lib'...

The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:

ssh-rsa 2048 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48
If you trust this host, enter "y" to add the key to
PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without
adding the key to the cache, enter "n".
If you do not trust this host, press Return to abandon the
connection.


  • Remote Repository의 File 중 아래의 File 문제로 Blocking  
위에서 안되는 이유가, Remote Repository가 또 다른 Remote Repository를 참조를 하였는데 또 다시 가져오다가,
멈추는 경우 인 경우인것이며, common_lib는 또 open된 Remote Repository 별다른 문제가 없이 동작이 되는게 맞는것 같다.


.gitattributes
.gitignore
.gitmodules

[submodule "common_lib"]
 path = common_lib
 url = git@github.com:ppkt/common_lib.git




원래는 SourceTree에서 Accept Server's Key 물어야하는데 Blocking이 된다.
다른 외국사이트를 보면 이를 옵션에서 Embeded GIT 설정으로 해결했는데, 해결이 되지 않는다.
그리고, Git init을 하여, PULL로 가져올려고 했는데 이 역시 실패.

나의 SourceTree도 가끔 아래와 같이 동작하지만, Key에서 문제가 발생한다.





  • 해결방법.

cmd를 실행 한 후 강제로 plink로 Key를 받는 것이다.
이문제는 추후 SourceTree bug이므로 추후 upgrade되면 바뀔 것 같다.

  • "C:\Program Files (x86)\Atlassian\SourceTree\tools\putty\plink.exe" github.com
  • "C:\Program Files (x86)\Atlassian\SourceTree\tools\putty\plink.exe" bitbucket.org



FATAL ERROR: Disconnected: No supported authentication methods available (server sent: publickey)


https://confluence.atlassian.com/sourcetreekb/trust-a-server-s-host-key-when-no-button-is-available-to-trust-it-788731545.html


5.3 폴더 접근문제 발생 

위 문제가 발생을 하면, SourceTree 종료해도 내부적으로 sh와 plink, pageant를 사용하는데  종료가 되지 않을 경우.
아래와 같이 탐색기에서도 접근문제가 발생한다.

이 때 해결책 다양하게 제공하지만, 본인은 unlocker 프로그램 자주이용하지만,
작업관리자가서 sh와 plink process가 종료하는 것이 좋은것 같다.
unlocker를 사용해도 process 여전히 존재함




http://answers.microsoft.com/ko-kr/windows/forum/windows_7-files/%ED%8C%8C%EC%9D%BC%EC%9D%B4-%EB%8B%A4%EB%A5%B8/3ae23758-9186-45c4-9fb9-aee55a69bcd7?auth=1


  • unlocker 프로그램제공 

http://gong6587.tistory.com/1355



6. Team Project

사실 Git를 혼자 관리하고 하면, 매번 Commit으로 Local Repository 반영 후, Push로 Remote에 동기만 맞추면, 되기에 Fetch or Pull을 사용할 이유가 거의 없다. (SVN과 차이점도)

하지만, 2명이상 GIT 기반으로 같이 작업을 하면 이야기가 달라질 것이다.
아직 Repository를 Share를 해서, Member를 추가해서 사용해본적이 없다.
지금 생각으로는 위 방법도 아래와 같이 유사하게 동작할 것 같다.

6.1  Create Team 

Bitbucket에서 Team->Create Team으로 Team을 만들고, 다른 Bitbucket 사용자 추가하여 넣어 만들자. 
  • Team name: Team 이름을 정하자. 
  • Team ID: bitbucket.org/teamid로 접근이 가능 
Team을 구성할 경우, Project로 필요한데, Project 안에 Repository가 들어간다고 생각하면된다.

    Team이 생성 후, Members에서 현재 Member를 확인하고, Following으로 변경 
    Follower의 개념 아직 모호하지만, User가 다른 User의 Repository 따른다는 것이다.
    공유와 개념이 좀 헷갈린다.

   https://confluence.atlassian.com/bitbucket/followers-resource-296095249.html
   https://developer.github.com/v3/users/followers/

6.2 Create Project

Team이 존재하면, Project를 생성하여, Repository를 생성 및 Transfer해오자.
여러개의 Repository가 가능하므로, Project를 정하고, 가져오자.

  • NAME:  만들고자 하는 Project 명
  • KEY: 현재 어디에 사용이 되는지 정확히 모르겠다. 
  • Private Project 설정:

    https://confluence.atlassian.com/bitbucket/projects-792497956.html

이 때 기존에 존재하던 나의 Remote Repository 있다면, Transfer를 하여 사용하던가 혹은 새로 생성하여 같이  이 Project를 공유해가면서 작업을 하는 것이다.

6.3 Window 작업(Local Repository)

Team으로 했을 경우, 상대방도 동시에 Commit과 Push를 하기 때문에 나의 소스는 항상 Commit하기 전에,  Remote와 동기를 맞춰야하 한다. 이때 사용하는 것이 Fetch or Pull 이다.  아래와 같이 Git 명령을 보면 되겠다.


출처: http://blog.osteele.com/posts/2008/05/my-git-workflow

    http://ahyuo.blogspot.kr/2014/07/git-for-window_20.html
    http://ahyuo.blogspot.kr/2014/07/git.html

5/22/2016

Win32DiskImager-SD Card Writer (Window)

TI SDK에서 알게된 프로그램으로, 주로 SD Card Writer로 사용하였지만, 구지 이프로그램을 한정지어서 생각할 필요없다.

SD Card Writer되지만, Reader도 되고, 주 기능을 해당 Driver에 Image를 Read/Write 기능을 제공해주는 것이기 때문에
다른 Device에 얼마든지 적용이 가능하다. 다만 용량과 다른 제한사항이 있는지는 정확히 모르겠다.

현재는 거의 SD Card Writer 용으로 사용하지만, Reader 기능 , USB Read/Write 기능
다른목적으로 얼마든지 가능하다.

다른목적으로 사용한다면, 제약사항이 있는지 반드시 검증해보고 사용해봐야겠다.
현재 SD Card 용으로만 사용


  • Win32DiskImager  Download
  https://sourceforge.net/projects/win32diskimager/

TI의 경우 최근 1st Boot Loader 와 Uboot를 FAT를 넣어 확인이 가능하다.

  • 실행화면 
손쉽게 Device에서 찾아서 Image를 선택 후 image를 write 하면 된다.




  • G:\ Driver가 TI의 SD Card 
만약 SD Card가 FAT로 잡히지 않는다면, 어쩔수 없이, FAT로 포맷을 하고 해야할 것이다 



7/21/2014

GITHub Site 및 Github Program 사용방법

1. Github 관한 소개

Github는 GIT를 공개 웹호스팅이며, 최근 3년사이에 사이트가 많이 변경이 되어 Manual도 다시 Update한다.
별도의 Github에서 Window Program을 제공하지만, 이것보다는 Source Tree가 더 쓰기가 괜찮은 것 같다.

2. Github의 기본구성 

더 이상 Bootcamp는 제공하지 않으며, Guide와 Start Project로 간단하게 구성되어있다.
그리고, 본인의 프로젝트와 Fork된 프로젝트가 아이콘으로 구분이 되어 표시되어진다.

  • Github  기본사이트 
  https://github.com/




  • 이전메뉴



  • 본인의 실제 Github 
  https://github.com/JeonghunLee
  1. Gist :  소스를 공개적으로 쉽게 쓸 수 있고 공개 할수 있다. 
  2. Git  :  Server를 무료로 사용해주게 해준다.  



  • GIT 기본사용서 
       http://rogerdudler.github.io/git-guide/index.ko.html
  • Github Help
       https://help.github.com/
  • Gist 의 설명 
       https://help.github.com/articles/about-gists/
  • wiki 의 설명
       https://help.github.com/articles/about-github-wikis/
  • Remote repositories
       https://help.github.com/articles/about-remote-repositories/

  • Git Command의 일반적인 작업 
모든 Command는 다 안나왔지만, 일반적인 작업순서이므로 금방이해가 된다.

https://blog.osteele.com/2008/05/my-git-workflow/


3.  Github에서 Project 시작방법  

Github 사이트가서  Start repository  한 후 하고 Repository 이름을 정하자.
그리고, git init 와 git clone으로 이를 down load를 한다.

  • Linux 에서 Git 설치 및 준비 
 $ sudo apt-get install git 

**HTTPS 할 경우, Username과 Password 입력 ( Username Github 주소 표시)

**SSH 일 경우 ssh-keygen을 이용하여 key 생성후 이를 Github에 Setting->SSH Keys 등록

나의 경우, SSH가 편하고 좋으며, 한번 Key 생성 후 등록하면 걱정할 필요없다. 

  • Window 에서 설치 (선택)
  1. Github Program  설치 
  2. Source Tree  설치 ( 다시 설명)
현재 Source Tree를 자주 사용하다 보니, Linux 명령어도 아래의 사이트를 참조해서 보면쉽게 이해가능하다.
  https://www.atlassian.com/git/tutorials/syncing


  • GIT 기본설정  (SSH/HTTPS 반드시 먼저설정)
기본으로 본인이 사용하는 Github의 계정정보를 넣어주고 설정한다. 

$ git config --global user.email "you@example.com"  //Github 설정된 email 
$ git config --global user.name "JeonghunLee"       //Github UserName 

  • GIT 설정확인 
폴더 안에 .git

$ git config --list    // 현재 설정된 부분 확인  
user.email=xxxxxxxxx    // 상위에서 설정한 Github 설정된 email 
user.name=JeonghunLee   // 상위에서 설정한 Github Username 
......
remote.origin.url=https://github.com/JeonghunLee/xxxx.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master


  • GIT Remote 확인 
$ git remote -v  // Remote Repository와 좌측 이름 확인 
origin https://github.com/JeonghunLee/Ubuntu1804_Basic.git (fetch)
origin https://github.com/JeonghunLee/Ubuntu1804_Basic.git (push)

// 상위 remote.master.remote=origin 되었으면, remote -v의 좌측역시 동일하게 되어야함 



3.1  Github에서 Remote New Repository 생성   

아래와 같이 Github Site에 로그인을 한 다음에 Repository로 가서 New or Start Project  본인이 직접 새로운 Github의 Remote Repository를 생성한다.


A. Github 사이트에서 Remote Repository 생성   

Github에서 Remote Repository 생성시 아래와 같이 간단히 사용법을 알려준다.




B. 본인이 작업한 소스를 Local Repository에 생성 및 등록 Update한다  
  1. git init :  Git Local Repository를 구성한다
  2. git add : add로  Index(Head)에 등록한다 
  3. git commit -m : Commit으로 최종적으로 Local Repository 등록.
  4. git status : 현재 GIT 상태를 파악  

  • GIT Project 생성 및 파일추가 와 Local Repository에 Commit 

echo "# ahyuo.github.io" >> README.md
git init
git add README.md               // STAGE/INDEX 에 File 등록 
git commit -m "first commit"    // Local Repository에 Commit 
git status                      // 현재 GIT 상태확인 및 다음해야할 Command 추천 



C. Remote Repository와 등록 및 Push. 
  1. git remote add orgin : 현재 만들어진 new repository를 추가등록
  2. git push -u orgin master  : Local Repository와 Remote Repository를 Sync 즉 Update 

$ git remote add origin https://github.com/JeonghunLee/test
$ git remote -v                         // 등록된 remote Repository 확인 
$ git push -u origin master


상위에서 설명한 Remote Repository 설정확인


3.2 Github에서 Remote Repository를 가져올 경우  

직접 만들지 않고 기존에 존재하는 Remote Repository에서 Source를 Download하여 사용하는 경우이다.
보통 본인이 하던 작업 or 다른 Github 사람 작업 가져오기 경우가 될 수 있겠다.


$ git clone https://github.com/JeonghunLee/test.git   //소스 가져오기  

본인 Repository를 수정을 한 후 update 하고 싶다면 상위와 동일하다.

$ git add *                                    // Local Index(Stage) 에 등록 
$ git commit -m "added my functtion commit"    // Local Repository 등록 

$ git remote -v   // 등록된 remote Repository 확인 


$ git remote add origin https://github.com/JeonghunLee/test.git
$ git push -u origin master


만약 push가 되지 않는다면, 상위에서 설명한 Remote Repository 설정확인


3.3 Web에서 Github 의 Repository를 수정/추가 한 경우

아래와 같이 본인의 작업환경에가서 Remote Repository가 변경이 되어있으므로,
Local Repository도 아래와 같이 Sync를 맞춰준다.


$ cd test                    // 본인의 Local Repository 이동
$ git pull https://github.com/JeonghunLee/test.git  // 나의 Github의 Repository와 Sync를 맞춰어주는 작업 


3.4 Remote Repository 등록 과 Update(push) 할 경우 

이제 상위에서 기본 사용법을 익혔으니, 실제 HTTPS or SSH로 이용하여 Remote Repository에 이용해보자
이미 Local Repository 가 생성이 되어있다고 가정하고, 아래 방법으로 Update만 하면된다.
git init 중요 (Local Repository 생성)

  • A. HTTPS로 했을 경우 
중요한것은 본인의 Username과 Password를 알아둬야 가능하다.

// Github에서 이미 Remote Repository를 생성 
$ git remote add origin https://github.com/JeonghunLee/test.git            // Remote Repository 등록 (Github Remote 등록)
$ git remote -v                                                            // 등록된 remote Repository 확인 
$ git push -u origin master                                                // Local Repository 와 Remote Repository Push 하여 Sync
Username for 'https://github.com': 
Password for 'https://xxxxx@github.com':

  • B. SSH로 했을 경우
SSH는 Key 기반으로 동작하기 때문에 우선 아래의 Key를 생성하여 Github에 등록하자.
// Github에서 이미 Remote Repository를 생성 
$ git remote add origin git@github.com:JeonghunLee/test.git                // Remote Repository를  origin 등록 
$ git push -u origin master                                                // origin의 등록된 Remote Repository의 master에 Push 

1. SSH Key 생성하는방법 (본인 email 사용)

$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"   // RSA 기반으로 나의 Github Email 기반으로 Key생성
Generating public/private rsa key pair.
Enter file in which to save the key (/home/jhlee/.ssh/id_rsa): 
Created directory '/home/jhlee/.ssh'.

2. Password 두번 입력

Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/jhlee/.ssh/id_rsa.        // Private Key (Base64 Encoding)
Your public key has been saved in /home/jhlee/.ssh/id_rsa.pub.        // Public Key  (Base64 Encoding)
The key fingerprint is:
cf:bf:e0:59:f4:e5:9b:c5:6d:f9:17:df:1d:7c:f4:c0 your_email@example.com
The key's randomart image is:
+--[ RSA 4096]----+
|    .oo.         |
|.    .oo         |
|o . +o* .        |
| + + O.+         |
|  o o * S        |
|     . *         |
|      E .        |
|     .           |
|                 |
+-----------------+


3. Key를 확인하고 Github의 개인설정 Setting->SSH Key 등록


$ cat ~/.ssh/id_rsa.pub     // 이정보를 전체 입력 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLRdkIhvX5JZmRjaz6r19sdvHj+iDWskd+e8EWkFjrhuPFQdtd5KuFpgpDnchpgLNSxIYug0KzELqiiYMBk0MakVjvAlv9G5jo+VioHFsk9Hql9mAJUTQJ9sMAcu+JLY+3gGChNRbHTcnUK1Jm5SnPETmkasflA2Miv3ifhsr6Odmdc2VXtj6jqGrPGp47i21SXscszmGAdPtaUffo9xmfX9XKOOXjml2exNDPKl58Qu9OAF8Bn4Izxou34ctozA+UflJYOwCgcPf+dt3pa7SvnfpnzZpk4QsVh/ertjmUxno7Go71TgZRiwRe/lnK6xSmm0PDWjX2zquqagOaCkz/ your_email@example.com

4. 개인설정 (Setting->SSH Keys 등록) 후 확인
  https://github.com/settings/profile

Github 암호 없이  SSH Key 기반으로 접속이 가능

4. SSH-Agent 를 실행

$ eval "$(ssh-agent -s)"
Agent pid 2612

5. SSH에서 Key 추가 후 git push 실행

$ ssh-add ~/.ssh/id_rsa    
Enter passphrase for /home/jhlee/.ssh/id_rsa:             
Identity added: /home/jhlee/.ssh/id_rsa (/home/jhlee/.ssh/id_rsa)


Key 생성방법 및 추가방법 (Github 설명)
  https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/

Key 확인방법
  https://help.github.com/articles/checking-for-existing-ssh-keys/


추후 관리는 git tag  version 관리를 진행하고 git push remote와 sync를 맞추고새로운 file이 있을 경우 git add로 등록을 해주고 git commit으로 반영하고
remote와 sync를 맞추자.
사실 Tool로 관리하는 것이 편하긴 편하다.


3.5 Github 의 Repository Setting 

개별 Repository 의 Setting 의 기능에 대해 기본적으로 알아보자.

  1. Repository 이름 변경
  2. Repository 삭제 가능





4. 상대방과 협업 

Local repository 라는 본인의 개별 공간을 생성도 가능하지만, 상대방 Remote repository 와 나의 Remote Repository를 이용하여 협업도 가능하며,
상대방 Remote Repository에서도 협업이 가능하다.
  1. Fork는 상대방 Repository를 내 Repository로 그대로 복사해 오는 것
  2. Pull Request는 상대방 Repository 와 내 Remote Repository와 Merge하지하기 위해 요청하는 것

  • Fork
보통 상대방의 유용한 Repository를 Fork를 통하여 나의 Repository로 쉽게 가져올수 있다.
다만 이때 라이센스를 확인을 하고 가져오고 사용하자.
그리고, 이제 가져온 Repository는 내 맘대로 수정이 가능하며 권한도 내가 가지고 있다.
만약 수정을 하여 상대방이 내 소스가 좋다고 느껴 Pull Request를 할지도 모른다.
그러나, 보통 보면, 이것을 많이 거절하는 것 추세로 가는 것 같다.
그래도 반드시 참조와 라이센스는 중요하다.

  • Pull Request 
내 Repository를 상대방들이 Fork를 해서 가져가서 소스를 고치며, 내가 이제 Pull Request 가 가능하다.
이것을 이용하여 소스를 Merge하고 협업이 가능한 것이다.
Git의 pull command라는 것이 fetch하고 merge하는 기능이기에 일종의 상대방 Repository와 내 Remote Repository를 싱크를  맞추는 요청이다. (pull command)
                 
if you are hoping to contribute back to the original fork, you can send the original author a pull request    


5.  Github에서 Download 하는 방법  

Github 계정이 있다면,  상대방의 Public Github를 가져오는 방법은 Fork로 가져오면된다.
본인의 Github 소스를 Download 하고 싶다면  git clone을 이용하자.


6. Github Desktop 설정 및 기본사용법

아래 설정은 참고만 하고, 기본적으로 거의 고칠필요는 없다.
추후 이 챕터는 다시 작성.

  • 설정->Repository Setting
       현재 설정을 유지하지만, 만약 문제가 발생을 한다면, 아래의 설정을 수정한다.   
           .gitattributes 설정  // Line endings and attributes 변경
           .gitignore의설정   // Ignored files
 
  • 설정->Option 
  1. Configure git    기본환경설정 
  2. Clone Path :  my window repository path 
  3. Shell 설정 


Configure git는  GIT Command (git config --global user.name , user.email) 동일하며,  이며, 추후 여기에 설정되는 값들은 git config에 반영이 되므로, git config --list 로
확인하자.





이 Tool에서  쉽게 clone과 init을을 할 수 있는데, create 는  git init 과 동시에 폴더 생성이 되며, Clone도 git init 과 clone을 폴더 생성이다. 참 편하다.



여기서 create를 해주고, 파일들을 등록하고, 마지막에 Publish Repository를 해주면,이를 github에 자동으로 등록해주고, Github에 Remote Repository를 생성해준다.
물론 난 Public으로 생성

그런데,  Publish 하는 도중 Error  Failed to publish this branch 에러가 발생하는 경우가 발생한다. 이녀석이 https로만 통신을 하는데, 뭔가 문제가 발생을 한다.
내쪽에서 그래서 Proxy Server를 사용하면 해결이 된다고 하는데, 해보지 않았다.

지금 이 Tool이 https로만 동작하기에 , 설정에서 Repository Setting 에서 변경 불가능 해결책은 두가지다.
Proxy Server를 이용하거나, Shell을 이용하여, 직접 ssh주소로 연결하여 push하는거다.


1. Proxy Server 해결방법.

git config --global http.proxy http[s]://userName:password@proxyaddress:port

관련내용.
  http://stackoverflow.com/questions/13894387/github-failed-to-publish-this-branch-error-on-windows


2. Terminal에서 ssh주소로 직접 연결 

나는 귀찮아서, 이 방법으로 선택했으며, git command도 익힐 겸 해서  아래와 같이다 git command로 작성해서 해결을 했다.
이 문제가 발생하면,  github와 통신이 제대로 안되다 보니, Tool에서 제공하는 clone 기능과 sync기능 역시 제대로 안된다. 직접 command로 해야한다.  
다행히,Github에 자동으로 Repository까지는 생성이 되어서 귀찮게 Github사이트에 만들 필요가 없었다.



위와 같이 Github 사이트에서 나의 새로운 프로젝트를 확인을 하고, SSH주소를 확인을 한다.
지우고 싶다면, Setting -> Danger Zone의 Delete this repository 를 사용하면된다.

아래와 같이 한 이유는 origin 이미  https 주소로 사용되어있기에, ssh로 새로 사용.

$ git remote add ssh git@github.com:xxxxxx.

$ git push ssh master    // ssh remote주소에  master branch를 push한다. 

12/27/2013

WinMerge ( 비교 프로그램)

사실 개인적으로 beyond compare를 좋아하지만, 무료는 아니이기에, 소스비교프로그램 무료로 찾는다고 한다면,

WinMerge가 아닐까 싶다 Araxis Merge 혹은 beyond compare는 상용이기에, 이미 익숙해져있지만, 그래도 무료 Tool을 사용한다면
WinMerge는 무료를 쓸수 있어서 괜찮은 프로그램 인 것 같다.

Download
  http://winmerge.org/downloads/


1. 설치후 환경설정.






2.사용법.

다른 비교툴과 유사하며, 마우스 우측버튼을 누를경우 비교 메뉴가 나온다.

12/22/2013

notepad++

말이 필요없이 메모장 대신 자주 사용하는 프로그램이며, 편하고 가끔 코드수정용으로도 사용하는 좋은 필수 프로그램이다.
메모장보다 많은 기능을 제공한다.(인코딩, 다중탭,플러그인기능 등)

  http://www.notepad-plus-plus.org/