1강 - Git 설치 및 사용법 익히기 [Git으로 시작하는 협업 및 오픈소스 프로젝트 1강]
github.com 가서 새로운 Repository 만들기
https://git-scm.com/download/win 에서 git 설치
Git - Downloading Package
Downloading Git Now What? Now that you have downloaded Git, it's time to start using it.
git-scm.com
이후 git 명령프롬프트에서 git 명령을 테스트 해볼 수 있음
명령어 모음
git --version : 버전확인
# 내 컴퓨터 모든 프로젝트에 사용할 git 환경설정 만들기
git config --global user.name ####
git config --global user.email ####@###.com
아래 명령으로 세팅된 정보 확인 가능
git config --global user.name
git config --global user.email
이후 Remote Repository의 정보를 clone하기 위하여 cd 명령어로 데이터 저장할 폴더로 이동
# 데이터 clone하기
git clone https://github.com/YeongBinByeon/Git-Tutorial.git
YeongBinByeon/Git-Tutorial
나동빈 강의보며 따라하기. Contribute to YeongBinByeon/Git-Tutorial development by creating an account on GitHub.
github.com
※ 오픈소스 라이센스 ※
▶MIT License : 무료, 배포 가능, 소스코드 수정 가능, 2차 저작물 공개 의무 없음
▶Apache License : 무료, 배포 가능, 소스코드 수정 가능, 2차 저작물 공개 의무 없음
▶GPL : 무료, 배포 가능, 소스코드 수정 가능, 2차 저작물 공개 의무 있음
git status
# Staging Area에 위치하는 파일을 내려오게 만들 수 있음
git reset 파일명
# Staging Area에 추가
git add 파일명
# 모든 파일 한번에 add
git add .
# -m 옵션으로 Commit Message를 담아서 Staging Area에 있는 정보들을 Commit 수행
git commit -m "Add Text File [document.txt]"
# Remote Repository에 Push하기, 위에서 이미 clone한 폴더이기에 git push 명령어만 입력하면 push 된다.
git push
4강
git은 수정 내역 자체를 저장한다.
- Working Directory : 작업할 파일이 있는 디렉토리이다.
- Staging Area : 커밋을 수행할 파일들이 올라가는 영역.
- Git Directory : Git 프로젝트의 메타 데이터와 데이터 정보가 저장되는 디렉토리입니다.
git pull 명령어로 Remote Repository에서 Working Driectory로 데이터를 바로 가져올 수 있다.
※ 저장소에 대해서 ※
저장소는 실제 소스코드가 담겨 있으면서 커밋 내역 등의 모든 작업 이력이 담겨 있는 공간을 의미한다. 실제로 프로젝트의 메타 데이터를 포함해 각종 데이터는 .git 폴더에 담기게 된다. 실제로 이 폴더를 열어 보면 각종 데이터와 해시 값 등이 담겨있다.
어떠한 파일을 Commit 하게 되면 각 작업들을 분류하기 위해 내부적으로 해당 작업에 대한 해시 값을 이용하는 것이다.
일반적으로 해시 값은 충돌이 발생하지 않기 때문에 정확히 커밋 내역들을 관리할 수 있다.
5강 - 소스코드 수정하여 Git 저장소에 반영하기
# 수정된 내용을 반영하고 싶지 않을 때, 혹은 원래대로 돌려놓고 싶을 때
git checkout -- my.py
# 커밋 message 입력을 잘못 했을 때, 커밋 메시지 수정을 할 수 있음
git commit --amend
6강 - Git에서 커밋(Commit) 내역 수정하기 [Git으로 시작하는 협업 및 오픈소스 프로젝트 6강]
# 수정 내역 볼 수 있음
git log
# 특정 시점 이후의 커밋 내용은 모두 지우겠다는 의미, git log시 수정내역 전부 사라지는거 확인할 수 있음
git reset --hard <해쉬번호>
#그런데 reset하고 원격저장소에 push하려면 수정이력이 달라졌기에 에러가 난다.
#이럴때 git push -f 옵션으로 강제로 푸시할 수 있다. 로컬 저장소와 커밋 이력이 동일해진것을 확인할 수 있다.
git push -f
# Commit 내역 수정하기, 아래 명령어로 들어가서 로그 수정 후 강제 push하면 로그만 바뀐다.
git commit --amend
git push -f
7강 - Git 브랜치(Branch)의 개요 및 사용해보기
깃은 동시에 여러 개발자들이 프로젝트에서 다른 기능을 개발할 수 있도록 브랜치 기능을 제공한다.
# 현재 branch가 몇개 존재하는지 확인
git branch
#새로운 branch 생성
git branch <브랜치명>
# checkout 명령어로 다른 브랜치로 전환하기
git checkout <브랜치명>
다른브랜치에서 작업 후 통합할 master 브랜치로 checkout 한 다음 merge 명령어로 통합할 수 있다.
git checkout master
git merge <통합할 브런치명>
# 병합이 끝난 브랜치 제거하기
git branch -d develop
8강 - Git 브랜치 충돌(Conflict) 처리하기 [Git으로 시작하는 협업 및 오픈소스 프로젝트 8강]
일반적으로 서로 다른 2개의 브랜치에서 동일한 파일을 수정했는대 파일의 내용이 서로 다르면 merge를 할때 충돌이 일어날 수 있다.
서로다른 브랜치에 동시에 같은 파일을 수정하면 git log 명령을 입력했을 때 다른 브랜치의 수정이력이 나오지 않는다.
브런치간 파일의 내용이 달라졌기 때문이다.
이때 git merge <브런치> 명 입력하면 conflict 발생함. (특정한 소스코드의 라인이 완전히 다르기 때문임)
<<<<<<< HEAD
return a//b
=======
return a//b #주석
>>>>>>> develop
conflict message : ==== 기준 위쪽은 MASTER브랜치, 아래는 DEVELOP 브랜치임
이후 수동으로 살릴 코드만 저장하고
git add .
git commit 하면 정상 커밋 됨.
git merge <브랜치명>
git log 하면 master 브랜치와 토픽 브랜치 commit 내역이 동시에 나오며 정상 merge 된것 확인할 수 있음
역할을 다한 브랜치는 git branch -d <develop>으로 삭제
9강 - git으로 시작하는 협업 및 오픈소스 프로젝트
깃 파일 있는곳에서
git remote
# 원격 저장소에 대한 정보를 자세히 확인하고 싶을 때 사용하는 명령어
git remote show <origin:원격저장소명>
* remote origin
Fetch URL: https://github.com/----/---.git
Push URL: https://github.com/----/---.git
HEAD branch: master
Remote branch:
master tracked
Local branch configured for 'git pull':
master merges with remote master
Local ref configured for 'git push':
master pushes to master (up to date)
# 새로운 원격저장소 등록하기
git remote add <before:원격저장소이름> <https://github.com/@@@/@@@.git:깃주소>
# 성공적으로 원격저장소가 등록된 것을 볼 수 있다.
git remote -v
#원격 저장소 이름 바꾸기
git remote rename <before> <after>
#원격 저장소 제거하기
git remote rm <after>
----------------------------------
2022/02/25 추가
이전 했던 커밋을 반대로(취소) 하는 커밋 실행
git revert 32d879cdd504460452623a19d4ec933c278d5aaf
이전 했던 커밋을 반대로 되돌리는 상태로 local 되돌리고 커밋은 실행하지 않는 상태
보통 이전 버전으로 되돌리고 코드를 추가 할 일이 더 있으면 아래 명령을 사용한다.
git revert --no-commit 32d879cdd504460452623a19d4ec933c278d5aaf
댓글