git config --global user.name "(본인 이름)"
git config --global user.email "(본인 이메일)"
git config --global user.name
git config --global user.email
git config --global init.defaultBranch main
git init
git remote add (원격 저장소 이름) (원격 저장소 주소)
-> git remote add origin (원격 저장소 주소)
보통 원격저장소 이름을 origin이라고 설정한다.
git remote (-v)
git remote remove (원격 저장소 이름)
git push -u origin main
-> origin이라고 설정한 원격저장소의 main 브랜치와 연결하겠다. + 올리기
( -u
는 --set-upstream
을 의미)
-> 이 이후로는 git push만으로 올리기 가능
이미 원격저장소에 있는 것을 다운 받아서 사용할 경우
git clone (원격 저장소 주소)
git status
git log
(like 소스트리)
git log --all --decorate --oneline --graph
# 이렇게 #를 사용해서 주석
# 모든 file.c
file.c
# 최상위 폴더의 file.c
/file.c
# 모든 .c 확장자 파일
*.c
# .c 확장자지만 무시하지 않을 파일
!not_ignore_this.c
# logs란 이름의 파일 또는 폴더와 그 내용들
logs
# logs란 이름의 폴더와 그 내용들
logs/
# logs 폴더 바로 안의 debug.log와 .c 파일들
logs/debug.log
logs/*.c
# logs 폴더 바로 안, 또는 그 안의 다른 폴더(들) 안의 debug.log
logs/**/debug.log
note.txt라는 파일 담기
git add note.txt
현재 폴더에 있는 거 다 올리기
git add .
(2)번의 커밋메시지까지 한번에 하기(수정할때만 가능)
git commit -am "(메시지)"
한번에 바로 메시지 담기
git commit -m "FIRST COMMIT"
Vi 모드에서 작성하기
git commit
git push
git pull
일단, push는 안됨
git pull --no-rebase
git push
-> 로컬과 원격의 어긋난 시간선을 모아준 다음에 내 꺼를 push 하는 느낌
git pull --rebase
git push
-> 원격의 데이터를 먼저 붙이고, 내 꺼를 이어서 붙이는 방식
일단, push는 안됨
git pull --no-rebase
충돌 해결하기(읽으면서)
git add (해당 파일)
git push
git pull --rebase
충돌 해결하기(읽으면서)
git add (해당 파일)
git rebase --continue
(필요에 따라) git commit && git push
git push --force
로컬의 커밋에 억지로 맞추는 명령어
git log
git log
해당 시점의 커밋만 변경
git revert (되돌릴 커밋 해시)
해당 시점의 커밋만 변경 (이 변경 내용조차 커밋에 안올리기)
git revert --no-commit (되돌릴 커밋 해시)
git branch (브랜치명)
git branch
git switch (이동할 브랜치명)
과거에는 checkout를 사용했지만,
checkout -> switch와 restore로 분리함
git branch -d (삭제할 브랜치명)
(EX, 다른 브랜치로 적용되지 않은 내용의 커밋이 존재할 경우)
git branch -D (삭제할 브랜치명)
git branch -m (기존 브랜치명) (새 브랜치명)
git push origin --delete (원격의 브랜치명)
git branch new-sub
git push -u origin new-sub
origin이라는 이름을 가진 원격저장소의 new-sub이라는 브랜치와 연결하고 파일을 올리자
브랜치의 사용 내역들을 남겨둘 필요가 있을 때 사용.
TIP
merge는 reset으로 되돌리기 가능
git switch main
git merge (합칠 브랜치명sub)
git branch -d (합쳐진 브랜치명sub)
히스토리를 깔끔하게 만드는 게 중요할 때 사용.
git merge (합칠 브랜치명sub)
git rebase main
git merge (합칠 브랜치명sub)
main의 시점을 잠깐 멈추고,
앞에 브랜치를 연결시키고,
main의 시점을 앞의 연결된 브랜치 앞으로 이동시키는 느낌
git branch -d (합쳐진 브랜치명)
<<<<<< HEAD
이름 : 오의석
=======
이름 : oh
>>>>>>> sub
윗 줄이 현재 브랜치, 아랫 줄이 병합될 브랜치
git merge --abort
충돌난 부분을 찾아서 수정하기. 그 후에, 아래 명령어 진행
git add (수정한 파일)
git commit
<<<<<< HEAD
이름 : 오의석
=======
이름 : oh
>>>>>>> sub
윗 줄이 현재 브랜치, 아랫 줄이 합병될 브랜치
git rebase --abort
충돌난 부분을 찾아서 수정하기. 그 후에, 아래 명령어 반복
git add (수정한 파일)
git rebase --continue
git add (수정한 파일)
git rebase --continue
git add (수정한 파일)
git rebase --continue
합병될 브랜치들의 커밋들을 차례대로 확인하며, 어느 코드가 맞는 지 확인하는 작업입니다.
이어서 아래 내용을 함으로써 병합하고, 해당 브랜치를 삭제합니다.
git switch main
git merge sub
git branch -d sub
(최신 메타 데이터 정보만 확인)
git fetch
git switch -t origin/sub-branch
origin이라는 저장소의 sub-branch라는 브랜치를 로컬에 생성하고 연결하겠다.