Git

    [Git] 협업 시, git push 오류 해결 {merge conflict}

    [Git] 협업 시, git push 오류 해결 {merge conflict}

    협업시 git push 오류 error: failed to mpush some refs to 'http://github.com/~~~' hint: Updates were rejected because the remote contains work that you do hint: not have locally. This is usaully caused by another repsitory pushing hint: to the same ref. You may want to first integrate the remote changes . . . 협업 시에 리모트 레포지토리에 누군가가 git push 해놓은 상태에서 나의 레포지토리의 수정사항을 git push한다면, 아래와 같이 오류가 난다. 이를 해결하기 위..

    [Git] origin 이란?

    [Git] origin 이란?

    origin git remote add origin 깃헙의 주소 remote 는 리모트 레포지토리에 관한 작업을 할 때 쓰는 명령어다. add 는 새로운 리모트 레포지토리를 등록하겠다는 뜻이다. origin 는 origin이라는 이름으로 깃헙의 주소에 있는 리모트 레포지토리를 등록하겠다는 뜻이다. 관례에 따라 레포지토리를 만드는 '근원' 이라는 뜻의 origin을 주로 사용한다. git push -u origin [브랜치이름] 현재 로컬 레포지토리에 있는 master 브랜치의 내용(=master 브랜치와 관계된 모든 커밋들)을 origin이라는 리모트 레포지토리로 보낸다 라는 뜻이다. 옵션 -u는 --set-upstream이라는 옵션의 약자이다. 로컬 레포지토리에 있는 master 브랜치가 origin에..

    [Git] git branch 란

    [Git] git branch 란

    branch on branch master 마스터 브랜치 위에 있다 레포지토리를 만들고 커밋을 하면 자동으로 생기는 브랜치 작업을 여러가지로 나누어서 한다. 무료 버전, 유료 버전, 실제 배포용 버전, 개발용 버전, 테스트용 등등의 여러 버전들을 나누어서 관리할 수 있다. git branch [브랜치이름] 새로운 브랜치 생성 git checkout [브랜치이름] [브랜치이름]으로 브랜치 이동 git branch 모든 브랜치 조회 git branch -d [브랜치이름] 브랜치 제거 git checkout -b test [브랜치이름] 브랜치를 생성하고 그 브랜치로 이동 git merge [브랜치1] [브랜치2] 브랜치1 와 브랜치2 를 병합 conflict 가 발생한 파일을 연다. 머지의 결과가 되었으면 하..

    [Git] Head 란, git reset {--hard, --soft, --mixed}, git tag

    [Git] Head 란, git reset {--hard, --soft, --mixed}, git tag

    Head 가장 최근에 한 커밋을 가리킴 매번 더 새로운 커밋을 가리킴 Head 가 가리키는 커밋에 따라 working directory 가 구성 git reset head 가 가리키는 커밋을 옮기며, 버전을 옮겨다니는 용도 git reset --hard [커밋 아이디] 복구가 불가능 하기 때문에 잘 사용하진 않는다 Head가 과거의 특정 커밋을 가리키도록 한다. staging area를 과거의 특정 커밋의 내용과 똑같게 만든다. working directory를 과거의 특정 커밋의 내용과 똑같게 만든다. git reset --soft [커밋아이디] Head가 과거의 특정 커밋을 가리키도록 한다. staging area 와 working directory 는 변화 없음 git reset --mixed [커..

    [Git] Git 커밋하기 {Commit 메세지 가이드라인}

    [Git] Git 커밋하기 {Commit 메세지 가이드라인}

    Git 커밋 커밋의 3가지 정보 커밋을 한 사용자의 아이디 커밋한 날짜, 시간 커밋 메세지 Commit 메세지의 가이드라인 커밋 메세지의 제목(title)과 상세 설명(body) 사이에 한줄 비우기 커밋 메세지의 제목의 첫번째 알파벳은 대문자 커밋 메세지의 제목 뒤에 . 붙이지 않기 커밋의 상세내용에는 커밋을 한 이유, 문제, 해결책, 효과 작성 작은 단위의 변화를 기준으로 커밋을 하는 것이 좋다. 하나의 커밋에는 하나의 수정사항, 하나의 이슈를 해결한 내용만 남기는 것이 좋다. 다양하게 수정을 하고 하나의 커밋으로 남기는 것은 좋지 않다. 만약 문제가 발생했을 때, 원인을 파악하기에는 작은 단위의 변화가 있어야 편하다. 에러가 발생하지 않은 상태의 코드를 커밋하는 것이 좋다. 과거의 커밋이라도 과거 버..

    [Git] Git push/pull , clone 와 Commit history 조회하기

    [Git] Git push/pull , clone 와 Commit history 조회하기

    Git push/pull git push 로컬 레포지토리의 내용 -> 깃허브의 리모트 레포지토리에 반영 git pull 깃허브의 리모트 레포지토리 -> 로컬 레포지토리의 내용을 가져옴 Git clone Git clone [프로젝트의 GitHub 주소] 깃허브 프로젝트의 레포지토리를 내 컴퓨터로 그대로 복제 Commit history 이때까지한 커밋의 히스토리 git log 커밋 히스토리 조회 git log --pretty=oneline 커밋 히스토리 한줄로 조회 git show git show [커밋 ID 앞의 4글자] 커밋의 수정내용을 알 수 있음

    [Git] Github 레포지토리, README.md 란

    [Git] Github 레포지토리, README.md 란

    Github 레포지토리(Repository) 원격 레포지토리 or 리모트 레포지토리: github 에서 만든 레포지토리(Repository) 안전성(백업의 기능) 협업 가능 로컬레포지토리 : 내 pc 의 레포지토리 README.md GitHub에서는 README.md 파일을 프로젝트의 메인 화면에 보여주기 때문에 README.md 파일의 내용을 가독성있게 작성하는 것이 중요 프로젝트가 어떤 프로젝트인지 설명 프로그램의 주요 사용법을 설명 프로그램을 실행시키려면 어떤 사전 작업이 필요한지 설명

    [Git] Git의 파일형태 {Untracked/tracked}

    [Git] Git의 파일형태 {Untracked/tracked}

    Git의 파일 형태 Untracked 상태 '추적되지 않고 있는' 이라는 뜻으로 Git 에 의하여 변동사항이 전혀 추적되지 않고 있는 상태 git add 를 해주지 않은 상태 tracked 상태 Git 에 의하여 파일의 변동사항이 추적되고 있는 상태 Staged 상태 파일이 staging area 에 Staged(stage area에 올려진) 상태 새로 생성하거나 수정한 파일을 git add 해준 상태 Unmodified 상태 현재 파일이 가장 최신 commit 된 파일과 비교했을 때, 변화가 없는 상태 commit 을 하고 난 직후, Unmodified 상태 Modified 상태 현재 파일이 최신 commit 파일과 비교했을 때, 조금이라도 변화가 있는 상태 Add the file : Untracked..

    [Git] Git 의 3가지 작업영역 {working tree/staging area/repository}

    [Git] Git 의 3가지 작업영역 {working tree/staging area/repository}

    Git 의 3가지 작업 영역 working directory(tree) : 프로젝트 디렉토리 staging area : git add 한 파일들이 존재하는 영역 , 실제 커밋할 때 staging area 영역만 커밋에 반영 repository : working directory의 변경 이력들이 저장되는 영역 Git의 작업과정과 작업영역 working directory 에서 작업 작업한 파일들을 git add 를 통해 staging area 에 추가 커밋으로 staging area 에 있는 파일들이 스냅샷(snapshot) 처럼 repository에 저장 Staging area가 있는 이유: 파일들을 선별적으로 commit 가능 git add 를 해주지 않은 (변경된)파일이 존재할 때 노란색 부분 : gi..

    [Git] Commit 하기/Commit 명령어 모음

    [Git] Commit 하기/Commit 명령어 모음

    Commit 하기 처음으로 커밋하기 전 사용자의 이름과 이메일 주소를 설정 커밋 메세지 남기기(옵션 -m) 커밋할 파일을 git add로 지정 Git Commit명령어 git init 비어있는 레포지토리 생성 (.git) git config user.name "이름" 이름 설정 git config user.email "이메일" 이메일 설정 git add . 현재 프로젝트 디렉토리 내에서 변경사항이 생긴 모든 파일들을 staging area에 추가 git add [파일] 커밋에 반영될 파일 설정 git commit -m "내용" 커밋메세지 설정 git status git 상태보기 커밋하기 전, 수정된 파일들이 모두 git add 가 되었는지 확인하는 용도 git reset [파일] git add 취소 st..