본문 바로가기

학습 노트

git을 이용한 파일 버전 관리

커밋에 사용할 이름과 이메일부터 설정하기

git은 파일의 여러 가지 버전을 관리하는 데 사용하는 프로그램으로, 로컬 컴퓨터에 설치하고 명령줄을 통해 사용한다. git은 코드 파일뿐만 아니라 일반 문서를 관리할 때도 사용할 수 있다. git을 설치한 다음 제일 먼저 할 일은 git에 사용할 사용자 이름과 이메일 주소를 설정하는 것이다. 이 정보는 모든 커밋에 적용된다. 이름과 주소를 설정하지 않고 git 명령을 실행하면 오류가 발생한다.

 

모든 커밋에 기본적으로 적용될 사용자 이름과 이메일 주소를 등록/변경하려면 명령줄에서 다음 명령을 입력한다. 이때 위치는 홈 디렉토리(~)여야 한다.

git config --global user.name "이름"
git config --global user.email "이메일 주소"

 

특정 프로젝트에 사용할 사용자 이름과 이메일 주소를 등록/변경하려면 해당 프로젝트 디렉토리에서 다음 명령을 입력한다. (--global 삭제)

git config user.name "이름"
git config user.email "이메일 주소"

 

명령줄에 다음 명령을 입력하면 현재 설정된 이름과 이메일 주소를 확인할 수 있다.

git config user.name
git config user.email

‘커밋’, ‘커밋하다’의 의미

일반적으로 영어에서 commit은 동사로 사용되고 명사형은 commitment나 commission을 써야 한다. 하지만 컴퓨터 프로그래밍에서 commit은 데이터베이스 트랜잭션이나 소스 코드에 발생한 변경 사항을 소스 리포지토리에 적용하는 행위를 뜻하는 단어로, 동사뿐만 아니라 명사로도 사용될 수 있다. 동사일 때는 변경 사항을 적용한다는 의미로, 명사일 때는 변경 사항을 적용하는 작업이라는 의미로 사용된다. (예: 하루에 커밋 하나를 한다. 코드를 커밋한다.) 영어 단어를 음차하여 서술어로 사용하는 것이 그렇게 권장되는 일은 아니지만 많은 기술 용어가 그러하듯 여러 사람이 공유하는 의미를 효과적으로 전달하기 위해서는 '커밋'이라는 음차 용어를 사용하는 것이 불가피해 보인다.

git을 이용한 버전 관리 - 원격 관리와 로컬 관리

git을 이용해 파일의 버전을 관리하는 방법은 두 가지가 있다. 하나는 로컬 시스템에 리포지토리를 만들어 커밋 기록을 저장하는 로컬 관리이고 다른 하나는 Github로 대표되는 원격 시스템에 리포지토리를 만들어 커밋 기록을 저장하는 원격 관리이다. 두 방법 중 하나만 사용하기보다는 로컬 리포지토리와 원격 리포지토리를 동시에 유지하면서 동기화하는 방식이 많이 사용된다. 리포지토리는 저장소를 의미한다.

git과 명령줄을 이용한 로컬 버전 관리

명령줄에서 프로젝트 디렉토리로 들어간 다음 git init을 입력하면 git이 초기화되고 .git 리포지토리가 숨겨진 파일로 생성된다. git을 초기화한 디렉토리가 바로 작업 디렉토리(working directory)이다. 작업 디렉토리에서 git add 파일명.확장자를 입력하면 해당 파일이 스테이징 영역으로 전달되고, git commit -m “커밋 메시지”를 입력하면 커밋 메시지와 함께 스테이징 영역에 있는 파일이 로컬 리포지토리로 커밋된다. 스테이징 영역은 파일을 리포지토리에 영구적으로 커밋하기 전에 한 번 더 확인하고 조정하는 중간 지대라 할 수 있다. 로컬 버전 관리의 흐름을 요약하면 다음과 같다.

