목록Git (16)
내 잡다한 노트
Git이란?Git은 버전 관리 도구로, 작업 중인 파일들의 변경 이력을 기록하여 필요할 때 원하는 상태로 돌아갈 수 있도록 돕는다.명령어 기반으로 동작하지만, GitHub Desktop이나 SourceTree 같은 UI 도구도 있다. 다만, 명령어를 잘 익혀야 Git의 다양한 기능을 효과적으로 사용할 수 있다. Git 최초 설정Git은 협업을 위해 커밋한 사람이 누구인지 기록하는 것이 중요하다. 이를 위해 사용자 이름과 이메일을 설정한다.글로벌 설정: 모든 저장소에 적용됨. git config --global user.name "Your Name" git config --global user.email "you@example.com"저장소별 설정: 특정 저장소에만 적용됨. git config user...
팀프로젝트를 진행 중인데 PR을 모르시는 분들이 있어서 알려줘야 할 일이 생길 수도 있을 것 같아... 배웠지만 복습할 겸 포스팅을 하게됐다. 1. Fork 원본 레포지토리를 개인 계정으로 fork 해야한다. 이렇게 하면 원본 레포지토리의 복사본이 개인 계정에 생성된다. 포크 과정이 꼭 필요한 단계는 아니긴하다. clone만 해서 pr을 날리는 경우가 될 수 있는데 그 경우에는 원본 레포지토리에 쓰기 권한을 가지고 있을 경우에는 가능하다. 쓰기 권한을 가지려면 권한을 부여받아야하는데 Collaborators에 추가가 되어야 한다. 2. Clone 포크한 레포지토리를 로컬로 클론을 해서 가져온다. 이렇게 되면 레포지토리의 모든 파일이 로컬에 복사된다. git clone [내 레포지토리 주소] 3. remo..
github 홈페이지에서 레포지터리를 만들고 git bash로 git clone을 해서 test용으로 txt 파일을 만들고 add를 했는데 제목과 같은 오류가 떴다. 나같은경우는 간단하게 고칠 수 있었다. .git 이라는 숨김폴더가 생성된 위치에서 git add . 를 했어야했는데 그 상위폴더의 위치에서 git add . 를 해서 생긴 에러였다. 참고하시길 바란다.
여러 번 보고 숙지를 꼭 해야 할 것 같다. 이걸 잘 알아둬야 프로젝트 버전관리와 협업을 쉽게 할 수 있다. Commit Message 구조 type : title body (본문, 생략 가능) Resolves : #issueNo, ... (해결한 이슈, 생략 가능) See also : #issueNo, ... (참고 이슈, 생략 가능) 기본 규칙 - 제목과 본문을 빈 행으로 구분 - 첫 글자는 대문자로 작성 - 제목 끝에 마침표X - 제목은 명령문으로 사용, 과거형X - 어떻게 보다는 무엇과 왜 Type type keyword 사용 시점 feat 새로운 기능 추가 fix 버그 수정 docs 문서 수정 style 코드 스타일 변경 design 사용자 ui 디자인 변경 test 테스트 코드, 리팩토링 테스..
revert 기존의 commit들을 삭제하지 않고 새로운 commit을 생성하여 프로젝트를 과거의 시점으로 되돌린다. reset의 상위버전 느낌. commit은 삭제하지 않는게 좋기 때문에 reset은 같이 공유하는 작업들에선 사용하지 않는 게 좋다. git revert HEAD를 입력하고 commit 메세지를 작성한다. 여러 commit들을 revert 하고 싶다면, git revert HEAD~2..HEAD 같은 형식으로 작성하자. HEAD~2는 현재 브랜치의 두 번째로 최근 커밋을 의미한다. 따라서 두 번째로 최근 커밋부터 현재까지의 모든 변경 사항을 되돌린다는 의미이다. cherry-pick 다른 브랜치의 특정 commit만을 가져올 때 사용 git cherry pick 가져올 커밋은 가져오지만 ..
특정 commit으로 롤백하는 방법 1. reset commit 이력을 남기지 않고 되돌린다. 2. revert commit 이력을 남기고 되돌린다. # reset 이전 commit으로 되돌아 갈 때 사용 옵션은 3가지가 있다. --soft --mixed (기본) --hard HEAD~ 는 바로 이전의 commit을 의미하고, HEAD 포인터 위치가 변경돼 마지막 commit이 사라졌다 하지만 파일들의 변화는 없다. 즉, --soft 옵션은 파일을 add하고 난 후(commit 직전의 상황)로 되돌려준다. git reset HEAD~ 를 하면 --mixed 옵션을 하게 된 것이다. HEAD의 포인터 위치가 변경된다. 파일을 add하기 전으로 되돌려준다. 작업한 내용들은 있지만, unstaged 상태로 되..
다른 브랜치에서 했던 작업과 합치는 명령어 # merge를 하는 방법 1. Fast-Forward 2. 3-way Fast-Forward 빨리 감기라는 뜻. 분기가 발생한 이후로 다른 한 브랜치에 작업이 없는 경우 3 - way 분기 이후에 두 브랜치 모두 변경이 발생한 경우에 merge 하는 방법 변경의 기준이 3개이기 때문에 3-way라고 불린다. main 브랜치 위에서 다른 브랜치를 merge하면 된다. 어쩌면 하다가 conflict 라는 문제가 발생할 수 있다. 이것은 같은 위치를 수정한 경우에 merge를 하면 충돌이 발생하게 된다. 이와 같은 경우, 개발자가 충돌이 발생한 경우를 직접 수정하여 해결해야한다. # merge의 종류 merge squash and merge rebase and me..
1-1. GIT 명령어 분류명령어내용 설명 $ git init .git 하위 디렉토리 생성 (폴더를 만든 후, 그 안에서 명령 실행 => 새로운 git저장소 생성) $ git clone 기존 소스 코드 다운로드/복제 $ git clone /로컬/저장소/경로 로컬 저장소 복제 $ git clone 사용자명@호스트:/원격/저장소/경로 원격 서버 저장소 복제 $ git add $ git add * 커밋에 단일 파일의 변경 사항을 포함 (인덱스에 추가된 상태) $ git add -A 커밋에 파일의 변경 사항을 한번에 모두 포함 $ git commit -m "커밋 메시지" 커밋 생성 (실제 변경사항 확정) $ git status 파일 상태 확인 $ git branch 브랜치 목록 $ git branch 새 브랜치..