
Git은 버전관리시스템으로 알려져 있고, VSC(version control system)로 줄여서 말하기도 합니다.
이미 지정되어 있는경우 언제든 변경이 가능합니다.
git config --global user.name "Jung Jinu"
이름을 확인할 경우
git config user.name
원하면 언제든 변경이 가능합니다.
git config --global user.email jinwoo5092@gmail.com
이메일을 확인할 경우
git config user.email
버전 관리 시스템(VCS)을 사용하여 소스 코드, 설정 파일, 문서 등을 추적하고 관리하는 공간입니다. 쉽게 말하면, 프로젝트의 모든 변경 사항을 기록하고 이전 버전으로 되돌릴 수 있는 시스템이라고 생각하면 됩니다. https://git-scm.com/docs git에 대해 더 알고싶으면 공식문서를 참조할것.
git clone 명령을 사용하여 로컬 컴퓨터에 저장소를 복제하면 origin이라는 별명으로 원격 저장소가 설정됩니다.
git 저장소에서 현재 작업 상태를 확인하는 데 사용하는 명령어입니다.
git status
git init
git status)를 확인하여 실수로 서로 저장소를 중첩하지 않도록 하는 것이 좋습니다.git add test.txt
commit하기 전에 변경 사항을 Staging Area에 추가하는 명령어입니다. git add로 파일들을 그룹화 하여 커밋할 수 있습니다. 예를 들어, "src" 디렉토리에 있는 모든 파일을 한 그룹으로 하고, "docs" 디렉토리에 있는 모든 파일을 다른 그룹으로 하여 커밋할 수 있습니다.git add src/file1.txt src/file2.txt src/file3.txt # 공백으로 구분합니다.
git add docs/doc1.md docs/doc2.pdf
git add . # 변경된 모든 파일을 한 번에 커밋 준비 상태로 만드는 역할을 합니다.
git commit -m "파일1.txt 수정 및 파일2.txt 추가"
commit합니다. commit을 할 때, 변경 사항과 작업을 요약한 커밋 메시지를 제공해야 합니다. git commit 명령어를 실행하기 전에 git status 명령어를 사용하여 Staging Area에 있는 파일 목록을 확인합니다.git commit 명령어와 함께 커밋 메시지를 작성합니다. 커밋 메시지는 변경 사항을 요약하고 의도를 명확하게 전달해야 합니다.git commit --amend # 가장 최근 커밋을 수정하는 기능을 제공
git commit --amend 명령어를 실행하면 마지막 커밋이 Staging Area에 다시 추가되며, Staging Area에 있는 파일을 수정하거나 추가할 수 있습니다.예시 - 마지막 커밋에 파일 추가
# 마지막 커밋에 누락된 파일 추가
git add file.txt
# 마지막 커밋 수정
git commit --amend
# 커밋 메시지 입력
# ...
# 마지막 커밋에 파일이 추가된 새로운 커밋 생성
git commit
저장소에 있는 커밋의 시간순 목록을 표시하는 데 사용되는 Git 명령입니다. 커밋 해시, 작성자, 날짜, 커밋 메시지, 변경된 파일 목록 등의 정보를 포함하여 저장소에 대한 커밋의 자세한 기록을 제공합니다.
git log # 최근 커밋 목록
git log -p # 커밋 메시지와 파일 내용
git log -s # 커밋 요약
git log --oneline # - 7자리 커밋 해시, 작성자, 날짜, 커밋 메시지를 한 줄에 포함
git log -gragh # 커밋 그래프
git log --abbrev-commit # 커밋 해시를 7자리로 줄여서 출력 (기본 40자리)