[작업 디렉토리] git add → [스테이징 영역] git commit → [로컬 리포지토리]

커밋 메시지는 간단 명료하게

커밋 메시지는 마지막 저장 지점과 비교하여 무엇이 변경되었는지 명시하는 역할을 한다. 커밋 메시지는 명령형으로 쓰는 것이 관습이다(예: Change A to B). 이미 변경한 내용을 현재형 명령으로 표현하는 것이 영어 사용자에게도 어색한 지점이 있고 반대 의견이 없는 것도 아니지만 메시지를 보다 간단하고 분명하게 전달하기 위해서는 명령형을 사용하는 게 좋다. 특별한 이유가 없다면 많은 사람들이 공유하고 합의한 방식을 사용하는 것이 효율성의 측면에서도 바람직하다. git 명령어 자체도 명령형으로 이루어져 있다(git add, git commit 등).

Github를 이용한 원격 버전 관리

다른 컴퓨터나 서버에 호스팅된 원격 리포지토리를 통해 버전 관리를 할 수 있다. Github에서 우측 상단의 + 아이콘 > New repository > Create repository를 클릭한 후 or push an existing repository from the command line 섹션에 있는 코드 두 줄을 명령줄에 하나씩 복사하여 붙인다. git remote add origin 주소는 원격 리포지토리를 생성하는 명령이고 git push -u origin master는 로컬 리포지토리를 원격 리포지토리로 내보내는 명령이다. origin은 원격 리포지토리의 이름으로, 아무 이름이나 써도 되지만 origin이라고 쓰는 것이 관습이다. master는 브랜치를 가리킨다. 리포지토리를 생성하고 내보낸 후에는 커밋을 할 때마다 명령줄에서 git push -u origin master만 입력하면 된다.

포크와 풀

복제(clone)와 포크(fork)는 다른 리포지토리를 가져온다는 측면에서 비슷하나 약간의 차이가 있다. 복제는 원격 리포지토리를 로컬 환경에 복제하는 것이고, 포크는 다른 계정의 원격 리포지토리를 내 계정에 복사하는 것이다. 복사한 리포지토리는 로컬로 가져와 자유롭게 수정할 수 있으나 변경 사항을 소스 리포지토리에 통합하려면 pull 요청을 해야 한다. pull 요청은 이 리포지토리를 소스에 반영해달라고 제안하는 것인데, 소스 리포지토리의 관점에서 외부 리포지토리를 가져오는 것이기에 'pull'이라 한다. 소스 리포지토리의 관리자가 pull 요청을 승인하면 두 리포지토리가 통합된다. 이 과정은 협업에 많이 활용된다.

코딩 외의 업무에 git 활용하기

스타일 가이드를 비롯해 대부분의 회사 문서는 도입부에 업데이트 기록을 명시한다. 누가 언제 어떤 내용을 변경했는지 간략하게 입력하는 것으로 버전 관리를 대체하고 Google Docs 문서인 경우에는 이전 기록이 보존되기 때문에 별도로 파일을 관리하지 않기도 한다. 하지만 업무 트래킹 시트처럼 너무 많은 데이터가 들어가 있는 문서의 경우, Google Docs/Sheets에서 기록을 불러오는 데 많은 시간이 소요되고 오류도 자주 발생한다. (이전 기록을 찾고 로드하는 과정이 버거워 그냥 새 기록을 작성한 적도 많았다..) Google Docs/Sheets와 git을 동시에 활용하면 추후에 기록상의 문제점이나 정보를 추적하는 것이 훨씬 쉬워질 것 같다. '최종_수정_마지막_진짜 마지막' 같은 파일 관리 지옥에서 벗어나 디지털 미니멀리즘을 실천할 수 있는 것도 무엇보다 큰 이점이다.

 

[읽을 거리] Beyond Code Control: Git for Everything!

 

Photo by Yancy Min on Unsplash

 

*Udemy 강의 <The Complete 2020 Web Development Bootcamp>를 듣고 추가적인 자료 조사와 실습을 통해 정리한 내용이다.

