코드 저장소

공부에는 끝이 없다!

Git 11

Git - Git의 여러가지 기능

이전 시간에는 기초적인 Git의 사용법에 대해서 모두 배워 보았다. 이번에는 Git에서 사용되는 여러 기능들을 살펴보자. 1. Amend Amend는 Commit에서 누락된 변경 사항이 있을때, 방금 만들어진 커밋에 추가하는 명령이다. 예를 들어, 다음과 같이 변경사항이 발생했다고 생각해보자. ReamMe File에 Amend Test용이라는 코드를 입력했다고 가정하자 그리고 Index.html에 p태그를 추가하여 Amend Test용이라는 글귀를 추가하였다. 그리고 Amend Test라는 Commit을 만들었다. 그런데 알고보니 우리가 추가해야할 Amend Test에서 App.js에 누락된 코드가 있었다고 가정해보자. 물론, Commit을 새로 추가하여 Commit 메시지를 Amend Test 추가와 ..

Git 2024.01.04

Git - Pull Request 사용해보기

이전 강의를 통하여 Fork에 대해서 알아보고 Fork를 직접 사용해 보았다. Fork를 사용하는 이유는 앞서 설명했듯 오픈소스에 기여하고 싶거나 큰 틀에서 저장소 자체를 분기할 필요가 있을때, 원본을 보존하면서 자유롭게 코드를 수정하기 위함이다. 그런데 조금 더 생각해보면 오픈소스에 기여한려면 내가 코드를 다 구현한 후에 다시 원본 저장소에 Merge를 해야한다. 우리는 원본 저장소에 코드를 올릴 권한이 없는데 어떻게 해야할까? Pull Request = 원본 저장소에 합쳐기 Git에서는 이런 상황을 위하여 Pull Request라는 기능을 제공한다. 쉽게 설명하면 내가 이런 기능을 만들었고 이런 수정사항이 있으니 이것을 원본에 Merge 시켜줘~ 라고 요청을 보내는 것이다. 엄밀히 말하면 Commit..

Git 2024.01.03

Git - Fork : 저장소 복제하기

Git을 사용하다 보면 다른 사람의 오픈소스를 사용하게 될 일이 많다. 예를 들어, 우리가 대시보드를 만드는 프로젝트를 진행하려 하는데 운 좋게 우리가 쓰려는 기능이 잘 만들어져 있는 오픈소스를 발견했다고 하자. 여기에는 대화형 기능이 빠져있어서 우리는 대화형 기능을 해당 오픈소스에 추가하여 해당 오픈소스에 기여를 하고자 한다. 그런데 Push 권한은 Collaborators로 등록이 되어야 받을 수 있기 때문에 소스 수정이 불가능하다. 그렇다면 우리는 오픈소스에 기여하기 위하여 Collaborators로 등록을 해달라고 요청을 해야할까? Fork는 이런 상황에서 사용된다. Fork 명령어를 사용하면 해당 저장소를 통째로 나의 계정에 복사해 와서 자유롭게 소스 수정을 하고 Commit,Push를 하는 것..

Git 2024.01.02

Git - 충돌과 충돌 해결 실습해보기

저번 시간에는 Merge와 충돌이 무엇인지, 그리고 어떤 상황에서 충돌이 발생하는지 배워 보았다. 그러면 이번에는 실제로 Merge 작업을 수행하면서 충돌을 발생시켜 보고, 해당 충돌을 어떤 식으로 해결하는지 소스트리를 이용하여 실습하여 보자. 소스트리를 이용하여 충돌 발생 시키기 우선 충돌을 유발하기 위하여 Branch를 나누어 주겠다. 나는 GitTest에서 ConflictTest라는 Branch 를 만들어 주었다. 그리고 해당 Branch에서 ReadMe.md 파일에 충돌 유발용 1이라는 텍스트를 추가하여 주었다. 이후 Commit과 Push를 진행하여 원격저장소로 수정사항을 올린다. 참고로 화면 하단에 ~에 바뀐 내용 즉시 푸시를 누르면 굳이 Push를 누르지 않아도 Commit과 동시에 Push..

Git 2023.12.30

Git - Merge와 Conflict

앞서서 Branch를 나누어 서로 줄기에서 다른 사용자가 개발을 동시에 진행하는 것을 수행해 보았다. 이전 글에서도 말했지만 Branch를 사용하는 이유는 보통 새로운 기능 개발을 위해 따로 떼어내기 위함이다. 그런데 생각해보면 기능 개발이 끝나면 결국 원래의 코드와 새로 만든 코드를 합쳐 하나의 코드로 만들어주어야 할 것이다. 이것을 가능하게 해주는 것이 Merge라는 명령이다. Merge란? Merge는 앞서 설명했든 나누어진 Branch를 하나로 합쳐주는 명령이다. 다음 이미지를 보면서 Merge를 진행하는 과정을 살펴보자. 우리는 어떤 기능을 개발하기 위해서 C1의 Commit 시점부터 m1 Branch를 만들어 기능 개발을 수행했다. 이 과정에서 C3~ C5까지의 Commit이 m1 Branch..

