Git&Github 49

19. [Git] 외부 도구를 이용해서 병합하는 방법

이전 게시글에서 설명한 3 way merge의 예시를 그대로 가져오겠습니다. 3-way-merge라는 폴더를 생성하고 폴더 안으로 이동합니다. git 저장소를 초기화합니다. master 브랜치에서 work.txt 파일을 생성합니다. work.txt 파일을 add, commit 합니다. here 브랜치를 생성하고 work.txt 내용을 수정합니다. work.txt 내용을 수정합니다. work.txt파일은 add, commit 합니다. master 브랜치로 이동하고 나서 there 브랜치를 생성하고 there 브랜치로 이동합니다. work.txt 파일을 수정합니다. work.txt 파일을 add, commit 합니다. here 브랜치에 there 브랜치를 병합해보겠습니다. here 브랜치로 이동합니다. 아래..

Git&Github 2021.08.26

18. [Git] CONFLICT 3 WAY MERGE

git은 충돌은 해결할 때 3 WAY MERGE라는 방법을 사용합니다. 3 WAY MERGE란 무엇인가에 대해서 알아보겠습니다. 2 WAY MERGE here와 there라는 브랜치를 생성합니다. 브랜치를 생성하면 조상이 되는 브랜치와 같은 내용 적용됩니다. 그럼, 여기서 here 브랜치와 there 브랜치를 수정하고 병합할 때 어떻게 되는가? 에 대해서 알아보겠습니다. 4가지 경우의 수 중에 3가지가 충돌이 발생하게 됩니다. 이렇게 2가지의 브랜치를 비교해서 병합하는 것을 2 WAY MERGE라고 합니다. 3 WAY MERGE 그리고 3개의 브랜치를 비교해서 병합하는 것을 3 WAY MERGE라고 합니다. here의 there의 조상을 base라고 명칭 하겠습니다. heae, base, there을 비..

Git&Github 2021.08.26

17. [Git] 이미 commit한 파일 추적 중지/ 시작하기

파일 추적을 중지하고 싶은 경우 1.. gitignore 파일에 제외를 깜빡하고 push를 해버린 경우 2. DB접속정보나 계정 정보를 가지고 있는 파일을 템플릿만 올리고 그 뒤로 버전 관리에서 제외하고 싶은 경우 index.php라는 파일이 있다고 가정하겠습니다. index.php 파일은 commit한 뒤. gitignore 파일에 index.php를 명시하였지만 소용이 없습니다. $ 현재 브랜치 master $ 브랜치가 'origin/master'에 맞게 업데이트된 상태입니다. $ 커밋할 변경 사항: (use "git restore --staged ..." to unstage) 삭제함: index.php 추적 중지 추적하지 않을 파일을 아래와 같이 명시해주면 이미 origin에 올라간 파일이라도 더 ..

Git&Github 2021.08.25

16. [Git] repository 초기화 하는 방법

git repository를 삭제하지 않고 기존의 commit이력을 삭제할 수 있는 초기화 방법을 찾아보다가 알게 되어 메모해둡니다. 순서대로 따라하시면 됩니다. 초기화하기 위한 폴더를 하나 생성합니다. $ mkdir reset 현재위치에서 reset 폴더로 이동합니다. $ cd reset reset 폴더에서 git을 초기화합니다. $ git init 초기화할 원격저장소를 등록합니다. $ git remote add origin 업로드하기 위한 파일을 하나 생성합니다. README.md 파일을 생성하겠습니다. $ code README.md README.md 파일 내용을 프로젝트 이름을 적어줬습니다. # project이름 생성한 README.md 파일을 add, commit 합니다. $ git add REA..

Git&Github 2021.08.25

15. [Git] merge(병합) 사용법

merge란 다른 파일일 경우 branch(브랜치) 학습을 위해 새로운 폴더를 하나 생성합니다. $ mkdir manual-merge manual-merge 폴더로 이동해서 git을 초기화합니다. $ cd manual-merge $ git init work.txt 파일을 생성하고 add, commit까지 진행합니다. commit 이력을 생성했습니다. master.txt를 생성하고 add, commit까지 진행합니다. commit 메시지 수정하는 법 $ git commit --amend 메시지가 수정되었습니다. o2라는 브랜치를 생성하고 o2 브랜치로 체크아웃합니다. o2.txt라는 파일을 생성합니다. o2.txt 파일을 add, commit 합니다. log 입력하면 master 브랜치는 master wo..