커밋에 사용할 이름과 이메일부터 설정하기

git은 파일의 여러 가지 버전을 관리하는 데 사용하는 프로그램으로, 로컬 컴퓨터에 설치하고 명령줄을 통해 사용한다. git은 코드 파일뿐만 아니라 일반 문서를 관리할 때도 사용할 수 있다. git을 설치한 다음 제일 먼저 할 일은 git에 사용할 사용자 이름과 이메일 주소를 설정하는 것이다. 이 정보는 모든 커밋에 적용된다. 이름과 주소를 설정하지 않고 git 명령을 실행하면 오류가 발생한다.

 

모든 커밋에 기본적으로 적용될 사용자 이름과 이메일 주소를 등록/변경하려면 명령줄에서 다음 명령을 입력한다. 이때 위치는 홈 디렉토리(~)여야 한다.

git config --global user.name "이름"
git config --global user.email "이메일 주소"

 

특정 프로젝트에 사용할 사용자 이름과 이메일 주소를 등록/변경하려면 해당 프로젝트 디렉토리에서 다음 명령을 입력한다. (--global 삭제)

git config user.name "이름"
git config user.email "이메일 주소"

 

명령줄에 다음 명령을 입력하면 현재 설정된 이름과 이메일 주소를 확인할 수 있다.

git config user.name
git config user.email

‘커밋’, ‘커밋하다’의 의미

일반적으로 영어에서 commit은 동사로 사용되고 명사형은 commitment나 commission을 써야 한다. 하지만 컴퓨터 프로그래밍에서 commit은 데이터베이스 트랜잭션이나 소스 코드에 발생한 변경 사항을 소스 리포지토리에 적용하는 행위를 뜻하는 단어로, 동사뿐만 아니라 명사로도 사용될 수 있다. 동사일 때는 변경 사항을 적용한다는 의미로, 명사일 때는 변경 사항을 적용하는 작업이라는 의미로 사용된다. (예: 하루에 커밋 하나를 한다. 코드를 커밋한다.) 영어 단어를 음차하여 서술어로 사용하는 것이 그렇게 권장되는 일은 아니지만 많은 기술 용어가 그러하듯 여러 사람이 공유하는 의미를 효과적으로 전달하기 위해서는 '커밋'이라는 음차 용어를 사용하는 것이 불가피해 보인다.

git을 이용한 버전 관리 - 원격 관리와 로컬 관리

git을 이용해 파일의 버전을 관리하는 방법은 두 가지가 있다. 하나는 로컬 시스템에 리포지토리를 만들어 커밋 기록을 저장하는 로컬 관리이고 다른 하나는 Github로 대표되는 원격 시스템에 리포지토리를 만들어 커밋 기록을 저장하는 원격 관리이다. 두 방법 중 하나만 사용하기보다는 로컬 리포지토리와 원격 리포지토리를 동시에 유지하면서 동기화하는 방식이 많이 사용된다. 리포지토리는 저장소를 의미한다.

git과 명령줄을 이용한 로컬 버전 관리

명령줄에서 프로젝트 디렉토리로 들어간 다음 git init을 입력하면 git이 초기화되고 .git 리포지토리가 숨겨진 파일로 생성된다. git을 초기화한 디렉토리가 바로 작업 디렉토리(working directory)이다. 작업 디렉토리에서 git add 파일명.확장자를 입력하면 해당 파일이 스테이징 영역으로 전달되고, git commit -m “커밋 메시지”를 입력하면 커밋 메시지와 함께 스테이징 영역에 있는 파일이 로컬 리포지토리로 커밋된다. 스테이징 영역은 파일을 리포지토리에 영구적으로 커밋하기 전에 한 번 더 확인하고 조정하는 중간 지대라 할 수 있다. 로컬 버전 관리의 흐름을 요약하면 다음과 같다.

[작업 디렉토리] git add → [스테이징 영역] git commit → [로컬 리포지토리]

