이것저것

git과 github 설치 및 연동

기억보다는 기록을... 2024. 9. 20. 15:11

Git(깃) - 버전 관리 소프트웨어, 로컬 저장소에 모든 변경 사항을 기록하여 파일의 버전 관리를 용이하게 함.

Githut(깃헙) - Git을 기반으로 한 웹 호스팅 서비스, 클라우드 서버를 통해 로컬 저장소의 코드를 업로드 및 공유.

내 작업물을 공유할 수도 있고, 다른 사람의 작업물을 받아와서 작업할 수도 있음. (협업에 유리)

 

 

사전 준비

  • Git 설치 (작업용 장비, Ubuntu 22.04LTS 서버 사용)
# apt install git-all
# git --version
git version 2.34.1

 

 

로컬에 Github 정보 등록

  • "사용자명"과 "이메일"은 개인이 사용하는 정보로 등록
# git config --global user.name 사용자명
# git config --global user.email 이메일
# git config -l
user.name=사용자명
user.email=이메일

 

 

Git 로컬 저장소 등록

  • /home/git/workplace 로 등록
# pwd
/home/git

# mkdir workplace

# cd workplace/

# pwd
/home/git/workplace

 

 

Git 초기화

  • /home/git/workplace 로 이동하여 진행
  • 작업이 완료 되면 /home/git/workplace/.git 디렉토리가 생성 됨
# git init
Initialized empty Git repository in /home/git/workplace/.git/

# ls -al
drwxr-xr-x 7 root root 4096 Sep 20 14:09 .git

 

 

readme.md 파일 생성

  • README 파일은 주로 Github 프로필 혹은 Repository에 대한 설명을 나타내기 위해 작성.
  • /home/git/workplace 아래에 생성
# echo "# github repository" >> readme.md

# ls -al
-rw-r--r-- 1 root root   20 Sep 20 14:13 readme.md

# cat readme.md
# github repository

 

 

Git 상태 확인

  • git status 명령은 현재 작업 중인 브랜치(master) 커밋할 변경 사항, 추적되지 않은 파일등의 정보를 표시.
  • 파일 상태
    • Tracked files - 한번이라도 commit 하여 git이 버전을 관리하는 파일 (수정 내역을 계속 추적)
    • Untracked files - 한번도 commit 되지 않아 git이 버전을 관리하지 않는 파일 (수정 내역을 추적하지 못함)
# git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        readme.md

nothing added to commit but untracked files present (use "git add" to track)

 

 

저장(add) 및 commit

  • 저장(add)
# git add readme.md

# git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   readme.md
  • commit
    • -m 과 함께 커밋 메시지를 작성(변경 사항 기록)
    • git log 명령으로 commit 내역 확인 가능
# git commit -m "new readme file"
[master (root-commit) ffb3fdb] new readme file
 1 file changed, 1 insertion(+)
 create mode 100644 readme.md
 
# git status
On branch master
nothing to commit, working tree clean

# git log
commit ffb3fdb069bcf78eb7a17f0361eb04149c627a38 (HEAD -> master)
Author: 사용자 <이메일>
Date:   Fri Sep 20 14:23:08 2024 +0900

    new readme file

 

 

원격 repository 생성 (Github)

  • github 접속
  • 오른쪽 상단 "사용자 아이콘" 클릭 -> "Your repositories" 선택
  • 오른쪽 상단의 초록색 "New" 클릭하여 신규 repository(저장소) 생성
    • Repository name: 등록
    • Public 선택
    • Add a README file 체크 해제 (로컬에 생성한 readme 파일 사용)

 

  • 생성 된 repository(저장소) 확인

 

 

로컬 저장소와 원격 저장소 연결

  • /home/git/workplace 아래에서 진행
  • origin은 원격 저장소 별칭으로 원격 저장소 URL을 간략하게 표현하기 위해 사용
# git remote add origin https://github.com/사용자/github-repository.git

 

 

 

개인 액세스 토큰 생성

  • 깃헙 패스워드 대신 개인 엑세스 토큰을 사용하여 로그인
  • github 접속
  • 오른쪽 상단 "사용자 아이콘" 클릭 -> "Settings" 선택
  • 왼쪽 하단 " Developer Settings" 클릭
  • "Personal access tokens" - > "Tokens(classic)" - > "Generate new token" -> " Generate new token(classic)" 클릭 
    • "Note" 작성 및 " Expiration", "Select scopes" 선택 후 왼쪽 하단 초록색 " Generate token" 클릭 

 

  • 생성 된 토큰 코드를 별도로 기록 (노출 주의)

 

 

토큰 계정 등록 후 원격 저장소 전송

  • Username: 등록한 사용자명
  • Password: 토큰 코드 입력 (복사 된 내용 입력 시 화면에 아무것도 안 나옴)
# git push origin master
Username for 'https://github.com': 사용자
Password for 'https://이메일': 토큰 코드 입력
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 230 bytes | 230.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/사용자/github-repository.git
 * [new branch]      master -> master

 

 

원격 저장소 등록 확인