Git&Github 2021.08.25

14. [Git] branch(브랜치) 사용법

Branch $ git log --all --graph --oneline 옵션을 지정하지 않고 branch 명령어를 실행하면 브랜치 목록 전체를 확인할 수 있습니다. 앞부분에 * 이 붙어있는 것이 현재 선택된 브랜치입니다. $ git branch git init으로 git을 초기화면 기본으로 master 브랜치가 생성되면 master 브랜치가 선택됩니다. branch 생성 apple 브랜치를 생성해보겠습니다. $ git branch apple apple 브랜치가 생성된 것을 확인할 수 있습니다. 위에 log를 확인하는 명령어를 실행하면 이전에는 master만 있었는데 apple이 추가된 것을 확인할 수 있습니다. HEAD->master, HEAD가 현재 master를 가리키고 있는데 이것은 우리가 지금 ..

Git&Github 2021.08.25

13. [Git] branch 실습환경 설정

menual이라는 폴더를 하나 생성합니다. $ mkdir menual menual 폴더로 이동하여 git 사용 설정을 합니다. $ git init work.txt라는 텍스트 파일을 만들고 3번의 commit을 합니다. content2, content3을 추가하여 나머지 2번의 commit도 작성합니다. 정상적으로 commit 되었는지 log를 확인해 봅니다. $ git log -p 원격 저장소(리포지터리) 설정을 해주고 파일을 push 합니다. push 합니다. 원격 저장소(리포지터리)에 정상적으로 업로드를 완료했습니다. 이것으로 실습환경 설정을 마치겠습니다.

Git&Github 2021.08.25

12. [Git] reset과 revert

reset : 시간을 아예 과거의 특정 사건(commit)으로 되돌린다. revert : 현재에 있으면서 과거의 특정 사건(commit)들만 없던 일로 만듭니다. 둘의 공통점은 '과거로 되돌린다.'는 것이지만, 가장 큰 차이점은 '과거로 되돌리겠다는 내용도 기록되는가?(== commit 이력에 남는가?)'입니다. reset은 아예 현재가 없었던 것처럼 원하는 과거로 돌아갈 수 있습니다. reset은 이력을 남기지 않습니다. 따라서 현재까지의 commit 이력을 남기지 않고 원하는 시점으로 완전히 되돌아가고 싶을 때 사용합니다. revert는 과거로 돌아가겠다는 이력을 남겨두고 원하는 시점으로 돌아갑니다. 즉, 이전의 commit 내역을 남겨두고 새로운 commit을 생성하면서 과거로 돌아가게 됩니다. R..

Git&Github 2021.08.24

11. [Git] 사소하지만 알면 편한 것

1. 파일을 추가할 때 매번 파일을 이름을 작성해 주지 않고 경로를 지정해주는 것으로 다수의 파일을 한꺼번에 add(staging area) 시킬 수 있습니다. memo.txt 파일을 수정합니다. 이 상태에서 아래 명령어를 입력합니다. $ git add . 파일이 잘 추가된 것을 확인할 수 있습니다. . 은 현재 디렉터리를 나타냅니다.. 말고도 경로를 적어하면 해당 폴더에 속한 파일들을 한꺼번에 추가하는 것이 가능합니다. ex ) git add /bin과 같이 사용할 수 있습니다. 2. add와 commit을 동시에 하기 modified 상태에 있는 memo.txt 파일이 있습니다. 파일이 modified가 되면 git add memo.txt, git commit -m "memo.txt 수정"을 하는데 ..

Git&Github 2021.08.24

10. [Git] commit 시점으로 이동하기

$ git log master가 최신 버전이라고 생각하면 됩니다. memo2.txt라는 파일을 하나 추가합니다. 파일은 하나 생성하고 add, commit, push를 통해 원격 저장소(리포지터리)에 업로드합니다. 현재 파일리스트를 보면 index.php, memo.txt, memo2.txt 3가지 파일이 존재합니다. $ ls -al memo2를 추가하기전 commit id를 이용해서 버전을 되돌려 보겠습니다. git checkout 그리고 commit id를 적어주고 엔터를 누릅니다. $ git checkout commit_id 파일이 어떻게 되어 있는지 확인해보겠습니다. 버전이 변경되면서 memo2가 사라진 것을 확인할 수 있습니다. git log를 통해 확인하면 HEAD가 현재 commit을 가리키..

Git&Github 2021.08.24