git 설치 및 사용하기
테스트 환경 : Windows 7 64bit
참고 : http://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup
http://onlywei.github.io/explain-git-with-d3/#
1. git 프로그램 다운받기

-- "Downloads for Windows" 를 선택하면, git 프로그램 다운받는다.
그런데, 윈도우즈 용은 Git-1.9.4-preview20140929.exe 로 구버전이다. 그냥 사용하면됨.
2. git 설치
-- git 설치 프로그램의 default 셋팅 그래로 설치함.



3. git 사용하기
1) 윈도우즈 시작메뉴에서 Git -> Git Bash 선택하여 실행하기. (권하지 않는 사용법)


--> 이런 경우 해당 작업 폴더로 이동시 경로명이 윈도우즈와 달라서 헷갈리고.. 어려울수도..
예 ) C:\mygit\test3 폴더로 이동시에, Git Bash 에서는
$ cd /c/mygit/test3 라고 입력해야함.

2) 윈도우즈 탐색기에서 마우스 우클릭하여 단축메뉴로 Git Bash 실행하기. (추천하는 사용법)

-- 바로 해당 폴더에서 시작 가능하다.

** 설치된 git 프로그램 버전 확인 해보자 (테스트)
$ git --version

4. git 환경 설정하기
-- 컴퓨터에 git 을 설치하고 처음에 한번만 해주면 된다.
참고 사이트 : http://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup
1) 이름 등록하기
$ git config --global user.name "사용자명"
2) e-mail 등록하기
$ git config --global user.email "메일 주소"

** 설정 확인하기
$ git config --list

5. 본격적으로 git 사용하기.
1) 현재 폴더를 git 로컬저장소로 등록하기
$ git init
* test5 폴더를 만들어서, test5 폴더를 git 로컬저장소로 등록하기.

--> windows 명령어가 아니, 리눅스 shell 명령어를 사용한다!
- $ git init 실행하면, 경로명 뒤에 (master) 가 보인다.
** 로컬저장소 상태 확인하기
$ git status

2) 현재의 로컬저장소에 파일을 하나 만들어 보자.
-- 다른 에디터 프로그램으로 파일 만들어도 되지만, 간단하게 echo 명령어로 t.txt 라는 파일 만들고 상태 확인해보자.

---> t.txt 파일이 추적되지 않은 파일(untracked files)로 설명 나옴.
--> commit 하기 전에 index 에 등록 한후, commit 해야 한다.
3. 파일을 index 하자.
$ git add 파일명
( 참고 : $ git add . ==> 현재 폴더의 모든 파일을 인덱싱한다.)

** 참고 :
http://git-scm.com/book/ko/v1/Git%EC%9D%98-%EA%B8%B0%EC%B4%88-%EC%88%98%EC%A0%95%ED%95%98%EA%B3%A0-%EC%A0%80%EC%9E%A5%EC%86%8C%EC%97%90-%EC%A0%80%EC%9E%A5%ED%95%98%EA%B8%B0#파일-무시하기
git 에서 사용하지 않을 파일 설정하기.
-- .gitignore 파일내부에 무시할 파일 기록하면됨.
예) 확장자 pyc 인 파일은 git 에서 사용안하려고 한다.
$ cat > .gitignore
*.pyc
( ctrl + d 를 눌러서 파일쓰기 종료한다.)
4. commit 하기
$ git commit -m 'initial commit'
---> 로컬 저장소에 commit 한다.

5. 원격 저장소 추가하기
1) 원격저장소 확인하기
$ git remote
-- 아래의 경우에는 이전에 원격저장소 연결된 적이 없어서, 결과 없다.

2) 원격저장소 추가하기
참고 : http://git-scm.com/book/ko/v1/Git%EC%9D%98-%EA%B8%B0%EC%B4%88-%EB%A6%AC%EB%AA%A8%ED%8A%B8-%EC%A0%80%EC%9E%A5%EC%86%8C#리모트-저장소-추가하기
$ git remote add [단축이름] [url]

==> origin --> 단축이름 이다. ( git 에서 pull 할때 기본으로 설정된 이름이다.)
3) 원격저장소에 push 하기 (즉, 업로드하기)
$ git push [리모트 저장소 이름] [브랜치 이름]
-- -u 옵션은 생략해도 된다.
-u 옵션 사용시에는 이후에는 git push 만으로도 전체입력 효과 발생. ( 즉 옵션을 기억 한다.)

-- 원격저장소 github 에 잘 올라가있는 것을 확인 할수 있다.




*** git pull
; pull = fetch + merge
- 원격저장소의 변경 내용을 로컬저장소로 가져와서 (fetch),병합 (merge) 한다.
- 프로젝트 시작할때마다, git pull 실행하여, 변경사항 가져오자!!!
; 변경 사항 없으면, Already up-to-date 라고 나온다. (bitbucket 기준)

*** 파일 삭제 , 수정하기
-- windows 폴더에서 그냥 삭제, 수정하면 안된다. (복잡해짐, 추가로 git 에서도 삭제 작업해야함.)
* 삭제
$ git rm myfile.txt
* 수정
$ git mv my_orgin_file.txt my_target_file.txt
*** github 원격 저장소 만들기
1. HTTPS
-- git 주소 = "https url 주소 + .git "
즉 , https://github.com/jayu108/git_test.git

2. SSH

# 실제 github 주소 == https://github.com/jayu108/rstudy
git remote add origin https://github.com/jayu108/rstudy.git
git push -u origin master
$ git clone https://example.com/gitproject.git
** pull = fetch + merge
*** git clone 만들기
http://git-scm.com/book/ko/v1/Git%EC%9D%98-%EA%B8%B0%EC%B4%88-Git-%EC%A0%80%EC%9E%A5%EC%86%8C-%EB%A7%8C%EB%93%A4%EA%B8%B0
clone 할 github 주소가 https://github.com/jayu108/book_parallel_programming_with_python.git 인 경우.
$ git clone https://github.com/jayu108/book_parallel_programming_with_python.git
입력하면, 현재 폴더에 book_parallel_programming_with_python 라는 이름의 폴더 만들고 그 내부에 cloning 한다.

** mygrit 라는 폴더에 cloning 할려는 경우.
$ git clone git://github.com/schacon/grit.git mygrit
-- protocol 은 git, https, ssh 모두 사용가능하다.
*** git push 에러 참고
- Protocol https not supported or disabled in libcurl 에러 발생하는 경우 있다
--> 아마도 libcurl 버전 충돌 문제인듯.


C:\Windows\SysWOW64\libcurl.dll 을 지우고, C:\Program Files (x86)\Git\bin\libcurl.dll 을 복사하여 C:\Windows\SysWOW64\ 에 넣음.
--> 다시 git push 하면 성공한다.