반응형

git의 기본 명령어를 알아보고 실습해보기!

 

git init : 로컬 저장소 만들기

 

git init 명령어는 깃 저장소를 만드는 명령어 입니다.

원하는 경로 폴더안에서 오른쪽마우스 -> Git Bash Here 선택
git bash에 현재경로가 표시되어야 합니다

또는 시작메뉴에서 git bash를 열어 실행도 가능합니다.

이 경우 cd 명령어를 사용하면 됩니다. cd <경로> 는 해당 경로로 이동하라는 명령어 입니다.

예를들어 C드라이브에 git_test라는 폴더로 이동하고 싶을 경우

cd c:\git_test를 입력하면 됩니다.

 

또한 현재 경로를 확인하는 명령어는 pwd 명령어 입니다.

pwd 명령어를 사용하면 현재경로를 보여줍니다.

git bash에 git init을 입력해보자.

 

Initialized empty Git repository in <경로> 가 뜨면 성공적으로 저장소가 만들어진것이다.

 

해당 폴더를 확인해보면 .git 폴더가 생성된 것을 확인할 수 있다.

 

 

git status : 작업 디렉터리 상태 확인

저장소를 생성하였으면 이제 버전을 관리할 대상을 생성해보자.

테스트를 위해 git 저장소가 생성된 폴더 안에 A가 적힌 a.txt 파일을 만들어보자.

파일을 생성하였으면 알아야할 중요한 명령어가 있다. 바로 git status라는 명령어이다. 

git status 명령어는 현재 작업 디렉토리의 상태를 보여주는 명령어이다. 다음 명령어를 사용하면 아래와 같은 결과가 나옵니다.

 

명령어를 자세히 보면

on branch master는 현재 기본 브렌치, master 브렌치에 있다는 의미입니다.

그리고 아래줄에 no commits yet의 경우 아직 아무런 커밋을 하지 않았다는 의미입니다.

그리고 untracked files: 는 깃이 기존에 변경 사항을 추적하지 않은 대상을 보여줍니다.

아래에 보면 붉은색 글씨로 a.txt가 표시된 것을 볼 수 있습니다.

기존에 관리한 적 없었던 a.txt라는 새로운 파일이 생성되었음을 알려주는 것입니다.

 

git add : 스테이지에 올리기

이제 a.txt 파일을 스테이지에 올려보자.

명렁어 git add <추가할 대상> 을 이용할 수 있다.

add 명령어를 실행 후 다시 git status 명령어를 실행하면

 

changes to be committed 항목에 a.txt 가 표시되었다면 성공적으로 스테이지에 올라간 것임을 알 수 있다.

그런데 만약 스테이지에 올릴 파일들이 많다면? 하나씩 git add <파일명>을 입력하는 것은 엄청 귀찮은 일이다.

이럴 경우 git add * 또는 git add . 명령어를 사용하면 전체파일을 스테이지에 한꺼번에 올릴 수 있다.

그럼 git add * / git add . 차이점은 무엇일까?

  • git add . : .gitignore에 기재된 것 고려하여 모두 추가
  • git add * : .gitignore에 기재된 것 상관없이 모두 추가

사용 할때는 git add . 명령어를 사용하는 것이 좋다.

 

git commit : 커밋하기

스테이지에 변경 사항을 추가했으면 이제 커밋을 하면 된다.

앞서 스테이지에 올린 a.txt 파일을 커밋해보자.

커밋해서 새로운 버전을 만드는 명령어는 git commit -m"커밋 메세지" 또는 git commit --message"커밋 메세지" 이다.

 

첫 커밋 메세지로 first commit 이라는 메세지를 입력해보자.

명령어를 입력하면 위와 같이 나오면 성공적으로 커밋된 것이다.

 

버전이 잘 만들어졌는지 확인해 보기 위해서는 git log 명령어를 사용하여 확인해보자

 

앞서 만든 파일을 스테이지로 올리는 명령어가 git add 명령어이고 이것을 버전으로 만드는 명령어가 git commit -m"커밋메세지" 명령어 입니다. 이 두 명령어를 합쳐 git commit -am"커밋 메세지" 로 사용할 수도 있습니다.

 

다음으로 깃 저장소가 있는 폴더로 가서 a.txt 파일에 B를 추가로 적어 저장해보자.

 

다음으로 git status 명령어를 사용하여 상태를 확인해보면

 

modified 항목에 a.txt가 생긴 것을 확인할 수 있습니다. 이는 a.txt 파일이 수정되었음을 의미합니다.

 

이 수정된 파일을 새 버전으로 만들려면 이를 스테이지에 추가 -> 커밋해야한다.

 

앞서 추가+커밋할 수 있는 명령어인 git commit -am"커밋메시지" 를 사용해보자

 

 

그리고 git log 명령어를 이용하여 커밋 목록을 확인해보면 두번째 커밋도 성공적으로 수행된 것을 확인할 수 있다.

 

여기서 주의해야 할 사항이 있는데 git commit -am"커밋메시지" 명령어를 사용하기 위한 조건이 있는데 다음과 같다.

git commit -am"커밋메시지" 명령어는 깃이 변경 사항을 추적하는 파일에만 적용이 가능하다.

스테이지에 이미 올라와 있거나 한 번이라도 커밋한 적이 있는 파일에만 사용할 수 있다.

기존에 변경 사항을 추적하지 않은 파일은 이 명령어를 사용할 수 없다.

 

예를 들어 새로운 파일 b.txt 파일을 만들어 보면

