본문 바로가기
IT/PROGRAM

[Git] git github gitlab이란 . 리눅스 git(깃) 설치하기 . 상황별 git 명령어

by SidePower 2021. 7. 6.

 

리눅스 소스관리를 위해 만들어진 Git(깃)이지만

이제는 큰 프로젝트에서의 방대한 소스는 물론이고

github나 gitlab을 통해

개인의 사소한 문서들도 깃으로 관리하시는 분들이 많아지고 있네요.

 

 

꼭 프로그래머가 아니라도 깃은 사용할 줄 알아야 될 거예요.

저도 이제야 깃의 중요함을 깨닫고 시작하게 되었습니다.

 

깃(git)이란

소스코드를 관리하기 위한 분산 버전 관리 시스템입니다.

소스코드가 많거나 많은 사람들이 프로젝트에 참여할 때 아주 유용한데요.

 

 깃 좋은점

▩ 같은 소스코드를 동시에 여러 사람이 변경할 수 있어요.

▩ 배포 버전에 문제가 있을 때 바로 예전 버전으로 돌아갈 수 있습니다.

▩ 변경이력을 쉽게 확인할 수 있어요.

▩ 소스코드 충돌 현상을 쉽게 확인할 수 있어요.

▩ 소스 변경 이력을 추적할 수 있다.

 

 

 

그리고 

깃허브는 인터넷을 통해 깃을 기능을 제공하며

깃랩은 깃허브의 설치판이라 불리는 원격저장소를 제공하는 소프트웨어입니다.

깃허브(github)란

깃허브 사이트를 원격저장소로 사용하여 인터넷이 되는 곳이면

어디서나 소스를 다운받을수 있습니다.

그래서 전세계 많은 개발자들이 사용하고 있어요.

모든 소스가 공개되는 open source 개발에 유리하며 호환성이 좋습니다.

무료이고 저장공간에 무제한으로 사용할 수 있습니다. 

하지만

소스를 공개하지 않는 비공개 private 사용은 월 사용료가 부과됩니다.

 

깃허브 바로가기

 

GitHub: Where the world builds software

GitHub is where over 65 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and feat...

github.com

 

 깃랩(gitlab)란

깃허브에 비해 약간 불안정하지만 무료입니다.

보통 기업들은 소스공개를 하지 않기 때문에 깃허브는 비공개면 유료지만

깃랩은 모두 무료이기 때문에 기업용으로 많이 사용되고 있는 거 같아요.

10명 이하의 소규모 프로젝트는 깃허브처럼 인터넷(클라우드)으로도 사용할 수 있습니다.

 

깃랩 바로가기

 

Iterate faster, innovate together

Our open DevOps platform is a single application for unparalleled collaboration, visibility, and development velocity.

about.gitlab.com

 

 

CentOS 리눅스에 깃을 설치해 볼게요.

 

Git 설치 프로그램 확인

[sidepower@localhost test]$ yum list *git*
CentOS Linux 8 - AppStream                                                                              5.5 MB/s | 8.1 MB     00:01    
CentOS Linux 8 - BaseOS                                                                                 4.3 MB/s | 3.6 MB     00:00    
CentOS Linux 8 - Extras                                                                                  14 kB/s | 9.8 kB     00:00    
사용 가능한 패키지
git.x86_64                                                   2.27.0-1.el8                                                      appstream
git-all.noarch                                               2.27.0-1.el8                                                      appstream
git-clang-format.i686                                 11.0.0-1.module_el8.4.0+587+5187cac0                  appstream
git-clang-format.x86_64                            11.0.0-1.module_el8.4.0+587+5187cac0                   appstream
git-core.x86_64                                              2.27.0-1.el8                                                      appstream
git-core-doc.noarch                                          2.27.0-1.el8                                                      appstream
git-credential-libsecret.x86_64                      2.27.0-1.el8                                                      appstream
git-daemon.x86_64                                            2.27.0-1.el8                                                      appstream
git-email.noarch                                             2.27.0-1.el8                                                      appstream
git-gui.noarch                                               2.27.0-1.el8                                                      appstream
git-instaweb.noarch                                          2.27.0-1.el8                                                      appstream
git-lfs.x86_64                                               2.11.0-2.el8                                                      appstream
git-subtree.x86_64                                           2.27.0-1.el8                                                      appstream
git-svn.noarch                                               2.27.0-1.el8                                                      appstream
gitk.noarch                                                  2.27.0-1.el8                                                      appstream
gitweb.noarch                                                2.27.0-1.el8                                                      appstream
kacst-digital-fonts.noarch                                   2.0-19.el8                                                        appstream
libgit2.i686                                                 0.26.8-2.el8                                                      appstream
libgit2.x86_64                                               0.26.8-2.el8                                                      appstream
libgit2-glib.i686                                            0.26.4-2.el8                                                      appstream
libgit2-glib.x86_64                                          0.26.4-2.el8                                                      appstream
perl-Git.noarch                                              2.27.0-1.el8                                                      appstream
perl-Git-SVN.noarch                                          2.27.0-1.el8                                                      appstream

 

 

 Git 설치하기

[sidepower@localhost test]$ sudo yum install git.x86_64
마지막 메타 데이터 만료 확인 :0:34:34. 2021년 07월 01일 (목) 오후 10시 11분 13초 이전에 확인
종속성이 해결되었습니다.
===============================================================================
 패키지                              아키텍처                  버전                                  리포지터리                    크기
===============================================================================
설치 중:
 git                                 x86_64                    2.27.0-1.el8                          appstream                    164 k