커밋 메시지는 간단 명료하게

커밋 메시지는 마지막 저장 지점과 비교하여 무엇이 변경되었는지 명시하는 역할을 한다. 커밋 메시지는 명령형으로 쓰는 것이 관습이다(예: Change A to B). 이미 변경한 내용을 현재형 명령으로 표현하는 것이 영어 사용자에게도 어색한 지점이 있고 반대 의견이 없는 것도 아니지만 메시지를 보다 간단하고 분명하게 전달하기 위해서는 명령형을 사용하는 게 좋다. 특별한 이유가 없다면 많은 사람들이 공유하고 합의한 방식을 사용하는 것이 효율성의 측면에서도 바람직하다. git 명령어 자체도 명령형으로 이루어져 있다(git add, git commit 등).

Github를 이용한 원격 버전 관리

다른 컴퓨터나 서버에 호스팅된 원격 리포지토리를 통해 버전 관리를 할 수 있다. Github에서 우측 상단의 + 아이콘 > New repository > Create repository를 클릭한 후 or push an existing repository from the command line 섹션에 있는 코드 두 줄을 명령줄에 하나씩 복사하여 붙인다. git remote add origin 주소는 원격 리포지토리를 생성하는 명령이고 git push -u origin master는 로컬 리포지토리를 원격 리포지토리로 내보내는 명령이다. origin은 원격 리포지토리의 이름으로, 아무 이름이나 써도 되지만 origin이라고 쓰는 것이 관습이다. master는 브랜치를 가리킨다. 리포지토리를 생성하고 내보낸 후에는 커밋을 할 때마다 명령줄에서 git push -u origin master만 입력하면 된다.

포크와 풀

복제(clone)와 포크(fork)는 다른 리포지토리를 가져온다는 측면에서 비슷하나 약간의 차이가 있다. 복제는 원격 리포지토리를 로컬 환경에 복제하는 것이고, 포크는 다른 계정의 원격 리포지토리를 내 계정에 복사하는 것이다. 복사한 리포지토리는 로컬로 가져와 자유롭게 수정할 수 있으나 변경 사항을 소스 리포지토리에 통합하려면 pull 요청을 해야 한다. pull 요청은 이 리포지토리를 소스에 반영해달라고 제안하는 것인데, 소스 리포지토리의 관점에서 외부 리포지토리를 가져오는 것이기에 'pull'이라 한다. 소스 리포지토리의 관리자가 pull 요청을 승인하면 두 리포지토리가 통합된다. 이 과정은 협업에 많이 활용된다.

코딩 외의 업무에 git 활용하기

스타일 가이드를 비롯해 대부분의 회사 문서는 도입부에 업데이트 기록을 명시한다. 누가 언제 어떤 내용을 변경했는지 간략하게 입력하는 것으로 버전 관리를 대체하고 Google Docs 문서인 경우에는 이전 기록이 보존되기 때문에 별도로 파일을 관리하지 않기도 한다. 하지만 업무 트래킹 시트처럼 너무 많은 데이터가 들어가 있는 문서의 경우, Google Docs/Sheets에서 기록을 불러오는 데 많은 시간이 소요되고 오류도 자주 발생한다. (이전 기록을 찾고 로드하는 과정이 버거워 그냥 새 기록을 작성한 적도 많았다..) Google Docs/Sheets와 git을 동시에 활용하면 추후에 기록상의 문제점이나 정보를 추적하는 것이 훨씬 쉬워질 것 같다. '최종_수정_마지막_진짜 마지막' 같은 파일 관리 지옥에서 벗어나 디지털 미니멀리즘을 실천할 수 있는 것도 무엇보다 큰 이점이다.

 

[읽을 거리] Beyond Code Control: Git for Everything!

 

Photo by Yancy Min on Unsplash

 

*Udemy 강의 <The Complete 2020 Web Development Bootcamp>를 듣고 추가적인 자료 조사와 실습을 통해 정리한 내용이다.

