SCM/Git 19

[Git & GitHub 5] git diff

0. git diff란?git diff는 깃에서의 변경 사항들을 보여주는 명령어입니다.(워킹 디렉토리 간, 스테이지 영역과 워킹 디렉토리, 브랜치 간 등)git repository에 영향을 주지 않는 명령어로, 순수하게 정보를 주는 명령어입니다. 단, 새로 생성된 파일은 git에 등록하기 전까지 추적하지 않습니다,(새 파일은 git add, 또는 git commit으로 git에 등록해야 합니다)1. git diif스테이징되지 않은 변경사항 보기아무런 옵션 없이 git diff 명령어를 실행하면,(스테이지 영역에 등록되지 않은) 워킹 디렉토리의 변경사항을 모두 나열합니다.각 줄은 비교할 파일, 파일 식별자, 변경 파일, 변경 위치(line), 변경 내용을 나타냅니다.git add 하지 않은 내용을 표시합니..

SCM/Git 2024.05.09

[Git & GitHub 4] git merge, merge commits, resolving merge conflicts

git merge, resolving merge conflictsgit mergegit merge 명령어를 통해 독립적인 브랜치에서 작업한 것을 통합(병합)할 수 있습니다.브랜치를 다루는 전략은 다양합니다.Fast-forwardFast-foward는 일반적인 전략으로,main(master) 브랜치는 손대지 않고,다른 기능 브랜치를 만들어 main 브랜치에 merge하는 것입니다.여러 번의 commit내역이 있는 branch를 HEAD에 병합합니다.(특정 commit 간 병합이 아닙니다)따라서 HEAD를 기준 branch(main, master)로 이동 후, 병합합니다.git switch maingit merge featuremain branch의 레퍼런스 포인터가 feature branch의 commit..

SCM/Git 2024.05.05

[Git & GitHub 3] Branch, HEAD, git branch(생성, 삭제, 이름 변경), 브랜치 이동(git checkout, git switch)

Branch, HEAD, git branch(생성, 삭제, 이름 변경), 브랜치 이동(git checkout, git switch)git에서 commit을 하면 commit은 숫자와 문자가 연속적으로 조합된 특이한 해시를 갖습니다.현재 커밋은 이전 커밋(부모 커밋)을 참조합니다.기본적인 커밋은 직선 형태를 띕니다.각각의 작업은 서로 영향을 미치지 않고 독립적으로 이루어져야 합니다. 그런데 다른 사람들이 동시에 작업을 한다면,위와 같이 순차적인 형태의 커밋 구조는,병행 작업한 코드를 병합하거나 최신화하는 등 형상 관리에 어려움이 있을 것입니다. 이 때 필요한 것이 Branch(브랜치)입니다.BranchBranch는 깃의 가장 특정적인 기능이며 일종의 타임라인입니다.사용자가 원할 때마다 별도의 콘텍스트를 생..

SCM/Git 2024.05.04

[Git & GitHub 3] Atomic Commits, Commit Message

1. Atomic Commits; 커밋을 원자적으로 유지하기하나의 주제에 속한 것만 커밋하는 것을 권장합니다.코드리뷰, undo, rollback이 용이해지기 때문입니다.따라서 커밋을 단일 작업에 집중할 수 있도록 분류해야 합니다. (파일 하나를 커밋하라는 것이 아닙니다, 기능, 변화, 수정 등 기본 단위 별로 커밋하라는 것을 의미합니다)예컨대 사용자 계정 기능은 로그인 기능, 로그아웃 기능 등으로 구분할 수 있습니다.2. Commit Message메시지 작성을 위한 에디터git commit 시 긴 내용을 포함한다면 git commit -m 사용이 어려울 수 있습니다.이 때, 에디터를 사용합니다.특정 에디터를 사용하도록 설정하려면 git config 명령어를 사용합니다.공식 문서에 특정 에디터 별 명령어..

