Git 사용법

IT 2018.10.07 10:22


//=========

< Git 유틸 >


* Git Bash

- Windows에서 git CLI (명령어 작업)



* Source tree

https://www.sourcetreeapp.com/

- Git GUI Util




//====================================

* GitHub 웹 사이트에서 작업(기본 과정)

https://guides.github.com/activities/hello-world/



* 저장소(Repository) 만들기

- 프로젝트의 시작, 저장소 이름=프로젝트 이름

- Private 는 유료 한달에 $7

https://bitbucket.org/은 비공개 프로젝트도 무료 <=== 추천



- 방법 : 

GitHub 계정의 메인 화면 -> Repositories -> New

-> 저장소 이름



//=============

* Branch 만들기

- 한 프로젝트에서 곁가지 작업, 완료후 삭제해도 됨

- master 는 메인 브랜치


- 방법

저장소 화면 -> Branch:master 콤보박스 선택 -> 빈칸에 브랜치 이름 

- 이 메뉴에서 브랜치를 이동할수 있다.



//=============

* 편집후 commit(save)

- readme.md 파일 선택 -> 수정 -> Commit changes



//=====

* Pull

- 내가 작성한 코드를 원격에 올리고 검사 요청


- 상단의 'Pull requests' 탭 메뉴 선택 -> New pull reauest 선택

-> commit한 요청들의 리스트가 보인다 -> 선택

-> 맘에 든다면 Create Pull Request 선택 

-> 코멘트를 하고 하단의 Create Pull Request 버튼을 누른다.


* Merge

- Pull 된 코드를 master에 합친다.


- Merge pull reques  -> Confirm merge.



* 브랜치 지우기

- master로 merge 까지 됐으면 브랜치를 지워도 된다.


- 상단의 Code 탭 메뉴 선택 -> branches 선택 (commits 우측)

-> 삭제할 브랜치가 Merged 상태이면 휴지통 아이콘을 선택해서 삭제




//======================================================

// Windows 로컬에서 명령행 작업



* GitHub 메인 폴더가 D:\_GitHub라면 유저홈폴더에 폴더 정션을 만들어 준다

- 심볼릭 링크는 안됨, 하드링크는 파일만 가능(폴더는 안됨)

현위치 C:\users\userID 

mklink /j github d:\_GitHub

cd github



- Git Bash 실행

cd github  // 루트 폴더로 이동


- 저장소 폴더 생성

mkdir prj1

cd prj1


- git 초기화

git init


- 파일 생성 하고 Git에 추가(스테이지에 올리기)

- 추가(add) 작업을 하지 안으면 Git이 추적을 안함

- commit 전 단계


touch readme.txt    //파일 생성

git status     //상태 보기


git add readme.txt //stage에 올리기

git add . //모든 파일(하위 폴더 포함)을 스테이지에 올리기



- 현재 변경한 상태 저장

git commit -m “코멘트:Add Readme.txt”



- 버전 설정, commit의 이름

- tag를 설정하지 않으면, 나중에 되돌릴때 해쉬코드를 입력해야 한다.

git log --pretty=format:"%h %s" 


git tag 버전이름



//====================================

* 브랜치 만들기

git checkout -b bran1 // bran1이라는 브랜치를 만들고 이동

git branch -d bran1  //브랜치 삭제



touch bran1.txt

git add bran1.txt // 스테이지에 올리기

git commit -a -m "브랜치 추가" //commit



- 최신 마스터를 오래된 브랜치에 합치기(merge)

git merge master // 현재 브랜치에 변경된 마스터 반영



- 마스터에 합치기

git checkout master //마스터로 이동

git checkout bran1 //브랜치를 마스터에 합치기



- 원격 저장소에 업로드

git push origin 브랜치이름     //원격에 업로드




//====================================

< 이전 버전으로 되돌리기 - checkout >


* 버전을 돌리기 전에 현재 변경 상태를 임시저장

git stash

- 다시 되돌리려면 git stash pop



* 버전(tag) 보기

git tag



* 원하는 버전으로 돌아가기

git checkout 태그이름

- 파일이 모두 바뀌고, 이전 이후 모두 이동할수 있다.



//====================================

< 이전 버전으로 되돌리기 - reset , revert>


* 변경 내역 보기

- commit 해쉬 코드 확인

git log --pretty=format:"%h %s" 



* 되돌리기

git reset 이름

- 파일은 바뀌지 않는다.


git reset --hard 이름

- 파일도 바뀐다


git revert HEAD

- 가장 최근 commit이 취소된다.



* 지운후 원래 대로 되돌리기

- 예시 상황) v1 -> v2 -> v3 

- git reset --hard v2 //v2로 되돌림(v3 삭제)

- git merge v3 //v3를 합침(되돌림)



//====================================

< 여럿이 협업하는 경우 GitHub 사용>

https://gmlwjd9405.github.io/2017/10/28/how-to-collaborate-on-GitHub-2.html

- 하나의 사이트에서 작업하는 경우도, 브랜치 단위로 작업해서 올리고 merge하는 과정을 거치면 됨



- 중앙 원격 저장소 : 프로젝트의 중심 (upstream)

- 로컬에서 git에 등록

git remote add upstream https://github.com/central/prj.git


- 원격 저장소 : 중앙 저장소를 fork (origin)

git remote add origin https://github.com/myname/prj.git


- 로컬 저장소 : 원격 저장소를 clone

git clone origin



//===================

- 브랜치를 만들어 작업

git checkout -b bran1 // bran1이라는 브랜치를 만들고 이동

git add . // 스테이지에 올리기

git commit -a -m "브랜치 추가" //저장

git push origin //원격에 올리기



- 원격 -> 중앙  Pull 요청

원격 사이트에서 브랜치 선택 -> Pull request 


- 중앙의 관리자가 확인후 merge



- 중앙 -> 로컬 복사

git pull upstream master




//==================================

// 참고

git - 간편 안내서

https://rogerdudler.github.io/git-guide/index.ko.html




//=========================================

//참고


* 배포 제외 파일 설정

- 프로젝트 루트 폴더에 .gitignore 파일 생성

- 파일이름을 적는다. (와일드 카드 가능)



* 파일과 폴더 단위 설정

https://git-scm.com/book/ko/v1/Git%EB%A7%9E%EC%B6%A4-Git-Attribute

- 프로젝트 최상위 폴더에 .gitattributes 파일 생성




Posted by 코덴스
TAG ,

댓글을 달아 주세요