웹사이트 검색

Linux에서 GIT 시작하기


이 페이지에서

  1. 전제 조건
  2. 무엇을 할 것인가?\n
  3. 로컬 저장소를 초기화하고 기본 작업을 수행합니다.\n
  4. 기존 저장소 복제 및 기본 작업 수행\n
  5. 결론

Git은 분산 버전 제어 시스템입니다. 모든 파일의 변경 사항을 추적하는 데 사용됩니다. 소프트웨어 개발 프로세스 중에 소스 코드에서 작업하는 프로그래머 간의 작업 조정을 위해 설계되었습니다. 이 기사에서는 Git 리포지토리에서 기본 작업을 수행하는 명령을 보여줍니다. 우분투 서버를 OS로 사용하겠습니다. 동일한 명령이 모든 운영 체제에서 작동할 수 있으며 설치 부분만 다릅니다.

전제 조건

  1. 우분투 20.04

우리는 무엇을 할 것인가?

  1. 로컬 저장소를 초기화하고 기본 작업을 수행합니다.\n
  2. 기존 저장소를 복제하고 기본 작업을 수행합니다.\n

로컬 저장소를 초기화하고 기본 작업을 수행합니다.

진행하기 전에 사용 중인 운영 체제와 Git을 사용할 수 있는지 확인하십시오.

Ubuntu 20 0.4 LTS 서버에 이미 설치되어 있습니다.

cat /etc/issue
git --version

내 것과 동일한 운영 체제를 사용하는 경우 서버에 설치되어 있지 않으면 다음 명령을 사용하여 설치할 수 있습니다.

sudo apt-get install git

이제 Git에서 기본 작업을 시작하겠습니다.

현재 디렉터리를 확인하고 그 안에 새 디렉터리를 만듭니다. 작업 디렉터리를 생성한 디렉터리로 변경합니다.

pwd
mkdir my-first-git-repo
cd my-first-git-repo/
ls -la

지금까지 우리는 파일을 포함하지 않고 Linux 시스템의 단순한 디렉토리인 디렉토리만 가지고 있습니다. 간단한 디렉토리를 Git 리포지토리로 변환하려면 다음 명령을 사용하십시오.

git init
ls -la

이제 Git 구성이 포함된 새로운 숨겨진 폴더가 생성된 것을 볼 수 있습니다.

cat .git/config

Git 저장소를 초기화하면 사용자 ID가 포함되지 않습니다. 사용자 이름과 이메일 ID를 사용자 ID로 설정하려면 다음 명령을 사용하십시오. 이 ID는 Git 로그 메시지에 추가됩니다.

git config --list
git config user.name rahul
git config user.email 
git config --list

사용자 ID를 설정하고 구성을 나열하면 사용자 이름과 이메일이 설정되었음을 알 수 있습니다.

다음 명령을 사용하여 사용자 ID로 설정된 사용자 이름과 이메일 ID도 확인할 수 있습니다.

git config user.name
git config user.email

위의 명령은 특정 저장소로 제한된 사용자 ID를 설정합니다.

컴퓨터의 모든 리포지토리에서 사용할 사용자 ID를 설정할 수도 있으며 이를 전역 ID라고 합니다. 전역 ID를 설정하면 로컬 ID가 없는 리포지토리는 메시지를 커밋하는 동안 이 전역 ID를 사용합니다.

전역 ID가 설정되지 않은 상태에서 사용자 이름과 이메일을 나열하려고 하면 어떤 정보도 얻을 수 없습니다.

git config --global user.name
git config --global user.email

하지만 사용자 이름과 이메일 ID를 설정하고 ID를 확인하면 표시되는 것을 볼 수 있습니다.

git config --global user.name rahul
git config --global user.email 
git config --global user.name
git config --global user.email

누구나 다음 명령을 사용하여 전역 ID를 명시합니다.

git config --global --unset user.name
git config --global --unset user.email
git config --global user.name
git config --global user.email

참조 목적으로 다음 스크린샷을 확인하십시오.

이제 명령을 사용하여 로컬 ID를 확인할 수 있지만 .git/config 파일을 읽어서 무엇이 설정되었는지 확인할 수도 있습니다.

git config user.name
git config user.email

.git/config 파일의 내용을 읽으면 이 파일에 사용자 이름과 이메일이 설정되어 있는 것을 볼 수 있습니다. 그리고 이것은 로컬 ID가 사용되는 곳입니다. 동일한 파일을 편집하여 ID를 변경할 수도 있습니다.

vim .git/config
cat .git/config
git config user.name
git config user.email

로컬 리포지토리에 대해 커밋 ID를 설정했으면 다음 단계는 파일을 만들어 리포지토리에 추가하는 것입니다.

로컬 리포지토리에 빈 파일을 만들 수 있습니다.

 touch README.md

파일을 추가한 후 리포지토리 상태를 확인하면 파일이 이제 Git에서 추적되지 않는 것을 볼 수 있습니다.

 git status
 git branch

파일을 Git에 커밋하기 전에 먼저 파일을 추가해야 합니다. 다음 명령을 사용하여 파일을 Git에 추가하여 커밋할 준비가 되도록 합니다.

 git add README.md
 git status
 git log

