Git/Git CLI 11

Git CLI merge 브랜치 병합하기

https://kark.tistory.com/44 Merge 병합 각 브랜치들중에서 그대로 고유한 버전으로 남겨둘수 있지만, 위의 그림처럼 3-A1 의 기능을 5 버전에 추가시켜할수도 있다. 이럴때 merge 로 병합을 시킬수 있는데, 병합될때는 충돌이 일어날수 kark.tistory.com 위 포스팅글에서 다룬 병합이 자동으로 이루어지는 경우 와 병합과정 충돌이 일어나는 과정과 충돌이 났을경우 처리방법을 알아보자. 병합이 자동으로 이루어지는 경우 ① 서로 다른파일들이 병합될때 각 브랜치의 상황 더보기 1. 메인브랜치 : 기존 브랜치의 텍스트 파일을 수정했고 그대로 커밋한 상태 2. B 브랜치 : 베이스에서 이어온 텍스트 파일은 그대로 두고 별도의 텍스트 파일을 만든뒤 커밋한 상태 병합을 진행해보자. 더..

Git/Git CLI 2024.03.13

Git CLI Branch 다루기

빈 디렉토리에서 새로운 파일을 만들고 각 작업들을 위처럼 커밋된 상태라고 가정한다. work 3를 기반으로 각 버전이 필요한 상황이 되어 브랜치를 만들어 줘야한다. 이때 분기점이 될 부분 HEAD 의 위치를 잘 고려해 명령을 넣어준다. 브랜치 생성 git branch 브랜치명 각 브랜치를 만들어 줬고, 오른쪽그림과 같은 상태이다. 현재 헤드는 마스터 브랜치 혹은 메인 브랜치를 가리키고 있는 상태이다. 여기서 파일을 수정하고 커밋을 진행하면 다른 분기는 3에서 분기로 나눠진상태 그대로 있고, 메인 브랜치만 커밋된것을 볼수있다. B 버전 브랜치로 이동해보자. 브랜치 이동 명령 git checkout 브랜치명 또는 git switch 브랜치명 더보기 switch 로컬에 있는 브랜치로만 이동가능 checkout..

Git/Git CLI 2024.03.13

Git CLI 되돌리는 reset 과 revert

서로 굉장히 비슷한 뜻이기도 하고, 실질적으로도 비슷한 기능을 한다. 정보와 관련된 업무에서의 로그를 지우는것은 현명하지 않는 방법일 수도 있다. 그러므로 모든 시스템이 Create,Read,Update,Delete 를 제공하지 않고 일부 시스템은 C, R 만 제공하기도 한다. reset의 경우 버전을 지움과 동시에 특정시점으로 돌아가지만 revert는 반면 특정시점으로 되돌아가기도 하며 reset 과는 달리 버전을 보존하기도 한다. 현재의 상황에서 commit 3 ID 7609 로 되돌려야한다면 commit 4 에서 반영된 내용을 다시 되돌리는것이다. 리셋의 경우 commit 4가 삭제되고 commit 3의 시점으로 돌아가게 되지만 반대로 revert를 사용하게되면, 위의 그림처럼 되돌아간 상태에서의 ..

Git/Git CLI 2024.03.12

Git CLI 버전 삭제 reset

단어의 의미에서 조금 혼동이 올수있다. 특정 커밋을 복구, 되돌리겠다 라는 의미가 아닌 여기서 리셋이란, 특정 커밋으로 이동하겠다 라는 의미로 보면된다. 그림에서 보면 최상단, 최근 커밋이 마스터이며 헤드가 가리키고있다. 그럼 가장 아래있는 커밋으로 reset 명령을 주게되면 해당 커밋버전보다 최근 커밋의 내역은 전부 사라지게된다. git reset --hard 커밋ID 특정 시점으로 작업환경이 되돌아왔으며, 해당 시점 이후의 커밋은 로그에 남지 않게되었다. git reset --hard 커밋ID 이 커맨드의 옵션 --hard를 확인할수 있는데, 각 옵션별로 reset 이 다르게 동작한다. 우선 --hard 의 경우 변경사항들을 해당 시점의 내용으로 되돌려버리며 최근에 작업하던 파일이 해당 시점에 없던 ..

Git/Git CLI 2024.03.12

Git CLI 텍스트 에디터, 편집기 변경하기

git commit 으로 명령을 끝내게 된다면 기본 편집에디터로 넘어가게 된다. 이때 평소와 보던 nano 에디터와는 다른 인터페이스로 당황할수가 있다. 에디터를 익숙한 nano 에디터로 바꿔보자. git config --global core.editor "에디터" 에디터를 nano 로 지정해보자. 여기서 옵션으로 --global 을 확인할수 있는데, 이것은 사용중인 컴퓨터의 편집기를 전체적으로 지정하는 옵션이다. 이후 똑같이 커밋을 그대로 진행해보면 nano 에디터로 변경된것을 확인할수 있다. 잘못된 부분이 있다면 답글 남겨주세요

