반응형

안녕하세요. 이번 포스팅에서는 개발자 협업 및 버전 관리 툴인 깃 허브에 대해 소개하겠습니다. 협업을 해보신분들이라면 깃을 사용해보셨을텐데, 깃을 사용하는 이유는 무엇인지, 어떤 장점이 있는지, 회사 현업에서는 어떻게 쓰는지 등에 대해 함께 알아가보도록 하겠습니다.

 

https://github.com/

 

GitHub: Let’s build from here

GitHub is where over 100 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 fea...

github.com

 

개발 관리 도구는 어떤 것이 있을까?

 

  • Git: 가장 널리 사용되는 분산 버전 관리 시스템으로, 개발자들이 소스 코드 변경 사항을 추적하고 협업하는 데 사용됩니다. Git은 빠르고 유연하며 오픈 소스이며, GitHub, GitLab, Bitbucket 등의 호스팅 서비스와 통합하여 사용할 수 있습니다.

  • GitHub: GitHub는 Git을 기반으로 하는 코드 호스팅 및 협업 플랫폼으로, 버전 관리, 협업 기능, 이슈 추적, 코드 검토 등을 제공합니다. 개인 프로젝트부터 대규모 팀 프로젝트까지 다양한 규모의 개발 작업에 사용됩니다.

  • GitLab: Git 기반의 웹 기반 DevOps 플랫폼으로, 코드 호스팅, CI/CD, 이슈 관리, 웹 IDE 등의 기능을 제공합니다. GitHub와 유사한 기능을 갖추고 있지만, 온프레미스 설치 옵션도 제공하므로 기업 내에서 자체 호스팅이 가능합니다.

  • Bitbucket: Atlassian이 제공하는 Git 및 Mercurial 기반의 코드 호스팅 및 협업 플랫폼입니다. Jira, Confluence 등 Atlassian의 다른 제품들과의 통합이 강점이며, 소규모 팀부터 대규모 조직까지 다양한 규모의 프로젝트를 지원합니다.

  • Subversion (SVN): 중앙 집중식 버전 관리 시스템으로, 이전에 널리 사용되었으며 여전히 많은 프로젝트에서 사용 중입니다. Git과는 다른 작업 흐름을 갖고 있으며, 분산 버전 관리 시스템보다는 중앙 집중식으로 작업하는 경우에 사용될 수 있습니다.

깃허브란?

GitHub는 소프트웨어 개발자들을 위한 버전 관리 및 협업 플랫폼으로, 전 세계적으로 가장 인기 있는 개발자 커뮤니티 중 하나입니다. 여러 개발자들이 협업하고 소스 코드를 공유하며 프로젝트를 관리하는 데 사용됩니다.

 

  • 버전 관리: Git을 기반으로 하며, 프로젝트의 모든 변경 사항을 추적하고 관리할 수 있습니다. 이를 통해 이전 버전으로의 롤백, 변경 내역의 비교 등을 수행할 수 있습니다.

  • 코드 호스팅: 개발자는 자신의 코드를 온라인 저장소에 업로드하고 관리할 수 있습니다. 이를 통해 다른 사람들과 코드를 공유하고 협업할 수 있습니다.

  • 협업 기능:  여러 개발자가 동시에 작업하고, 변경 사항을 검토하고, 피드백을 주고받을 수 있는 기능을 제공합니다. Pull Request를 통해 변경 사항을 제안하고, 코드 리뷰를 진행하여 효율적인 협업을 할 수 있습니다.

  • 이슈 추적: GitHub는 버그, 기능 요청, 작업 항목 등을 추적하기 위한 이슈 트래킹 시스템을 제공합니다. 이를 통해 프로젝트의 문제를 추적하고 해결할 수 있습니다.

  • 다양한 통합:  다양한 개발 도구와 서비스와의 통합을 지원합니다. 예를 들어, 지속적인 통합/배포(CI/CD) 서비스와의 연동, 이슈 관리 도구와의 통합 등이 가능합니다.

GitHub는 오픈 소스 프로젝트뿐만 아니라 상용 소프트웨어 개발에도 널리 사용되며, 개발자들 사이에서 코드 공유, 협업, 지식 공유를 위한 중요한 플랫폼으로 인정받고 있습니다.

 

깃허브를 왜 써야할까?

  • 버전 관리: GitHub는 Git을 기반으로 하여 소스 코드의 버전을 관리합니다. 버전 관리는 개발 프로젝트에서 매우 중요한 요소입니다. GitHub를 사용하면 변경 사항을 추적하고 이전 버전으로 롤백할 수 있으며, 여러 개발자가 동시에 작업할 때도 충돌을 방지하고 변경 사항을 효과적으로 통합할 수 있습니다.

  • 협업과 소통: 다수의 개발자가 함께 작업하고 소통할 수 있는 효율적인 플랫폼을 제공합니다. Pull Request 기능을 통해 개발자들은 변경 사항을 제안하고 코드 리뷰를 진행할 수 있습니다. 이를 통해 팀원들 간의 피드백을 주고받고 개선된 코드를 통합할 수 있습니다.

  • 오픈 소스 프로젝트: 수많은 오픈 소스 프로젝트의 중심지입니다. 많은 개발자들이 자신의 오픈 소스 프로젝트를 GitHub에 호스팅하고 공유합니다. 이를 통해 다른 개발자들은 프로젝트에 기여하거나 사용할 수 있으며, 오픈 소스 생태계의 발전에 기여할 수 있습니다.

  • 이슈 관리: GitHub의 이슈 트래킹 시스템은 버그 보고서, 기능 요청, 작업 항목 등을 관리하기에 매우 편리합니다. 팀원들은 이슈를 생성하고 할당하며, 문제를 추적하고 해결할 수 있습니다. 이를 통해 프로젝트의 투명성과 효율성을 향상시킬 수 있습니다.

  • 다양한 통합: 다양한 개발 도구 및 서비스와 통합될 수 있습니다. CI/CD 도구와의 연동을 통해 자동화된 빌드, 테스트, 배포 파이프라인을 구축할 수 있습니다. 또한, 이슈 관리 도구, 프로젝트 관리 도구, 커뮤니케이션 도구 등과의 통합을 통해 개발 프로세스를 효율적으로 관리할 수 있습니다.

 

