본문 바로가기

Study

[Git] 5장. 깃허브로 협업하기 원격 저장소 복제하기 원격 저장소를 기존에 연결된 지역 저장소 외에 다른 지역 저장소에서 사용하려면 원격 저장소에 담긴 내용 전체를 지역 저장소로 가져와야 한다. 원격 저장소를 지역 저장소로 똑같이 가져오는 것을 '복제한다'고 하거나 '클론' 또는 '클로닝'이라고 한다. $ git clone 복제할 디렉터리가 없다면 자동으로 디렉터리가 생성된다. 현재 디렉터리에 복제하려면 대신 마침표(.)를 입력하면 된다. 컴퓨터에 올리고 내려받아 작업하기 파일을 커밋과 푸시를 하면 원격 저장소에 저장이 되고, 다른 컴퓨터에서 풀하면 변경 사항이 지역 저장소에 저장된다. - A 컴퓨터 $ git commit -am $ git push - B 컴퓨터 $ git pull 원격 master 브랜치 지역 저장소의 master .. 더보기
[Git] 4장. 깃허브로 백업하기 깃허브 원격 저장소에 깃을 사용할 수 있다. 지역 저장소를 백업할 수 있다. 협업 프로젝트에 사용할 수 있다. 자신의 개발 이력을 남길 수 있다. 다른 사람의 소스를 살펴볼 수 있고, 오픈 소스에 참여할 수도 있다. 원격 저장소에 연결하기 깃허브 저장소 화면에 여러가지 접속 방법을 알려준다. 아래의 방법은 '커맨드 라인에서 기존 저장소를 푸시하기' 방법이다. 원격 저장소에 origin을 추가하겠다고 깃에게 알려준다. 깃허브 저장소 주소를 그대로 쓰면 너무 길기 때문에 origin이라는 단어로 줄여서 remote에 추가한다. $ git remote add origin -v 옵션으로 원격 저장소 연결 상태를 확인할 수 있다. $ git remote -v 원격 저장소에 파일 올리기 지역 저장소의 커밋을 원격 .. 더보기
[Git] 3장. 깃과 브랜치 브랜치 버전 관리 시스템에서는 나무가 가지에서 새 줄기를 뻗듯이 여러 갈래로 퍼지는 데이터 흐름을 가리킨다. 깃으로 버전 관리를 시작하면 기본적으로 'master'라는 브랜치가 만들어진다. 새 브랜치를 만들면 기존에 저장한 파일을 master 브랜치에 그대로 유지하면서 기존 파일 내용을 수정하거나 새로운 기능을 구현한 파일을 만들 수 있다. 새 브랜치에서 원하는 작업을 다 끝냈다면 새 브랜치에 있던 파일을 원래 master 브랜치에 합칠 수 있다. 기본적으로 가장 최근의 커밋을 가리킨다. 분기 master 브랜치에서 뻗어 나오는 새 브랜치를 만드는 것을 '분기(branch)한다'고 한다. 병합 분기했던 브랜치를 master 브랜치에 합치는 것을 '병합(merge)한다'고 한다. HEAD 현재 작업 트리(.. 더보기
[Git] 2장. 깃으로 버전 관리하기 깃 초기화 해당 디렉터리에서 깃을 사용할 수 있도록 초기화 해준다. $ git init 깃 상태 확인 해당 디렉터리의 깃 상태를 확인할 수 있다. $ git status 버전 버전은 문서를 수정하고 저장할 때마다 생기는 것으로 점차 쌓인다. 깃은 파일을 다른 이름으로 저장하지 않고, 만든 시간과 수정 내용까지 기록하여 저장한다. 깃은 버전마다 작업했던 내용을 확인할 수 있고, 그 버전으로 되돌아갈 수도 있다. 작업 트리 파일 수정, 저장 등의 작업을 하는 디렉터리로, 우리 눈에 보이는 디렉터리가 바로 작업 트리다. 스테이지 버전으로 만들 파일드리 대기하는 곳이다. 스테이징 영역(staging area)라고 부르기도 한다. 저장소와 함께 .git 디렉터리에 숨은 파일 형태로 존재한다. 스테이징 수정한 파일.. 더보기
[Git] 1장. 깃 시작하기 깃 특징 버전 관리: 수정 내역을 구체적으로 기록 가능하다. 백업: 원격 저장소에 저장해 둘 수 있다. 협업: 원격 저장소를 통해 파일을 주고 받으며 일할 수 있다. 깃 프로그램 깃허브 데스크톱 (GitHub Desktop): 깃허브에서 제공하는 프로그램으로, 기본적인 기능만 있어 고급 기능이 적다. 토터스깃 (TortoiseGit): 윈도우 전용 프로그램으로, 탐색기의 빠른 메뉴에 추가된다. 소스트리 (SourceTree): 고급 기능을 사용할 수 있는 프로그램으로, 사용법이 복잡하다. 커맨드 라인 인터페이스 (Command Line Interface): 터미널 창에 명령을 입력하는 방식으로, GUI가 없다. 깃 설치 리눅스 명령어를 사용할 수 있는 Git Bash(Command Line Interfa.. 더보기
[두들낙서] 상속에서의 형변환 업캐스팅 - 자식 클래스 포인터에서 부모 클래스 포인터로 형변환을 할 수 있다 - 묵시적으로 일어난다 주의 부모 클래스와 자식 클래스의 배열 크기를 고려해야 한다 형변환은 포인터를 사용하기 때문 ex) class Animal { public: float xpos = 1; float ypos = 2; }; class FlyingAnimal : public Animal { public: float zpos = 3; }; void printAnimals(Animal *a, int n) { for (int i = 0; i < n; i++) { cout 더보기
[두들낙서] 상속 상속 - 상위 클래스의 멤버 변수와 메소드를 하위 클래스에서 사용할 수 있도록 한다 주의 상위 클래스에서 하위 클래스의 멤버 변수와 메소드 사용이 불가능하다 ex) class Base { public: void bFunc() { } int bNum; }; class Derived : public Base { public: void dFunc() { } int dNum; }; 부모 클래스 - 자식 클래스로 상속을 해준 상위 클래스 자식 클래스 - 부모 클래스로 부터 멤버 변수와 메소드를 상속받은 하위 클래스 - 부모 클래스의 멤버 변수와 메소드에 추가 변수와 메소드를 더한다 주의 자식클래스가 부모클래스에 속해있다 부모클래스가 더 큰 범위의 클래스다 접근 제어 - 외부접근은 제한되지만 자식 클래스에서 접근은.. 더보기
[두들낙서] 묵시적 형변환 묵시적(암시적) 형변환 (implicit conversion) - 객체에 변환 생성자가 있다면, 형변환을 별도로 하지 않아도 입력이 된다 주의 어떠한 형태로 변환될지 애매한 상태일때는 명시적 형변환을 이용해준다 문법상 int, double 둘 다 가능할 때 ex) class Item { Item(int num) : num(num) { } } 형변환을 시켜줄 수 있는 생성자면 모두 변환 생성자다 Item i3 = 3; 3이 int값이지만, 형변환을 명시하지 않아도 상단의 생성자를 바탕으로 형변환을 시켜준다 명시적 형변환 (explicit conversion) - 객체에 변환 생성자가 있어도, 형변환을 별도로 할 수 있다 ex) class Item { Item(int num) : num(num) { } } .. 더보기