커밋에 사용할 이름과 이메일부터 설정하기

git은 파일의 여러 가지 버전을 관리하는 데 사용하는 프로그램으로, 로컬 컴퓨터에 설치하고 명령줄을 통해 사용한다. git은 코드 파일뿐만 아니라 일반 문서를 관리할 때도 사용할 수 있다. git을 설치한 다음 제일 먼저 할 일은 git에 사용할 사용자 이름과 이메일 주소를 설정하는 것이다. 이 정보는 모든 커밋에 적용된다. 이름과 주소를 설정하지 않고 git 명령을 실행하면 오류가 발생한다.

 

모든 커밋에 기본적으로 적용될 사용자 이름과 이메일 주소를 등록/변경하려면 명령줄에서 다음 명령을 입력한다. 이때 위치는 홈 디렉토리(~)여야 한다.

git config --global user.name "이름"
git config --global user.email "이메일 주소"

 

특정 프로젝트에 사용할 사용자 이름과 이메일 주소를 등록/변경하려면 해당 프로젝트 디렉토리에서 다음 명령을 입력한다. (--global 삭제)

git config user.name "이름"
git config user.email "이메일 주소"

 

명령줄에 다음 명령을 입력하면 현재 설정된 이름과 이메일 주소를 확인할 수 있다.

git config user.name
git config user.email

‘커밋’, ‘커밋하다’의 의미

일반적으로 영어에서 commit은 동사로 사용되고 명사형은 commitment나 commission을 써야 한다. 하지만 컴퓨터 프로그래밍에서 commit은 데이터베이스 트랜잭션이나 소스 코드에 발생한 변경 사항을 소스 리포지토리에 적용하는 행위를 뜻하는 단어로, 동사뿐만 아니라 명사로도 사용될 수 있다. 동사일 때는 변경 사항을 적용한다는 의미로, 명사일 때는 변경 사항을 적용하는 작업이라는 의미로 사용된다. (예: 하루에 커밋 하나를 한다. 코드를 커밋한다.) 영어 단어를 음차하여 서술어로 사용하는 것이 그렇게 권장되는 일은 아니지만 많은 기술 용어가 그러하듯 여러 사람이 공유하는 의미를 효과적으로 전달하기 위해서는 '커밋'이라는 음차 용어를 사용하는 것이 불가피해 보인다.

git을 이용한 버전 관리 - 원격 관리와 로컬 관리

git을 이용해 파일의 버전을 관리하는 방법은 두 가지가 있다. 하나는 로컬 시스템에 리포지토리를 만들어 커밋 기록을 저장하는 로컬 관리이고 다른 하나는 Github로 대표되는 원격 시스템에 리포지토리를 만들어 커밋 기록을 저장하는 원격 관리이다. 두 방법 중 하나만 사용하기보다는 로컬 리포지토리와 원격 리포지토리를 동시에 유지하면서 동기화하는 방식이 많이 사용된다. 리포지토리는 저장소를 의미한다.

git과 명령줄을 이용한 로컬 버전 관리

명령줄에서 프로젝트 디렉토리로 들어간 다음 git init을 입력하면 git이 초기화되고 .git 리포지토리가 숨겨진 파일로 생성된다. git을 초기화한 디렉토리가 바로 작업 디렉토리(working directory)이다. 작업 디렉토리에서 git add 파일명.확장자를 입력하면 해당 파일이 스테이징 영역으로 전달되고, git commit -m “커밋 메시지”를 입력하면 커밋 메시지와 함께 스테이징 영역에 있는 파일이 로컬 리포지토리로 커밋된다. 스테이징 영역은 파일을 리포지토리에 영구적으로 커밋하기 전에 한 번 더 확인하고 조정하는 중간 지대라 할 수 있다. 로컬 버전 관리의 흐름을 요약하면 다음과 같다.

[작업 디렉토리] git add → [스테이징 영역] git commit → [로컬 리포지토리]