git bash에서 git status 명령어를 사용하면 Untracked files 항목에 b.txt 가 보인다.

이 파일은 기존에 깃이 변경사항을 추적하지 않은 새로운 파일이라는 뜻이다.

여기서 git commit -am"third commit" 명령어를 입력하게 되면 깃이 변경사항을 추적하지 않았던 파일이라 add와 commit를 수행하지 못했다라는 메시지가 뜨게 된다.

반응형

'Git' 카테고리의 다른 글

[git] git 저장소 만들기 / 명령어  (0) 2023.08.07
[git] Git이란 무엇인가?  (0) 2023.08.07
반응형
저장소(Git repository) - 파일이나 폴더를 저장해 두는 곳

 

# Git은 원격 저장소로컬 저장소 두 종류의 저장소를 제공합니다.

# 원격 저장소(Remote Repository) : github와 같은 전용 서버에서 관리되며 여러사람이 함께 공유하기 위한 저장소

# 로컬 저장소(Local Repository) : 내 PC에 파일이 저장되는 개인 전용 저장소

git을 사용하기 위해 반드시 기억해야 할 3 상태 - 논리적인 구분

Git bash를 사용해보자!
  • git bash는 윈도우의 cmd, 리눅스와 맥의 terminal과 같은 역할을 합니다.
  • git bash를 이용하면 window에서도 리눅스의 명령어를 쓸 수 있습니다.

git 명령어
  • init
git init 명령어를 수행하면 숨겨진 폴더 .git이 생성됩니다. 이것을 저장소라고 하는데요, 깃은 이 폴더의 모든 변경 내용을 여기에 저장하게됩니다. 즉, .git 폴더를 지우면 더 이상 깃으로 폴더의 변경사항을 추적할 수 없습니다.
  • status
깃이 폴더의 현재 변경 상태를 보는 명령어입니다.

  • reset
스테이징 된(add 취소) 파일을 취소할 수 있습니다.
* 폴더의 전체 변경 사항을 취소할 수도 있습니다.
  • commit
깃이 폴더의 변경 내용을 저장하는 단위를 "커밋(commit)"이라고 부르는데, add 명령어 이후 Staging Area 상태에 등록된 파일들만 commit을 할 수 있고 명령어 실행 후에 Repository에 저장됩니다.
** 매번 변경사항을 스테이징하고 커밋 하는 것이 번거롭다면 -a 옵션을 사용하면 됩니다.
  • log
스테이징을 거쳐 커밋 한 결과를 로그(log)라는 형식으로 확인합니다.
** 많은 로그를 한 줄로 편하게 보기 위해서 --oneline 옵션도 자주사용합니다.
  • push
파일을 새로 생성 또는 작업 후 add, commit을 마치고 원격 저장소로 작업물을 공개할 수 있습니다.
  • pull
원격 저장소에서 로컬 저장소로 소스나 변경된 파일을 가져오는 명령어입니다.

 

반응형

'Git' 카테고리의 다른 글

[Git] Git 파헤치기  (0) 2023.08.12
[git] Git이란 무엇인가?  (0) 2023.08.07
반응형
우리가 Git을 사용해야 하는 이유?

- 소스코드나 작업물을 관리할 때 편하기 때문!

 

Git 이란 무엇일까?

Git은 분산형 버전관리 시스템이라고 합니다. (Distributed Version Control System)

 

그럼 버전관리 시스템이란 무엇일까요?

 

버전 관리 시스템(Version Control System), VCS

VCS는 사용자 프로젝트에 포함된 파일의 변경 내역을 추적할 수 있도록 하는 도구 또는 방법론을 말합니다.

 

■ 가장 단순한 버전 관리 시스템

 

소프트웨어 형상관리

SoftWare Configuration Management 줄여서 SCM이라는 단어를 쓰기도 하는데, SW 개발 및 유지보수 과정에서 발생하는 소스코드, 문서, 인터페이스 등 각종 결과물에 대한 형상을 만들고 이를 형상에 대한 변경을 체계적으로 관리, 제어하기 위한 활동입니다. 형상관리는 일반적으로 version control, revision control, source control, source code management, SCM 등 동일한 의미로 사용합니다.

 

버전관리 시스템(VCS) vs 분산형 버전관리 시스템(DVCS)

▶ 기존 버전 관리 시스템은 중앙 서버에 소스코드와 history를 직접 저장하는 방식

분산 버전 관리 시스템은 여러 개발 PC와 저장소에 분산해서 저장하는 방식

 

중앙 집중식 버전관리 - SVN(Subversion)

각 개발자만의 version history를 관리할 수 없다.

commit 한 내용에 실수가 있을 시에 서버에 (다른 개발자에게) 바로 영향을 미치게 되고 만약 중앙 서버에 문제가 발생한다면 협업이 불가능하다.

 

분산형 버전관리 - Git

모든 작업자가 원본을 가질 수 있다.

개별 histroy를 관리할 수 있기 때문에 네트워크를 사용하지 못하는 상황에서도 대부분의 작업 진행이 가능하다.

 

Git 과 GitHub는 다르다!

GitHub는 마이크로소프트사의 웹 서비스 입니다.

분산형 버전관리 시스템(git)을 기반으로 소스코드를 호스팅하고, 협업기능을 지원하는 서비스, 소프트웨어 개발 플랫폼입니다.

반응형

'Git' 카테고리의 다른 글

[Git] Git 파헤치기  (0) 2023.08.12
[git] git 저장소 만들기 / 명령어  (0) 2023.08.07

+ Recent posts