종속 패키지 설치 중:
 git-core                            x86_64                    2.27.0-1.el8                          appstream                    5.7 M
 git-core-doc                        noarch                    2.27.0-1.el8                          appstream                    2.5 M
 perl-Error                          noarch                    1:0.17025-2.el8                       appstream                     46 k
 perl-Git                            noarch                    2.27.0-1.el8                          appstream                     77 k
 perl-TermReadKey                    x86_64                    2.37-7.el8                            appstream                     40 k

트랜잭션 요약
===============================================================================
설치  6 패키지

총 다운로드 크기 : 8.5 M
설치된 크기 : 45 M
정말입니까 [y/N]: y
패키지 다운로드중:
(1/6): git-2.27.0-1.el8.x86_64.rpm                                                                   1.6 MB/s | 164 kB     00:00    
(2/6): perl-Error-0.17025-2.el8.noarch.rpm                                                        1.8 MB/s |  46 kB     00:00    
(3/6): perl-Git-2.27.0-1.el8.noarch.rpm                                                             2.7 MB/s |  77 kB     00:00    
(4/6): perl-TermReadKey-2.37-7.el8.x86_64.rpm                                                 1.5 MB/s |  40 kB     00:00    
(5/6): git-core-doc-2.27.0-1.el8.noarch.rpm                                                      4.5 MB/s | 2.5 MB     00:00    
(6/6): git-core-2.27.0-1.el8.x86_64.rpm                                                            6.0 MB/s | 5.7 MB     00:00    
-------------------------------------------------------------------------------------------------------------------------------------
합계                                                                                                       1.8 MB/s | 8.5 MB     00:04     
트랜잭션 확인 실행 중
트랜잭션 확인에 성공했습니다.
트랜잭션 테스트 실행 중
트랜잭션 테스트에 성공했습니다.
트랜잭션 실행 중
  준비 중          :                                                                                                            1/1
  설치 중          : git-core-2.27.0-1.el8.x86_64                                                                        1/6
  설치 중          : git-core-doc-2.27.0-1.el8.noarch                                                                   2/6
  설치 중          : perl-TermReadKey-2.37-7.el8.x86_64                                                               3/6
  설치 중          : perl-Error-1:0.17025-2.el8.noarch                                                                    4/6
  설치 중          : perl-Git-2.27.0-1.el8.noarch                                                                          5/6
  설치 중          : git-2.27.0-1.el8.x86_64                                                                               6/6
  scriptlet 실행 중: git-2.27.0-1.el8.x86_64                                                                                6/6
  확인 중          : git-2.27.0-1.el8.x86_64                                                                                 1/6
  확인 중          : git-core-2.27.0-1.el8.x86_64                                                                           2/6
  확인 중          : git-core-doc-2.27.0-1.el8.noarch                                                                     3/6
  확인 중          : perl-Error-1:0.17025-2.el8.noarch                                                                    4/6
  확인 중          : perl-Git-2.27.0-1.el8.noarch                                                                          5/6
  확인 중          : perl-TermReadKey-2.37-7.el8.x86_64                                                             6/6
Installed products updated.

설치됨:
  git-2.27.0-1.el8.x86_64   git-core-2.27.0-1.el8.x86_64  git-core-doc-2.27.0-1.el8.noarch   perl-Error-1:0.17025-2.el8.noarch  
  perl-Git-2.27.0-1.el8.noarch   perl-TermReadKey-2.37-7.el8.x86_64  

완료되었습니다!
[sidepower@localhost test]$

 

 

 Git 버전확인

[sidepower@localhost test]$ git --version
git version 2.27.0

 

 

 Git 명령어

다음은 여러가지 상황에서 자주 사용하는 깃 명령입니다:

작업 공간 시작 (참고: git help tutorial)
   clone             저장소를 복제해 새 디렉터리로 가져옵니다
   init                 빈 깃 저장소를 만들거나 기존 저장소를 다시 초기화합니다

 변경 사항에 대한 작업 (참고: git help everyday)
   add                파일 내용을 인덱스에 추가합니다
   mv                 파일, 디렉터리, 심볼릭 링크를 옮기거나 이름을 바꿉니다
   restore           Restore working tree files
   rm                 파일을 작업 폴더에서 제거하고 인덱스에서도 제거합니다
   sparse-checkout   Initialize and modify the sparse-checkout

 커밋 내역과 상태 보기 (참고: git help revisions)
   bisect            이진 탐색으로 버그를 만들어낸 커밋을 찾습니다
   diff               커밋과 커밋 사이, 커밋과 작업 내용 사이 등의 바뀐 점을 봅니다
   grep              패턴과 일치하는 줄을 표시합니다
   log                커밋 기록을 표시합니다
   show             여러가지 종류의 오브젝트를 표시합니다
   status            작업 폴더 상태를 표시합니다

 커밋 내역을 키우고, 표시하고, 조작하기
   branch            브랜치를 만들거나, 삭제하거나, 목록을 출력합니다
   commit            바뀐 사항을 저장소에 기록합니다
   merge             여러 개의 개발 내역을 하나로 합칩니다
   rebase             커밋을 다른 베이스 끝의 최상위에서 적용합니다
   reset               현재 HEAD를 지정한 상태로 재설정화합니다
   switch             Switch branches
   tag                  태그를 만들거나, 표시하거나, 삭제하거나, GPG 서명을 검증합니다

 협동 작업 (참고: git help workflows)

   fetch             다른 저장소에서 오브젝트와 레퍼런스를 다운로드합니다
   pull               다른 저장소 또는 다른 로컬 브랜치에서 가져오거나 통합합니다
   push              원격 레퍼런스 및 그와 관련된 오브젝트를 업데이트합니다

 

 

감사합니다.

반응형

댓글