SCM/Git 2024.05.04

[Git & GitHub 2] git init, git status, git add, git commit [-m] [--amend], git log [--pretty], .gitignore

git init, git status, git add, git commit [-m] [--amend], git log [--pretty], .gitignore0. Git Repository; Git Repo; 깃 저장소, 깃 작업공간Repository(Repo)란 파일(또는 프로젝트)을 추적하고 관리하는 작업 공간으로,프로젝트의 변경사항을 담고 있습니다.각 Repository는 독립된 프로젝트입니다.Git을 사용하려면 각각의 프로젝트 폴더에 가서 Git Repository를 생성하도록 해야합니다. Git 명령어에 대한 것은 Git 홈페이지에서 찾아볼 수 있습니다.https://git-scm.com/docs Git - ReferenceReferencegit-scm.com1. git init, git sta..

SCM/Git 2024.05.03

[Git & GitHub 1] Git 설정(이름, 이메일), GitKraken 설치

Git 설정Git을 설치했다면,작업을 수행하는 대상을 식별할 수 있도록 이름과 이메일을 설정합니다. git config --global user.name "이름"global 옵션을 사용하여 user.name 인스턴스 사용시 "이름"을 가져오도록 합니다.이메일도 동일하게 설정합니다.git config --global user.email 이메일주소저는 제 깃허브 이메일 계정으로 설정했습니다. 이제 Git 작업을 하면, 설정된 이름, 이메일이 드러나게 됩니다.GitKraken(깃 크라켄) 설치GitKraken은 Git GUI입니다.gitkraken을 검색하고, OS에 적합한 클라이언트를 다운로드합니다.이제 계정을 등록하고 사용합니다.

SCM/Git 2024.05.03

[Git & GitHub 0] Git이란?, Git vs. GitHub

1. Git 이란?Git은 인기 있는 무료 오픈 소스 버전(형상) 관리 시스템(VCS; Version Control System) 입니다.(VCS에는 Git 이외에도 CVS, SVN 등이 있습니다)버전 관리 시스템이란? VCS; Cersion Control SystemVCS란 파일의 변화를 시간에 따라 추적하고 관리하는 데 도움을 주는 소프트웨어입니다. 파일의 변화를 비교하고 특정 버전으로 되돌리거나,변화를 공유할 수 있도록 합니다.따라서 여러 명의 개발자가 하나의 프로젝트를 병행 작업(+ 이슈 해결)할 때 큰 도움이 됩니다. 개발뿐만이 아니라 형상관리가 필요한 분야라면 Git이 사용되기도 합니다.(논문, 교과서, 에세이 등) GUI와 CMD를 통해 사용할 수 있습니다.CMD(터미널)가 빠르고, GUI가..

SCM/Git 2024.05.03

[Git] Git를 사용한 버전 제어 -1, 개요

버전 제어란? 버전 제어 시스템(VCS)은 파일 컬렉션의 변경내용을 추적하는 프로그램(프로그램 세트)입니다. VCS는 SCM(소프트웨어 구성관리)시스템이라고 부르기도 합니다. 버전 제어는 구성관리와 관련한 방법 중 하나입니다. VCS의 목표는, 개별 파일 또는 전체 프로젝트의 이전 버전을 쉽게 회수하는 것입니다. 또한, 프로젝트의 작업을 진행 중인 팀원들이 서로의 작업물에 영향을 주지 않고, 동시에 한 프로젝트, 동일한 파일에서도 작업을 할 수 있도록 하는 것입니다. VCS를 사용하면, 프로젝트의 모든 변경 내용, 변경된 시간 및 변경한 사용자를 확인합니다. 각 변경 내용과 함께 변경 이유를 설명하는 메시지를 포함합니다. 전체 프로젝트 또는 개별 파일의 이전 버전을 검색합니다. 실험적으로 변경할 수 있는..

SCM/Git 2023.12.25
728x90
반응형