IT 프로그래밍/오픈소스소프트웨어

[오픈소스소프트웨어] Git

기술1 2024. 11. 1. 17:15
반응형

가장 거대한 Git 저장소 호스트로 Linux 커널을 포함한 많은 OSS 프로젝트들이 사용하고 있습니다. oss 프로젝트는 무료로 사용 가능합니다. Git을 사용하기 위해서 Github를 사용해야 하는 것은 아닙니다. 개인 컴퓨터에 Git을 설치하여 개인적인 용도로만으로도 사용이 가능하며 서버 컴퓨터에 설치된 Git을 사용하여 협업이 가능합니다. 

 

git 커맨드 라인:( <verb> = config, add, commit 등)

$ git help <verb>
$ git <verb> --help
$ man git-<verb>

 

Git은 리눅스 개발자 커뮤니티에서 탄생한 것으로 Linus Torvalds가 2005년 개발을 시작했습니다. 초기의 개발 목적은 실행 속도가 빠를 것, 직선형 모델외에 병렬적인 개발 모델도 지원할 것, 완전 분산형 구조, 리눅스 프로젝트와같은 대형 개발 프로젝트에서 사용할 것입니다.

 

로컬 저장소의 접근 과정

GIT의 기본 작업흐름

  • 작업디렉토리에서 파일을 변경
  • 스테이지 영역에 변경한 파일들을 추가
  • 커밋을 통해 스테이지 영역의 파일들을 Git에 반영
  • 주의 : Git 디렉토리에 위치한 파일들을 커밋된 것으로 간주, 작업 디렉토리에서 변경되어 스테이지 영역에 추가된 파일들은 스테이지된 상태, 작업 디렉토리에서 변경되었으나 아직 스테이지 되지 않은 파일들은 변경된 상태

Git 사용

커밋시에 사용할 사용자의 이름과 Email을 설정함 commit:

$ git config --global user.name "Hong Kil-Dong"
$ git config --global user.email hong@gmail.com
  • git config --list 명령으로 설정 정보를 확인 가능
  • 이제부터 모든 Git 프로젝트에는 이 설정이 적용됨
  • 프로젝트 별로 다른 설정을  사용하려면 --global 플래그를 사용하지 않음
  • 커밋 메세지를 작성하는데 사용할 에디터 프로그램은 변경할 수 있음
$ git config --global core.editor emacs
  • push.default가 설정되지 않았다는 경고 메시지가 나타나는 경우에는 다음과 같이 설정
$ git config --global push.default simple

 

기존 프로젝트를 복제

기존의 프로젝트를 현재 디렉토리에 복제하려면

$ git clone <url> [local dir name]

local dir name의 서브 디렉토리를 현재 디렉토리에 생성하고 저장소에서 작업본 파일들을 모두 복사하게됨,  그리고 git 자체의 정보 관리를 위해 .git 디렉토리를 생성

커밋 (commit)

  • 커밋할 파일은 반드시 먼저 스테이지되어야 하며 이후 만약 파일이 변경되면 다시 스테이지되어야 함

$git add README.txt hello.java

  • 스테이지 된 파일을 취소하려면

$git reset HEAD -- <file>

  • 커밋시에는 모든 스테이지된 파일이 저장소에 기록됨

$git commit -m "Fixing bug #22"

  • 작업 디렉토리 내의 변경된 파일을 이전에 커밋된 상태로 되돌리려면

$git checkout -- <file>

 

 

status와 diff

작업디렉토리와 스테이지 영역의 파일 상태를 보려면 status 명령을 사용

$git status
$git status -s (-s는 간략한 정보만 표시)

작업 디렉토리의 파일과 스테이지 영역 파일과의 차이를 비교하려면 diff 명령을 사용

$ git diff

로컬 저장소의 파일과 스테이지된 파일과의 차이를 비교하려면 --cached 옵션을 사용

$ git diff --cached

 

 

반응형