Git/Git CLI 2024.03.12

Git CLI Staging Area 다중 Add

https://kark.tistory.com/35 에서 잠깐 git add 커맨드를 다뤘었다. git add 파일명 이후 파일을 추적하거나, 커밋할 준비를 마칠수있다. 하지만 개발을 하다보면 다뤄야할 파일이 한두개가 아닐것이다. git add . 현재 디렉토리의 모든 파일을 추적 git add B B 라는 디렉토리가 있을경우 B 디렉토리의 모든파일을 추적 git commit -am " 내용 " 모든 파일을 추적함과 동시에 바로 커밋을 할수있다. 이때 추적 대상은 한번이라도 add 된 파일만 자동으로 추적된다. 잘못된 부분이 있다면 답글 남겨주세요

Git/Git CLI 2024.03.12

Git CLI 특정시점으로 되돌리는 checkout

언제 어떤 내용을 커밋했었는지, 또는 구체적으로 해당 커밋이 어떤점이 바뀌었었는지 확인하는 방법을 알아봤었다. 그럼 특정 시점으로 버전을 되돌리는 방법을 알아보자. git log 과 git log --stat 또는 git log -p 커맨드로 로그를 확인할수 있다. 로그중에서 위와같이 헤드가 마스터를 가리키고있는데, 현재 master 인 최신버전을 다루고있음을 알려준다. 로그의 커밋옆에 암호화된 코드를 볼수있는데, 이 코드는 커밋될때 배정되는 커밋ID 로써 커밋을 식별하는데 쓰이는 코드이며 해당 시점으로 되돌릴수 있는 키다. 마스터의 바로 아래시점(두번째 빨간줄)으로 이동해보자. git checkout 커밋ID 브런치가 어쩌구 뭐라 하는데 마지막줄을 보면 헤드는 현재 dbe3c78 msg 2 라는 곳에 ..

Git/Git CLI 2024.03.12

Git CLI 버전간 차이 비교

최근 버전과 현재 작업물의 차이와 버전별 구체적인 변화를 확인하는 방법을 알아보자. 왼쪽이 가장 최근 커밋된 버전의 텍스트파일 , 오른쪽이 현재 수정된 상태이며 아직 워킹트리의 상태이다. 깃에서는 변경된 점이 있다고 알림을 줄것이다. 상태를 확인해보면 hello.txt 파일이 변경되었음을 알려준다. 하지만 원하는것은 최근버전과 현재 수정된 내용의 변경된부분을 구체적으로 확인하고싶다. git diff 3 이 추가되었음을 확인할수 있다. 또는 버전간의 수정된 부분을 확인하고 싶다면 git log -p 위의 git diff 처럼 구체적인 로그를 보여주게된다. 잘못된 부분이 있다면 답글 남겨주세요

Git/Git CLI 2024.03.11

Git CLI - Commit 과 Log

현재 깃에게 관리할 디렉토리 까지만 생성해둔 상태이다. 현재 로컬 디렉토리에서 파일을 하나 만들고 커밋 과정을 알아보자. 디렉토리에 텍스트파일을 하나 생성했고 내용은 '1' 하나만 적어줬다. Git이 인식한 상태를 한번보자. 아직은 커밋한게 없습니다. 아직 추적되고있지 않은 파일의 목록을 보여준다. 그리고 하단에는 아직 추가된 버전이 없고, 추적되고 있지않은 파일이 있다. 트랙에 추가하려면 'git add' 명령어를 사용하라고한다. 즉, 깃 입장에서는 디렉토리를 관리하게 되었는데 이전에는 보지못했던 처음보는 파일이 생겼고, 이를 작업자에게 알려주고있는 상태이다. 추적을 적용할 파일을 등록하려면 최초의 커밋이 필요하다. 현재까지 워킹트리에서 작업된 내용이고 이제 스테이징 에리어에 이 변경사항을 올려보자. ..

Git/Git CLI 2024.03.11

Git CLI 초기화

Git이 설치되어있다는 상황을 가정하에 포스팅 Git 으로 관리할 프로젝트 폴더를 만들어두었다. 현재 디렉토리는 비어있는 상태이고 초기화를 해보자. 명령어 git init . 해당 디렉토리에 .git 이라는 폴더가 생겼다. Git 에게 관리하게 지정시켜주는 디렉토리라는것을 알수있게 해준다. 숨겨진 디렉토리 .git 을 살펴보면 위와같은 디렉토리와 파일들을 확인할수 있다. 다시 e/git 디렉토리내부에서 프로젝트를 꾸려가면 된다. 잘못된 내용이 있다면 답글남겨주세요

Git/Git CLI 2024.03.11