Github: 28개의 글
https://www.gitignore.io/ 를 가면 미리만들어진 파일을 받을 수 있다. 작성법 기호 의미 # 주석 ! 예외 / 디렉터리를 의미 *.exe 확장자 exe파일을 모두 무시 A/*.exe A 디렉터리 안에 있는 확장자 exe파일을 모두 무시 .gitignore 은 앞으로 Git 버전 관리에서 제외할 파일 목록을 지정하는 파일이다. 따라서 이미 버전 관리에 포함되어 있는 파일들을 .gitigore 파일에 기록한다고 해서 Git이 알아서 버전 관리에서 제외 하지는 않는다. 이 경우에는 수동으로 해당 파일들을 버전 관리에서 제외시켜줘야 하는데 git bash에서 git rm --cached 를 입력하면 적용된다 출처: https://sjh836.tistory.com/39?category=6951..
1. 브랜치로 일하기 현업에서는 이슈를 해결하기위해 이슈마다 브랜치를 딴다. 이렇게 딴 브랜치로 이슈를 해결한 후 master에서 이슈브랜치를 병합하는 것을 Fast-forward 방식이라고 한다. 실제 master 브랜치는 커밋 object가 생성되지 않지만, 포인터를 앞으로 옮긴다. (fast-forward빨리감기라고 함) 별도의 커밋을 갖고있는 master브랜치와 이미 분기된 다른 브랜치와 merge할 때는 fast-forward 방식이 아니다. 이때 git은 공통 조상을 찾고 3way-merge를 이용하여 갈라진 커밋객체를 합치고 새 커밋객체를 만든다. 2. 충돌해결 같은 파일(=A)의 같은 코드를 각자 브랜치(로컬과 원격저장소가 될수도 있다)로 작업(commit)을 하고 merge를 할 때 충돌..
git의 원리 흐름도 git의 object들이 working디렉터리에서 index를 거쳐 repo까지 어떤 명령어로 어떻게 움직이는지 원리를 정리해봤다. 이제 아래그림을 완벽히 이해할 수 있을 거다!! 1. git init .git의 초기구성 HEAD config description /branches /hooks /objects /refs 2. git add git add를 했을때 index(=stage area,tree구조)에 object이름과 실제파일이름이 추가되고(추적등록) objects에 blob타입으로 파일내용이 추가된다. 같은 파일이라도 파일내용이 달라지면 새로운 object가 생긴다. object의 이름은 SHA1로 HASH된다. 즉 파일내용이 같으면 object명이 같다. 3. git c..
1. Git같은 버전관리시스템이 나오게 된 배경 - 파일이나 폴더를 편집할 때 작업을하면서 아래 사진처럼 번잡하게한다. - 만약 여러명이 공유한 파일을 편집한다면 저장할때 동기화문제가 있다. - 이와같은 문제를 해결하기위해 git이 탄생. 2. git을 이용한 버전관리 - 소스 코드가 변경된 이력을 쉽게 확인 가능 - 특정 시점에 저장된 버전으로 되돌아 갈 수 있다. - 동시저장할때 누군가 편집한 내용과 충돌한다면, 경고메시지 발생. 내용덮어쓰는 실수가 없다. - 매번 백업용 파일 복사본을 만들 필요가 없다. 3. 초기설정: ~/.gitconfig 에 저장된다 git config --global user.name 자신의 닉네임 git config --global user.email 자신의 이메일 4. 명..
.gitignore파일에 대하여 IDE 같은 에디터를 이용하면 자동으로 생성되는 파일이 있습니다. 이클립스, MacVim등 또는 빌드시 생성되거나 운영시 생성되는 파일 등 레포지토리에서 관리될시 협업에 문제가 되는 경우도 있습니다. 이러한 파일을 무시할 수 있는 방법이 있는데 그것은 .gitignore파일을 이용하는 것입니다. 저장소에서 무시할 파일을 .gitignore파일에 추가하여 해당 .gitignore파일을 깃 프로젝트 루트 폴더에 저장하면 저장소에서 사라집니다. 또 .gitignore는 와일드 카드를 지원합니다. 예를들어 모든 .swp파일을 무시하고 싶다면 *.swp로 등록하면 됩니다. 헌데 php, android등 프로젝트 특성별로 무시해야할 파일들이 다르며 하나한 특성을 파악하여 추가하기에 ..
백업해둔 프로젝트를 내 컴퓨터로 받아오거나 협업을 위해 새로운 개발자가 프로젝트를 로컬 저장소로 받아와야하는 경우가 있다. 이때 clone을 통해 로컬 저장소에 원격 저장소에 있는 프로젝트를 가져올 수 있다. STEP01.GitHub에 있는 가져올 원격 저장소에 접근하여 HTTPS 값을 복사한다. STEP02.SourceTree에서 왼쪽 하단의 "Add Repository"버튼을 누른다. STEP03."Clone Repository"탭에서 "Source Path/URL"에 복사해둔 HTTPS값을 붙여넣고 "Destination Path"에 받아온 프로젝트를 저장해둘 경로를 지정해준다. 마지막으로 "Bookmarks"에 SourceTree에 표시할 저장소의 이름을 지정해주고 "Clone"버튼을 누른다. S..
GitHub에 로컬 저장소의 프로젝트를 최초로 동기화한 이후 로컬 저장소 프로젝트에 변경 사항이 발생하여 수정을 하였다. 이 경우 다시 push를 통해 로컬 저장소와 원격 저장소를 동기화 해주어야 한다. STEP01.프로젝트의 소스코드를 수정하고 commit과정을 거친다. 위의 그림과 같이 새로운 버전이 생성이 되었다. 여기서 버전 목록을 보게 되면 최신 버전이 master 브랜치로 되어있고 그 바로 밑의 버전에 origin의 master 브랜치로 표시 되어있다. 이것은 아직 로컬 저장소와 원격 저장소를 동기화 하지않아 두 개의 저장소 사이에 하나의 버전이 차이난다는 것을 보여주는 것이다. 또한 상단의 "Push"버튼에 1이라는 숫자가 보이는데 이것 또한 로컬 저장소와 원격 저장소가 하나의 버전이 차이난..
앞서 GitHub를 통해 생성한 원격 저장소를 내 컴퓨터에 존재하는 로컬 저장소와 연결을 하였다. 이렇게 연결한 원격 저장소에 내 컴퓨터에서 작업하던 프로젝트를 백업 또는 협업하기 위해 프로젝트를 동기화할 수 있다. 이것을 push라 한다. STEP01.SourceTree에서 해당하는 로컬 저장소를 선택한 뒤 상단 메뉴의 "Push"버튼을 누른다. STEP02.상단의 선택 메뉴에서 프로젝트를 올리고자 하는 원격 리포지토리를 선택하고 (origin 또는 또 다른 원격 저장소) 다음으로 올리고자 하는 branch를 선택한다. 마지막으로 "OK"버튼을 누른다. STEP03.Username과 Password를 입력하라는 창이 나오면 자신의 GitHub 계정을 입력하면 된다. STEP04.push가 완료되면 아래..