Git
Git 시작하기
linux 명령어
- 현재 경로 내 디렉터리와 파일 리스트 출력: ls -al
- 디렉터리 생성: mkdir <디렉터리명>
- 디렉터리 이동: cd <경로>
- 디렉터리 삭제: rmdir <디렉터리명>
- 파일 생성 및 파일 날짜 시간 변경: touch <파일명>
- 텍스트 문서 확인: cat <파일명>
- 파일 복사: cp <원본파일명> <복사본파일명>
설치 후 git 최초 설정하기
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
git 저장소 만들기
$ git init
git 변경사항 저장하기 add & commit
파일 변경 -> add -> commit
$ touch README.md
$ git add README.md
$ git commit -m 'first commit'
or
$ git commit
vi에디터로 commit message 작성하기
$ git commit
<commit 제목>
<commit 내용>
- i -> insert mode
- 작성
- esc -> :wq (write하고 quit)
- git commit 로그 확인
Git 변경사항 확인하기
로그 확인 명령어
$ git log
git 로그 변경사항과 함께 확인
$ git log -p
한줄로 로그 출력 ( 짧은 커밋 해시 값 확인가능)
$ git log --oneline
최근 커밋과 작업 디렉터리 비교
$ git diff
최근 커밋과 현재 스테이지 비교
$ git diff --staged
커밋 간 변경 사항 확인하기
커밋 비교, hash1이 과거, hash2가 최신일 때
hash1 커밋에서 hash2 커밋으로의 변경사항을 확인
commit_hash1 -> commit_hash2
$ git diff <commit_hash1> <commit_hash2>
기존 저장소 clone 하기
원격 저장소로부터 로컬로 저장소를 가져온다.
$ git clone <gitHubAddress>
파일 상태 확인하기
$ git status
git 무시 파일 목록 작성
git에 올리지 말아야 할 파일, 디렉터리 지정
$ cat .gitignore
워킹 디렉터리와 Staging Area에 있는 것을 비교
$ git diff
브랜치(Branch)
분기는 나무에서 큰 줄기의 나뭇가지처럼 메인(main)에서 갈라져 나온 서브 브런치.
현재 브랜치 확인
$ git branch
새 브랜치 만들기
$ git branch <newbranch>
브랜치 이동하기
$ git checkout <newbranch>
한 번에 만들고 이동하기
$ git checkout -b <newbranch>
브랜치 삭제
$ git checkout -d <deleteBranch>
브랜치 이름 변경
$ git checkout -M <oldBranch> <newBranch>
병합(Merge)
서브 브런치에서 메인 브런치로의 병합
Fast forward 병합
master 브런치에서 갈라져 나온 다른 브런치 foo가 master 브런치 이후의 커밋을 가리키고 있을 때 master 브런치가 foo 브런치와 동일한 커밋을 가리키도록 이동
$ git merge foo
병합 충돌
master에서 foo 브런치를 병합할 때 충돌이 생긴다면, 직접 선별하고 해결하여
병합된 커밋을 생성한다.
커밋 되돌리기
git commit --amend
최근의 커밋의 커밋 내용을 변경할 수 있음
git revert
$ git revert <되돌릴 커밋>
기존 커밋이 있을 때 관련된 변경 사항을 되돌리고 이를 새로운 커밋으로 만들어 기록
즉 해당 커밋만 되돌리고 되돌린 변경 사항을 새 커밋으로 작성
git reset
Head를 지정된 상태로 재설정
- --soft: Head를 지정된 상태로 재설정하고 변경 사항이 스테이징되어 있음
- --mixed: Head를 지정된 상태로 재설정하고 색인만 재설정(기본값)
- --hard: Head를 지정된 상태로 재설정하고 색인과 작업 트리를 재설정
$ git reset --soft <되돌아갈 커밋>
$ git reset --mixed <되돌아갈 커밋>
$ git reset --hard <되돌아갈 커밋>
리모트 저장소
다른 곳에 위치한 원격 저장소이다
원격 저장소 받기
$ git clone <remote repository>
리모트 저장소 확인
$ git remote -v
리모트 저장소 추가하기
$ git remote add <지정할 remote 이름> <remote 주소>
fetch
저장소의 변경 사항을 가져오지만, merge 하지는 않는다.
git fetch origin main
$ git log FETCH_HEAD
pull
저장소의 변경 사항을 가져와서 현재 분기에 통합
git pull origin main
gui로만 쓰다가 cli로 사용하는 방법을 자세히 배울 수 있어 좋은 시간이었다.
'내일배움캠프' 카테고리의 다른 글
230517 aws lambda 함수를 호출하여 이미지 업로드 (0) | 2023.05.17 |
---|---|
230516 python 해싱 세션으로 비밀번호 인증 (0) | 2023.05.16 |
2305012 python 가상환경 생성 venv (0) | 2023.05.12 |
미니프로젝트 mongodb에서 데이터 넣기, 가져오기 (0) | 2023.05.11 |
미니프로젝트 영화 추천 서비스 슬라이더 작업 (0) | 2023.05.10 |