GIT: 66개의 글

원격 저장소를 연결하는 방법은 다음과 같다. Git Repositories에서 다음과 같이 우클릭하여 Clone a Git Repository를 클릭한다. 깃 허브에서 다음 URL 주소를 복사하여 붙여넣는다. 그럼 다음과 같이 정보가 입력된다. 유저 이름과 비밀번호를 입력하고 next를 클릭한다. 가져오길 원하는 branch를 선택한다. 필자는 master branch만 가져오려고한다. Directory를 정하고 Finish를 클릭한다. 다음과 같이 원격 저장소가 Clone(복제)된 것을 확인할 수 있다. 그럼 이클립스 프로젝트로 복사하도록하자. 다음과 같이 클릭한다. 다음과 같이 진행하면 프로젝트가 추가된 것을 확인할 수 있다. git과 연동된 프로젝트라는 것을 알 수 있도록 프로젝트 아이콘에 원통형 ..

git 기록은 다음과 같이 확인이 가능하다. 다음과 같이 history에서 커밋 내역 그래프를 볼 수 있다. 출처 : namubada.net/239?category=779993

우선 git 테스트를 위하여 다음과 같이 Spring 프로젝트를 만든다. 다음과 같이 프로젝트를 톰캣으로 실행하면 아래와 같은 화면이 출력된다. 다음 화면과 같이 오른쪽에 GIT 퍼스펙티브를 클릭한다. 만약 없다면 상단 window > show view > git repositories에서 확인할 수 있다. 자 이제 저장소를 생성해보도록하자 package exploer로 퍼스펙티브를 변경한다. 변경 후 다음과 같이 Share Project를 진행한다. Configure Git Repository 창이 열리면 우측에 Create를 클릭한다. 필자는 다음 폴더를 새로 생성한 후 폴더를 선택했다. finish 버튼을 클릭한다. 그러 다음과 같이 프로젝트 아이콘에 물음표가 생기고 달라진 것을 볼 수 있다. 오른..

인텔리J에서 기존 프로젝트를 깃으로 연동하는 방법은 다음과 같다. 우선 VCS에서 아래 사진과 같이 이동한다. 필자의 경우 연동하려고하면 아래와 같은 메시지가 나온다. 이미 github에 있는 두개의 git에서 연동되어 있다고 나온다. 그런데 이미 두개의 github는 삭제했고 추가로 Shre할 것이기 때문에 Share Anyway를 클릭한다 그런데 Remote에 아래와 같은 메시지가 나온다. Remote with selected name already exists는 이미 Remote되어 있다는 것이다. 정확히 말하자면 화면 우측 하단을 확인시 이미 해당 브랜치가 Remote되어 있다는 것을 의미한다. 필자는 테스트를 위해 새로운 Remote branch를 만들었다 Remote 명을 아래와 같이 입력 후..

Working tree : 버전으로 저장되기 전 단계 Staging Area : Working tree에서 파일을 올리는 곳 여기서 Repository로 올린다. Repository : 버전이 저장되는 곳 Working tree에서 파일을 10개 만들었다고 친다 이중 2개를 버전으로 만들길 원할 경우 2개를 Staging Area로 올린다. 이 후 Staging Area에 있는 파일 2개를 버전으로 만들길 원하면 Staging Area있는 파일 2개를 Repository로 올려서 버전을 만들 수 있다. 작업 영역Working tree(add 실행) > 준비 영역 Staging Area(commit 실행) > 저장소 Repositorty(push 실행) > Remote Repository 출처 : namu..

커밋을 잘못했고 푸쉬까지 했을때 복구 git reset --hard HEAD^ git push -u origin +master git pull 파일 이름변경 작업 디렉토리에 있는 파일의 이름을 변경 할 때는 git mv 명령어를 사용 git mv 원래이름 바꿀이름 git 사용도중에 gitignore 설정 중간에 gitignore 파일을 설정하면 git status 해도 여전히 남아있는데, 이럴 때 다음과 같이 실행하면 적용된다. git rm -r --cached . git add . git commit git push 원격저장소 브랜치 가져오기 git clone을 통해 로컬로 가져오면 master 브랜치만 가져오는 듯. 협업을 위해 개발브랜치를 가져와야한다면..!! 클론할 때 브랜치명으로 따오기 : gi..

git은 4개의 object로 관리한다. 객체명은 SHA1로 40자리로 해쉬된다. 따라서 내용이 같으면 객체명이 같다. 객체들은 .git/objects에 위치한다. 내용을 까볼려면 git cat-file –p 객체명 으로 보면된다. blob tree commit tag 구조도 시나리오 test 디렉터리에 git init를 한 뒤에, hello.txt를 만들고 "안녕 나는 공부중이야" 를 저장한다. 그 뒤 git add하고 git commit한다. 마지막으로 git tag를 한다. 이 과정중에서 생성되는 object들을 보자. 1. blob git add할 때 생성된다. 파일 내용이 들어 있다 2. tree git commit할 때 생성된다. 타입과 객체명, 파일명이 기록된다. 3. commit git c..

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..