본문 바로가기

플밍 is 뭔들/GIT

09. 환경파일, 보안관련 파일 관리 ※ Ignore 우리가 DB에 접속할 때 id와 pw를 알고 있어야 한다. 허나 이런 DB의 id와 pw는 외부에 노출이 되면 안된다. 하지만 이러한 환경설정을 해놓은 파일은 반드시 필요하다. 그래서 Github에 올릴때 Ignore기능을 이용하면 Github에 올라가지 않는다. (환경파일 마우스 오른쪽 클릭 후 ignore클릭) 그리고 따로 템플릿 파일을 배포하여 협업시 다른 사용자가 자신의 환경에 맞게 설정할 수 있도록 도움을 줄 수 있도록 한다. 더보기
08. 태그 ※ 태그란? 버전들 안에서도 의미있는 기념할만한 버전들이 있다. 그러한 것들을 별도로 관리하고 표시해 줘야한다. 이러한 것을 해주는 것이 태그이다. 태그를 이용해서 그 태그부터 시작하는 브랜치를 만들 수 도 있고 원격 저장소에도 push를 할때 같이 태그를 저장 시킬 수 있다. 원격 저장소로 푸시할때 원격저장소로 tag를 올릴때는 push all tag를 체크해줘야 된다. (git에서는 태그를 모든사람을 꼭 공유할 필요가 없다고 생각하기 때문에 태그를 올리려면 따로 체크를 해주어야 된다.) 그리고 github에서는 tag를 releases란 메뉴에서 관리 할 수 있다. 더보기
07. STASH stash 1. (안전한 곳에) 넣어 두다 2. 챙겨 둔 양 무엇을 안전하게 넣어둘까?? 커밋하지 않은 아직 끝나지 않은 작업을 안전한 곳에 넣어둔다! ex) 아직 커밋하지 않은 내용을 임시로 저장해 두는 기능 예를들어 코딩을 하다 다른 작업을 급하게 먼저 처리해야 된다고 할때 내가 작업하던 코딩이 급하게 먼저 처리할 내용에 영향을 줄 수 있으므로 내가 작업하던 코딩을 임시로 저장해 두고 소스 코드를 최신 버전으로 rollback 시킨 후 작업한다. 급하게 처리할 작업이 완료되면 저장된 stash를 다시 적용하여 기존에 하던 작업을 다시 시작하면 된다. 더보기
06. 비교, 병합 외부 도구 연결 소스트리에서 기본적으로 지원하는 비교,병합 툴은 보기가 너무 불편하다. 그래서 우리는 외부의 비교,병합 툴을 연결하여 사용 할 수 있는데 Git에서는 이러한 외부 툴을 diff라고 한다. 이러한 diff 의 종류로는 SourceGear Diffmerge나 beyond compare가 있는데 사용자의상황에 맞게 잘 선택해서 쓰자. ※ diff연결 tool -> option -> diff 에서 External Diff Tool과 Merge Tool을 설정해준다. ※ diff툴의 사용 충돌이 일어났을때 충돌이난 부분을 오른쪽 클릭하여 Resolve Confilicts -> Launch External Merge Tool 클릭을 하면 위에서 설정한 diff가 켜진다. merge 툴에서는 base, local, .. 더보기
05. 협업 기존의 프로젝트를 다른사람과 협업하려할때 github에 있는 프로젝트를 다운받아야 된다. ※ 원격 저장소에 있는 프로젝트 로컬로 다운로드 받기(Clone/복제) ※ 협업시 소스를 수정하기 전에 해야할 사전작업 협업을 하는 사람들은 기본적으로 작업을 하기전에 원격저장소에 새로운 버전이 올라가 있는지 확인해야된다. 원격저장소의 최선버전과 내가 작업하는 곳의 버전이 같아야 충돌을 최소화 할 수 있다. 협업시 작업 시작전 Pull을 하자! (Pull-원격저장소에서 로컬저장소로 내용을 가저오는 행위) 만약 작업전 Pull을 안하고 작업을 한 후 Push를 하면 git에서 오류를 내서 Pull을 한 후 Push를 하라고 유도를 한다. 물론 pull을하면 자동으로 병합을 해준다. 하지만 충돌이 일어나면 사용자가 직접.. 더보기
04. 원격저장소 ※ 원격저장소의 종류 https://github.com/ (깃허브) https://about.gitlab.com/ (깃랩) ※ 원격저장소 만들기(github 기준) 1.github 페이지에서 원격저장소 만들기 2.소스트리에서 원격저장소와 연결하기 3.원격저장소와 동기화 시키기 Push기능을 이용한다. (Push - 로컬 저장소의 내용을 원격저장소로 밀어내는 행위) 더보기
03. 브랜치(Branch) ※ 브랜치란? 소프트웨어를 개발할 때에 개발자들은 동일한 소스코드를 함께 공유하고 다루게 됩니다. 동일한 소스코드 위에서 어떤 개발자는 버그를 수정하기도 하고 또 다른 개발자는 새로운 기능을 만들어 내기도 하죠. 이와 같이 여러 사람이 동일한 소스코드를 기반으로 서로 다른 작업을 할 때에는 각각 서로 다른 버전의 코드가 만들어 질 수 밖에 없습니다. 이럴 때, 여러 개발자들이 동시에 다양한 작업을 할 수 있게 만들어 주는 기능이 바로 '브랜치(Branch)' 입니다. 각자 독립적인 작업 영역(저장소) 안에서 마음대로 소스코드를 변경할 수 있지요. 이렇게 분리된 작업 영역에서 변경된 내용은 나중에 원래의 버전과 비교해서 하나의 새로운 버전으로 만들어 낼 수 있습니다. ※ 브랜치 만들기 ※ 브랜치 병합(Me.. 더보기
02. 되돌리기 ※ WorkingCopy Index Repository 새로 만든 파일들은 최초의 Commit 전에는 Git에서 관리해주지 않는다. 새 파일의 내용이 변하던 변하지 않던 그 파일은 그저 새 파일로만 간주 될 뿐이다. 소스 트리에서 Commit할때 필요한 개념 *파일을 Commit할 때의 순서와 개념 Working Copy(변경사항이 있는 파일들) -> Add(Index, Staging Area에 추가하는 행위) -> Commit(Index 혹은 Stage Area에 추가되어 있는 파일들을 Repository에 저장하는 행위) *소스 트리에서는 workging copy에서 여러파일을 한꺼번에 add시켜 commit하면 그 파일들이 하나의 Discription으로 남는다. 이런식으로 어떤 기능을 만들때 여러.. 더보기
01-3. 버전 만들기(commit) ※ Git과 SVN에서의 커밋의 차이점 - 내가 그동안 써오던 SVN은 커밋을 하면 중앙Repository(서버)에 저장이 되었다. 하지만 Git에서 커밋은 중앙Repository가 아닌 내 PC 즉 로컬에 새 버전을 저장시키는 것이다. 그렇기 때문에 인터넷이 안되거나 서버에 접속이 안되어 있어도 로컬에서 버전관리를 할 수 있고 작업이 가능하다. Git에서는 SVN의 Commit과 Update의 개념은 Push와 Pull이다.(서버에서 버전관리) 더보기
01-2. 저장소 만들기 ※ 이렇게 저장소 Repository를 생성한 후 3번에서 선택한 폴더에 버전관리를할 파일을 넣어서 관리한다. 더보기
01-1. Git 기본 소개 ※ 버전 관리 시스템(Version Control System) = 형상관리, 소스관리 버전이란? - 의미있는 변화들(기능의 개선, 버그수정, 고객의 요구사항에 맞게 소프트웨어를 커스터마이징하여 제공했다 등등) 버전 관리 시스템이란? - 의미있는 변화들을 관리하는 체계, 방법론, 소프트웨어 ex) 어떤 문서에 변화가 있을 때 원본 문서를 수정하는게 아니라 원본 문서를 복사해서 복사본에 수정사항을 작성한다. 이렇게 변화가 있을때마다 버전을 업데이트하면서 문서를 관리하면 나중에 원하는 버전의 문서를 사용할 수 있다. GIT이란? 리누스 토발즈가 리눅스 커널소스 관리를 위해 만든 소스 버전 관리 프로그램. 속도에 중점을 둔 분산형 버전관리 시스템(DVCS) - 대형프로젝트에 효과적 SVN과 다르게 COMMIT.. 더보기