Git 2023.12.29

GIT - Branch 나누기

이전 GIT 정리글들을 보면 계속 Branch라는 말이 나올 것이다. 이번 시간에는 이 Branch에 대해서 정리해 보고자 한다. Branch란? 이전 정리에서 Commit은 순차적으로 쌓아야 한다고 했을 것이다. 이는 충돌을 방지하기 위함으로 서로 다른 유저가 동시에 같은 파일을 수정한 후 Commit을 해버리면 무엇이 원본이고 어떤것이 변경 본인지 Git이 알수가 없게 되기 때문이다. 예를 들어서 로컬과 C0, C1라는 Commit이 존재하고 원격 저장소에 Push해서 올렸다고 생각해보자. A라는 유저가 코드를 변경하여 C2라는 Commit을 만들었다. 그런데 A가 작업을 하는 동안 B라는 유저가 C1의 Commit 상태에서 다른 수정 작업을 진행하여 Commit 하여 C3라는 Commit이 만들어 ..

Git 2023.12.29

GIT - 소스트리 이용하기

이전 시간에는 소스트리를 설치하여 로컬 저장소를 연결하고, 원격 저장소에 있는 코드를 로컬로 받는 작업을 진행해 보았다. 이번에는 소스트리를 이용하여 실제로 Commit, Pull, Push등을 진행해 보겠다. 우선 로컬 저장소에 있는 코드를 조금 수정하여 Commit을 만들어보자. 소스트리를 이용하여 Commit과 Push하기 로컬 저장소에 있는 코드에 변경사항이 생기면 다음과 같이 소스트리가 코드 변경을 감지하여 커밋에 알림이 뜨게 된다. (현재 app.js 파일에 코드를 일부 수정한 상태이다) 앞서 설명했듯이 Commit 작업을 진행하기 위해선 Add를 통하여 파일을 추가해 주어야 한다. 화면 하단을 보면 스테이지에 올라가지 않은 파일이라는 목록이 보일것이다. 하단 목록에는 우리가 파일을 변경하였지..

Git 2023.12.28

Git - GUI 이용하기

GUI 란? 소스트리로 대표되는 GUI는 버튼 클릭으로 Git 명령을 실행할 수 있는 도구이다. CLI 방식은 일일이 커맨드를 입력해야 하기에 커맨드를 모르면 아예 사용조차 불가능 하지만, 소스트리를 이용하면 명령어가 가시적인 버튼으로 보이기 때문에 굉장히 편리한 장점이 있다. 실제로 필자도 개발 학원에 다닐때 최종 포트폴리오 관리를 소스트리로 했었는데, Git에 대해서 잘 모르는 상태였음에도 약간의 사용법만 배우면 손쉽게 사용이 가능했다. 그럼 이렇게 간편한 소스트리를 직접 설치해보고 소스트리에 로컬 저장소를 추가해보자. 소스트리 설치하기 우선, 소스트리를 다운로드 받아야한다. https://www.sourcetreeapp.com/ Sourcetree | Free Git GUI for Mac and W..

Git 2023.12.27

GIT 사용하기 - CLI를 이용한 Push

이전 정리에서 init명령어를 통해 Git을 사용할 위치를 지정하고, Add 명령어를 통해 수정한 파일을 등록하고, Commit을 통하여 분기점을 만드는 작업을 수행해 보았다. https://varcharc2k.tistory.com/51 GIT 사용하기 - CLI를 이용한 Commit Git으로 버전 관리 시작하기 - Commit과 Init Git 이용을 위해선 먼저 원하는 폴더를 지정해 주어야 한다. 내가 로컬의 어떤 경로에서 버전 관리를 할지 Git이 알게해준다고 생각하면 좋을 것이다. 이 varcharc2k.tistory.com 이번에는 이렇게 생성된 Commit을 GitHub로 올리고 다른 사람의 프로젝트는 받는 작업을 수행해 볼 것이다. 로컬 저장소와 원격 저장소 앞서 우리는 init 명령어를 ..

Git 2023.12.26

GIT 사용하기 - CLI를 이용한 Commit

Git으로 버전 관리 시작하기 - Commit과 Init Git 이용을 위해선 먼저 원하는 폴더를 지정해 주어야 한다. 내가 로컬의 어떤 경로에서 버전 관리를 할지 Git이 알게해준다고 생각하면 좋을 것이다. 이 기능을 init 명령으로 설정하게 되는데, 해당 폴더에서 Git 초기화를 해주는 것이다. Git 초기화를 하게 되면 .git이라는 숨겨진 폴더가 만들어지는데 이것이 로컬 저장소이다. 이 로컬 저장소에는 내가 만든 버전 정보, 원격 저장소 주소등이 저장되며 원격 저장소에서 로컬로 코드를 받아오게 되면 로컬 저장소가 자동으로 생성된다. 단, 주의 할 것은 하나의 폴더에 하나의 로컬 저장소만 유지해야한다. 예를 들어 WorkSpace라는 폴더 경로에 A라는 프로젝트를 시작했다고 가정해보자. 그러면 W..

Git 2023.12.25