커밋 메시지는 간단 명료하게

커밋 메시지는 마지막 저장 지점과 비교하여 무엇이 변경되었는지 명시하는 역할을 한다. 커밋 메시지는 명령형으로 쓰는 것이 관습이다(예: Change A to B). 이미 변경한 내용을 현재형 명령으로 표현하는 것이 영어 사용자에게도 어색한 지점이 있고 반대 의견이 없는 것도 아니지만 메시지를 보다 간단하고 분명하게 전달하기 위해서는 명령형을 사용하는 게 좋다. 특별한 이유가 없다면 많은 사람들이 공유하고 합의한 방식을 사용하는 것이 효율성의 측면에서도 바람직하다. git 명령어 자체도 명령형으로 이루어져 있다(git add, git commit 등).

Github를 이용한 원격 버전 관리

다른 컴퓨터나 서버에 호스팅된 원격 리포지토리를 통해 버전 관리를 할 수 있다. Github에서 우측 상단의 + 아이콘 > New repository > Create repository를 클릭한 후 or push an existing repository from the command line 섹션에 있는 코드 두 줄을 명령줄에 하나씩 복사하여 붙인다. git remote add origin 주소는 원격 리포지토리를 생성하는 명령이고 git push -u origin master는 로컬 리포지토리를 원격 리포지토리로 내보내는 명령이다. origin은 원격 리포지토리의 이름으로, 아무 이름이나 써도 되지만 origin이라고 쓰는 것이 관습이다. master는 브랜치를 가리킨다. 리포지토리를 생성하고 내보낸 후에는 커밋을 할 때마다 명령줄에서 git push -u origin master만 입력하면 된다.

포크와 풀

복제(clone)와 포크(fork)는 다른 리포지토리를 가져온다는 측면에서 비슷하나 약간의 차이가 있다. 복제는 원격 리포지토리를 로컬 환경에 복제하는 것이고, 포크는 다른 계정의 원격 리포지토리를 내 계정에 복사하는 것이다. 복사한 리포지토리는 로컬로 가져와 자유롭게 수정할 수 있으나 변경 사항을 소스 리포지토리에 통합하려면 pull 요청을 해야 한다. pull 요청은 이 리포지토리를 소스에 반영해달라고 제안하는 것인데, 소스 리포지토리의 관점에서 외부 리포지토리를 가져오는 것이기에 'pull'이라 한다. 소스 리포지토리의 관리자가 pull 요청을 승인하면 두 리포지토리가 통합된다. 이 과정은 협업에 많이 활용된다.

코딩 외의 업무에 git 활용하기

스타일 가이드를 비롯해 대부분의 회사 문서는 도입부에 업데이트 기록을 명시한다. 누가 언제 어떤 내용을 변경했는지 간략하게 입력하는 것으로 버전 관리를 대체하고 Google Docs 문서인 경우에는 이전 기록이 보존되기 때문에 별도로 파일을 관리하지 않기도 한다. 하지만 업무 트래킹 시트처럼 너무 많은 데이터가 들어가 있는 문서의 경우, Google Docs/Sheets에서 기록을 불러오는 데 많은 시간이 소요되고 오류도 자주 발생한다. (이전 기록을 찾고 로드하는 과정이 버거워 그냥 새 기록을 작성한 적도 많았다..) Google Docs/Sheets와 git을 동시에 활용하면 추후에 기록상의 문제점이나 정보를 추적하는 것이 훨씬 쉬워질 것 같다. '최종_수정_마지막_진짜 마지막' 같은 파일 관리 지옥에서 벗어나 디지털 미니멀리즘을 실천할 수 있는 것도 무엇보다 큰 이점이다.

 

[읽을 거리] Beyond Code Control: Git for Everything!

 

Photo by Yancy Min on Unsplash

 

*Udemy 강의 <The Complete 2020 Web Development Bootcamp>를 듣고 추가적인 자료 조사와 실습을 통해 정리한 내용이다.