깃허브 툴은 뭐가 있을까?

  • GitHub Desktop: GitHub Desktop은 사용자 친화적인 데스크톱 애플리케이션으로, Git을 쉽게 사용할 수 있도록 도와줍니다. GUI를 통해 코드 변경 사항을 커밋하고, 브랜치를 생성하고, 변경 내역을 푸시하고, 코드를 동기화하는 등의 작업을 수행할 수 있습니다.

 

  • SourceTree: SourceTree는 Atlassian에서 개발한 무료 Git 및 Mercurial 클라이언트입니다. 사용자 친화적인 인터페이스를 제공하여 Git과 Mercurial을 쉽게 사용할 수 있도록 도와줍니다. 변경 사항의 추적, 브랜치 관리, 변경 내역의 비교 및 병합 등의 작업을 수행할 수 있습니다.

 

  • GitKraken: GitKraken은 사용자 친화적인 그래픽 인터페이스를 갖춘 강력한 Git 클라이언트입니다. GitKraken은 코드 변경 사항을 시각적으로 관리하고, 브랜치, 커밋, 병합 등의 작업을 쉽게 수행할 수 있습니다. GitHub, GitLab, Bitbucket 등과의 통합도 지원합니다.

  • Tower: Tower는 macOS와 Windows를 위한 고급 Git 클라이언트입니다. 직관적인 인터페이스와 다양한 기능을 제공하여 Git 저장소의 관리와 협업을 용이하게 지원합니다. 코드 변경 사항의 추적, 브랜치 관리, 히스토리 조회 등을 편리하게 수행할 수 있습니다.


  • SmartGit: SmartGit은 사용자 친화적인 Git 및 Mercurial 클라이언트 도구입니다. 단일 사용자와 팀의 협업을 지원하며, 다양한 Git 작업을 수행할 수 있습니다. 브랜치 관리, 커밋, 푸시, 병합 등의 작업을 편리하게 수행할 수 있습니다.

  • GitExtensions: GitExtensions는 Windows 운영 체제에서 작동하는 Git 클라이언트입니다. 직관적인 그래픽 인터페이스를 제공하며, Git 작업을 편리하게 수행할 수 있는 기능을 제공합니다. 변경 사항의 추적, 브랜치 관리, 태그 관리 등의 작업을 지원합니다.

여러개를 써본 결과 이중 Github 데스크탑, source tree가 가장 쉽고 직관적이라고 생각합니다. 요새는 Vscode, Visual Studio 같은 개발 플랫폼에서 바로 깃에 연동이 되기도 하지만, 확실히 툴을 사용하는게 편하긴 합니다. 하지만 툴에서 지원해주지 않는 명령어들도 많기 때문에 어느정도 문법을 익혀 직접 관련 명령어들을 수행하는 능력이 필요하기도 합니다.

 

깃허브 기본 문법

1. 저장소 초기화:
- 새로운 Git 저장소를 생성하려면 해당 디렉토리로 이동한 후 아래 명령어를 사용합니다.

git init

2. 변경 사항 추적:
- Git은 변경된 파일을 추적하기 위해 'add' 명령어를 사용합니다.
모든 변경 사항을 추적하려면 아래 명령어를 사용합니다.

git add .

특정 파일만 추적하려면 파일 경로를 지정합니다.

git add file.txt

3. 커밋:
- 추적된 변경 사항을 커밋하여 버전을 생성합니다.

git commit -m "Commit message"

 

4. 원격 저장소와 연결:
- 원격 저장소와 연결하여 변경 사항을 공유하려면 'remote' 명령어를 사용합니다.
원격 저장소 추가:

git commit -m "Commit message"

원격 저장소 확인:

git remote -v

5. 변경 사항 푸시:
- 커밋한 변경 사항을 원격 저장소로 푸시합니다.

git push origin <branch-name>

 

6. 변경 사항 가져오기:
- 원격 저장소에서 변경 사항을 가져와 로컬 저장소에 병합합니다.

git pull origin <branch-name>

7. 브랜치 관리:

새로운 브랜치 생성:

git branch <branch-name>

브랜치 전환:

git checkout <branch-name>

8. 변경 이력 확인:
- Git의 이력을 확인하기 위해 'log' 명령어를 사용합니다.

git log

 

이러한 Git 명령어를 사용하여 코드의 버전 관리, 협업, 변경 사항 추적 등을 수행할 수 있습니다. Git의 기능은 다양하므로 더 많은 명령어와 옵션에 대한 정보는 Git의 공식 문서나 Git 도움말을 참고하시면 됩니다.

 

https://git-scm.com/book/ko/v2

 

Git - Book

 

git-scm.com

 

 

반응형

+ Recent posts