Github는 클라우드에서 Git 저장소를 호스팅하고 다른 사람들과 더 쉽게 협업할 수 있도록 하는 서비스입니다. Github를 사용하려면 계정에 가입해야 합니다. Git을 사용하여 완료된 작업을 공유할 수 있는 온라인 장소입니다.
git clone [원격 저장소의 URL 주소]
# 원격 저장소의 파일을 로컬 작업 디렉토리로 복제합니다.
git push [원격 저장소명]
# 로컬 변경 사항을 원격 저장소로 푸시합니다.
# 원격 저장소의 이름을 지정하지 않는 경우 origin으로 기본 설정 됩니다.
git push [원격 저장소명] [브랜치 이름]
# 로컬에서 특정 브랜치의 변경 사항을 원격 저장소로 푸시합니다.
# ex) git push origin mian
git push -u [원격 저장소명] [브랜치 이름]
# 로컬 브랜치의 변경 사항을 원격 저장소의 특정 브랜치로 푸시하고,
# 트래킹 브랜치로 설정합니다. 이를 통해 이후에는 git push 명령어만으로
# 변경 사항을 해당 원격 저장소의 브랜치로 푸시할 수 있습니다.
git push <remote> <local-branch>: <remote-branch>
# 로컬 브랜치의 변경 사항을 원격 저장소의 지정된 브랜치로 푸시합니다.
git push를 하기 전에 git pull을 먼저 실행하여 원격 저장소의 최신 변경사항을 로컬에 적용하면, 로컬과 원격 저장소 간의 충돌을 미리 방지할 수 있습니다.git remote
# 현재 저장소에 연결된 원격 저장소의 이름을 출력합니다.
git remote -v
# 이 명령어는 현재 설정된 모든 원격 저장소의 이름, URL, 추적하는 브랜치 정보를 출력합니다.
git remote add [원격 저장소명] [원격 저장소 URL]
# 새로운 원격 저장소를 추가합니다.
# 원격 저장소의 이름을 지정하지 않는 경우 origin으로 기본 설정, 사용자 지정이 가능합니다.
git remote rename [기존 이름] [새로운 이름]
# 원격 저장소의 이름을 변경합니다.
git remote remove [원격 저장소명]
# 원격 저장소를 제거합니다.
git fetch [원격 저장소명]
# 원격 저장소에서 최신 변경 사항을 가져옵니다.
git fetch [원격 저장소명] [브랜치 이름]
# 원격 저장소에서 특정 브랜치의 최신 변경 사항을 가져옵니다.
# ex) git fetch origin mian
pull 하기 전에 변경된 내역들만 가져와서 확인시켜주는 기능입니다.pull 하기 전에, 어떠한 변경 내역들이 있는지 변경 내역에 대한 로그를 확인하고 신중히 결정한 후에 pull 할 수 있는 기능입니다.git fetch를 사용하면 원격 저장소의 커밋 히스토리를 로컬의 원격 추적 브랜치로 가져옵니다. 그러나 이는 현재 작업 중인 브랜치에는 반영되지 않습니다. 따라서 git log 명령어를 사용하면 원격 저장소의 최신 커밋 히스토리를 볼 수 없습니다. 원격 저장소의 최신 커밋 히스토리를 확인하려면 git log origin/main과 같은 명령어를 사용해야 합니다.git pull [원격 저장소명]
# 지정된 원격 저장소에서 최신 변경 사항을 가져와 현재 작업 디렉토리에 병합합니다.
git pull [원격 저장소명] [브랜치 이름]
# 지정된 원격 브랜치의 최신 변경 사항을 가져와 해당 작업 디렉토리에 병합합니다.
# ex) git pull origin mian
git pull을 사용하면 원격 저장소의 변경사항을 바로 로컬 작업 디렉토리에 적용하기 때문에 충돌이 발생할 수 있습니다. 특히, 원격 저장소의 변경사항과 로컬 작업 디렉토리의 변경사항이 충돌하는 경우에 이러한 문제가 발생할 수 있습니다.
git fetch는 원격 저장소의 최신 커밋 히스토리를 로컬로 가져오지만, 로컬 작업 디렉토리의 파일을 실제로 바꾸지는 않습니다. 이로 인해 원격 저장소와 로컬 저장소 사이의 차이점을 확인하고, 필요한 경우 병합 전에 충돌을 방지하거나 수정할 수 있습니다. 반면,git pull은 원격 저장소의 변경 사항을 바로 로컬 작업 디렉토리에 적용하므로, 변경 사항을 검토하는 단계 없이 바로 충돌이 발생할 수 있습니다.
⭐️ Github Basics Exercise ⭐️
⭐️ Oh My Git ⭐️