[정리] GIT 간단 사용법
평소 git을 gui로만 사용해서 cli로 써보기위해 찾아봄.
명령어
-
commit
일종의 스냅샷. 코드를 add하고 commit 하면 새로운 버전의 스냅샷이 생성됨.
ex) git commit -m 'commit exaplain'
-
branch
특정 커밋에 대한 참조. 많이 만들어도 디스크나 메모리 공간에 부담이 되지않음. 매번 새로운 기능을 만들때 항상 branch를 여러개 만드는게 중요.
ex) git branch branchName (브랜치 생성), branch - f foo c3 (foo브랜치를 c3로 이동)
-
merge
두 브랜치를 합침.
ex) git merge foo (HEAD에 해당하는 브랜치와 foo 브랜치를 함침)
-
rebase
base를 새롭게 둠. commit을 새로운 commit 아래에서 새롭게 시작함.
ex) git rebase main (현재 커밋을 main 아래에 복사해둠)
-
checkout
커밋을 이동함
ex) git checkout foo (foo 브랜치로 이동)
-
cherry-pick
이름같이 체리처럼 행동함. 자기 아래로 다른 커밋들을 복사해 가져옴. rebase 대신해 사용가능.
ex) git cherry-pick c1 c2 c3 (c1,c2,c3 커밋을 복사해와 붙여줌)
-
reset
로컬 환경에서 HEAD에 해당하는 작업을 특정 커밋으로 되돌림. 애초에 커밋하지 않은 것처럼 작업함.
ex) git reset c1 (현재 HEAD 커밋을 c1으로 되돌림)
-
revert
원격 환경에서 사용됨. 특정 작업을 되돌리는데 변경사항을 원래대로 되돌리고 복사본을 commit함
ex) git revert c2 (c2`이 새로 커밋됨)
-
fetch
원격으로부터 로컬 환경을 동기화시킴.
원격 저장소에는 있지만 로컬에는 없는 커밋들을 다운받아오고, 로컬에 원격 브랜치가 가리키는 곳을 업데이트함(origin/main 같은)
그러나 로컬 환경을 변경시키지는 않음. 그래서 현재 작업중이라면 fetch가 안전함.
-
pull
git fetch + git merge origin/main. 가져와서 바로 머지시킴.
ex) git pull
merge 대신 rebase를 하고싶으면
ex) git pull --rebase
-
push
로컬 환경을 원격 환경에 동기화 시킴.
':'을 명시하면 방향성을 표시할 수도 있음.
ex) git push origin main (origin(원격) 에 main(로컬) 브랜치를 동기화해줌)
로그확인
-
log
ex) git log --graph (구체적 커밋 내역을 그래프로 확인)
ex) git log --graph --oneline --all (커밋 내역을 한줄로 확인)
GIT Repo 최조 생성시
로컬 환경이 없을때
echo "# jpabook_for_study" >> README.md
// readme 생성
git init
// 초기화
git add README.md
// readmd stage
git commit -m "first commit"
// commit
git branch -M main
// 현재 브랜치를 매인으로 정함
git remote add origin https://github.com/shininghyunho/jpabook_for_study.git
// 원격 연결
git push -u origin main
// 앞으로 git push만 해도 main이 올라감
로컬 환경이 있을때
git remote add origin https://github.com/shininghyunho/jpabook_for_study.git
git branch -M main
git push -u origin main
참고
Author And Source
이 문제에 관하여([정리] GIT 간단 사용법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@shininghyunho/GIT-GIT-간단-사용법저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)