Git 저장소에 파일을 커밋하는 동안 파일에 메시지를 추가해야 합니다.

 git commit -m "my first commit - added README.md"

이제 로그를 확인하면 커밋에 지정한 메시지와 함께 파일이 커밋되었음을 알 수 있습니다.

git log

기본적으로 커밋은 마스터 브랜치에 추가됩니다.

git branch

기존 리포지토리 복제 및 기본 작업 수행

지금까지 우리는 로컬 시스템의 저장소로 작업했습니다.

이제 기존 저장소에서 몇 가지 작업을 수행하는 것을 볼 수 있습니다. Github와 같은 코드 호스팅 플랫폼에 버전 제어 및 협업을 위한 기존 저장소가 없는 경우 먼저 Github에서 계정을 만들어 저장소를 만듭니다.

여기에서 Github에 계정을 만들 수 있습니다.

Github에서 계정을 생성하면 새 리포지토리를 생성할 시간입니다. 리포지토리를 생성하려면 화면 오른쪽 상단의 "+" 아이콘을 클릭하고 "새 리포지토리" 옵션을 클릭합니다.

생성할 리포지토리에 이름을 지정하고 요구 사항에 따라 액세스 수준을 비공개 또는 공개로 설정합니다. 리포지토리를 생성하는 동안 readme 파일을 추가할 수도 있습니다. "리포지토리 생성" 버튼을 클릭하여 지정한 구성으로 리포지토리를 생성합니다.

리포지토리를 만든 후 다음 단계는 로컬 시스템에 복제하는 것입니다. URL을 얻으려면 "코드"를 클릭하고 HTTPS 섹션에서 URL을 복사하십시오.

시스템으로 돌아가서 작업 디렉토리를 변경하십시오.

pwd
cd ..
pwd

다음 명령어를 사용하여 로컬 머신에서 저장소를 복제합니다. Git URL을 지정해야 합니다.

git clone <your-repository-URL>
cd test-repo/
ls -lt

위의 명령은 Github에서 로컬 머신으로 저장소를 복제합니다. 이제 Git 로그를 확인하면 README.md 파일을 추가한 초기 커밋이 포함된 하나의 로그 메시지가 표시됩니다.

git log

이제 새 파일을 만들어 Git에 추가하고 메시지와 함께 커밋하겠습니다.

pwd
touch first-file-to-push
git status
git add first-file-to-push
git status
git commit -m "first commit to push to the remote repository"

커밋하면 사용자 ID를 설정하라는 메시지가 표시됩니다.

git config --list
git config user.name rahul
git config user.email 
git config --list
git log

사용자 ID를 설정한 후에는 커밋에서 ID를 수정할 수 있습니다.

ID를 수정하려면 다음 명령을 실행합니다. 편집자를 얻을 수 있으며 필요한 경우 커밋을 변경할 수 있습니다.

  git commit --amend --reset-author

Git 로그를 확인하면 로그에 설정한 ID와 수정한 커밋이 있는 것을 볼 수 있습니다.

git log
  git status

로컬 변경 사항을 원격 저장소로 푸시하도록 모두 설정되었습니다. 다음 명령어는 저장소의 Github에 변경사항을 푸시합니다.

  git push

이제 원격 저장소에서 변경사항을 찾을 수 있습니다. 저장소로 이동하면 추가한 커밋과 파일을 찾을 수 있습니다.

경우에 따라 특정 파일이 저장소에 추가되지 않도록 제외해야 할 수도 있습니다.

pwd
ls -la

.gitignore 파일을 만들고 Git에서 무시할 파일 패턴을 추가할 수 있습니다.

touch .gitignore
vim .gitignore

여기에 ".txt"로 끝나는 모든 파일을 무시하는 "*.txt"를 추가했습니다.

cat .gitignore

.gitignore 파일에 패턴을 추가하고 저장소에 해당 패턴의 파일을 생성하면 파일이 Git에서 무시됩니다.

*.txt를 추가했고 이제 .txt로 끝나는 파일을 만들려고 하면 "git add" 작업에서 Git이 이 파일을 무시합니다.

touch ignore-this-file.txt
git status

패턴과 일치하지 않는 파일은 Git에서 무시되지 않습니다.

touch dont-ignore-this-file.doc
git status

그런 다음 리포지토리의 모든 파일을 추가하고 메시지와 함께 커밋할 수 있습니다. 무시된 파일은 추가되지 않습니다.

git add .
git status
git commit -m "added .gitignore and a sample doc file"
git status

파일이 추가되고 메시지와 함께 커밋되면 원격 저장소로 푸시할 준비가 된 것입니다.

git push

저장소에서 파일을 삭제하고 싶은 경우 "git rm " 명령을 사용할 수 있습니다.

pwd
ls -lt
git status
git rm dont-ignore-this-file.doc
git status
ls -la

파일을 삭제한 후 변경사항을 커밋하고 저장소에 푸시할 수 있습니다.

git commit -m "git removed dont-ignore-this-file.doc "
git status
git push

결론