Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 향해99
- JavaScript
- JS
- next/link
- 유령 의존성
- 알고리즘
- react portal
- 프로젝트
- 원티드프리온보딩
- 회고록
- 광고지구
- CloudFront 무효화
- Til
- NVM
- jsEvent Loop
- input error
- NextJs
- Client-Side Navigation
- 원티드인턴십
- Passed by Value
- Mac OS NVM
- 인풋태그 엔터
- toast err
- 원티트 프리온보딩인턴십 1주차
- git
- CPU와 GPU의 차이점
- Node
- Redux
- react
- 식별자란
Archives
- Today
- Total
SUIN
내가 보려고 정리한 git 본문
728x90
git 작업 상태 기록
git init 파일명 // 깃 작업폴더 감시
git add 파일명1 -> git add file.txt
or
git add 파일명1 파일명2 -> git add file1.txt file2.txt
or
git add .(모든파일 스테이징) // 업로드파일 staging area
git commit -m ‘메세지’ // 작업 메세지 repository(저장소)
- staging area : commit을 하기 전에 commit 할 파일들을 골라놓는 곳
- 그리고 staging area에 파일 넣는 행위를 staging이라고 한다.
- repository : commit된 파일의 버전들을 모아놓는 곳
- git commit을 통해 repository(저장소)로 옮겨지게 된다.
Q. 얼마나 자주 commit 하는 게 좋을까?
- 간단한 기능을 하나 추가할 때마다 commit 하면 된다.(습관적으로 할 필요 없음)
예를 들어 웹 개발 시 회원가입 기능을 만든다고 하면
- 회원가입 폼 레이아웃을 만들면 commit 하고
- 입력한 이메일이 맞는지 검증하는 기능을 만들었으면 commit 하고
- 서버에 전송하는 기능을 만들었으면 commit 하고
이외 명령어
git status //변경된파일,staging 된 파일 확인
git restore --staged 파일명 //staging 된 파일 취소
git log --all --oneline //commit log 확인
git log --all --oneline --graph // 그래프 형식의 commit log 확인
// 종료시 q
commit file 비교 (difftool )
- commit 하기 전 현재 코드와 차이점을 확인하기 위한 용도로 사용
git difftool //최근commit과 현재파일 비교
- 방향키 - hjkl
- 종료키 - :q :qa
git difftool 커밋 아이디 //특정 커밋기록 비교
git difftool 커밋아이디1 커밋아이디2 //두 commit 비교
git branch
git branch 브랜치이름 //브랜치 생성
git switch 브랜치이름 //해당브랜치로 이동
git merge
git switch main //merge할 브랜치로 이동
git merge 브랜치명
다양한 merge방법
git branch -d 브랜치명 //merge완료된 브랜치 삭제
//merge하지 못한 브랜치의 경우 git branch -D 대문자로 삭제
git 복구 , 취소, 돌아가기 (restore/revert/reset)
restore
git restore 파일명 //해당파일의 최근 commit 상태로 돌아감
git restore --source 커밋아이디 파일명 //해당파일의 특정 상태의파일로 복구
git restore --staged 파일명 //특정 파일 staging 취소
revert
git revert 커밋아이디 //해당 id 작업의 commit 취소
or
git revert 커밋아이디1 커밋아이디2 (중복취소)
//i로 커밋메세지 글 수정
//:wq로 저장후 닫기
git revert HEAD //최근 commit 취소
reset
git reset --hard 커밋아이디 //특정 로그로 되돌리기 (과거로 되돌아가기)
//주의!:협업할떄 위험해서 사용하지 않음 .기존의 작업도 삭제되기때문에 공유된 코드가 삭제될 가능성이 있음
git reset --soft 커밋아이디 //리셋은 하지만 변경사항을 staging 에 남아있음(별도의 커밋가능)
git reset --mixed 커밋아이디 //리셋은 하지만 변경사항을 unstage 된 상태로 남아있음(별도의 스테이징 필요)
git push
로컬 저장소 → 원격 저장소
git push -u 원격저장소주소 브랜치이름
-u 옵션 : 입력한 주소를 기억해라 (이 이후에는 주소 입력 없이 git push로 가능 )
git remote add origin 원격저장소주소
//원격저장소주소 변수에 저장 가능
git clone https://원격저장소주소
//원격 저장소 주소 내려받기
git pull
- 원격과 로컬 저장소의 내용이 다르다면 push가 되지 않는 상황이 발생하게 된다(merge conflict). 이는 다른 사용자와 협업을 할 때 자주 방생되게 되는데 이런 경우 git pull 통해 원격 저장소의 내용을 가져온 후 push가 가능하다
git pull 원격저장소주소
- git pull 명령어는 git fetch + git merge 축약어
- git merge: fetch 된 내용을 merge 하라는 뜻
- git fetch: 원격 저장소에 있는 commit 중에 로컬에 없는 신규 commit을 가져오라는 뜻
pull request
- 로컬 저장소에서 바로 merge를 할 수도 있지만 협업을 할 때 팀끼리 merge를 하기 전 검토 과정을 거치게 된다.
push 후 해당 레포의 pull reqst 요청을 통해 검토 후 merge 진행
'Git' 카테고리의 다른 글
[git] git Organizations 연결하기 (2) | 2022.11.04 |
---|---|
git 로컬 > 원격저장소 대소문자 폴더명 수정 (0) | 2022.08.29 |
다양한 Git merge 방법 알아보기(3-way merge/fast-forward merge/rebase and merge/squash and merge) (0) | 2022.08.09 |