이 포스팅은 빠르게 git - 핵심만 골라 배우는 Git/Github 과 다른 블로그를 참고하여 작성하였습니다.
git add <file_name> : 이름이 file_name인 파일을 tracked 상태로 등록 (stage 영역에 등록)출처
버전이 되기까지 거쳐가는 세 걔의 공간
git addgit commitgit status
git 상태 확인
git add 파일 이름
staging에 업로드
git rm --cached 파일
stating에 있는 파일 다시 워킹 디렉토리로 복귀
git add .
모든 변경 사항을 staging area 로 이동
git commit -m "commit message"
커밋 메시지와 함께 staging에 있는 파일 repository로 commit
git commit
길고 자세한 커밋 메시지를 작성할 수 있음
git commit -am "commit message"
한 번이라도 commit한 대상에 대해서만 add 와 commit 동시에 가능
git remote add origin <url>
url (리모트 레포지토리 주소)를 origin 이라는 이름으로 등록
git push -u origin main
origin 리모트 브랜치에 로컬 main 브랜치 내용을 푸시
git push -u origin main
1. origin 이라는 리모트 레포지토리에 main 브랜치를 생성
로컬 레포지토리의 main 브랜치 내용을 리모트 레포지토리의 main 브랜치에 보내라는 뜻
2. 여기서-u는 --set-upstream의 줄임말로, 이 옵션을 쓰면 로컬 레포지토리의 main 브랜치가 리모트 레포지토리의 main 브랜치를 항상 추적(tracking)하도록 설정 됨
3. 이런 관계를tracking connection이라고 하며, 리모트 레포지토리의 main 브랜치를 로컬 레포지토리의 main브랜치의업스트림 (upstream) 브랜치라고 함.
4. 이렇게 tracking connection이 설정되면 앞으로 로컬 레포지토리의 main 브랜치에서git push만 해도 자동으로 리모트 레포지토리에 main 브랜치에 내용을 전송하고,git pull만 해도 자동으로 리모트 브랜치의 main 브랜치의 내용을 가져온다.
수정한 것까지 통째로 reset option : --hard HEAD^
add한 것까지 reset option (기본 옵션) : --mixed HEAD^
commit 한 것까지 reset option : --soft HEAD^
HEAD^
- HEAD : 가장 최근 버전
- ^ : 하나 되돌리자
가장 최근 커밋으로부터 하나 전으로 되롤려라 : git reset --hard HEAD^
가장 최근 커밋으로부터 두개 버전 전으로 되돌려라 : git reset --hard HEAD^^
git diff
git revert
git log
옵션과 함께 사용하면 유용함~!
출처 블로그
※ untracked file은 reset 명령어로도 정리되지 않고 유지된다. untracked file도 제거하려면 clean 명령어를 사용해야 한다.
git clean -n (dry run)
dry run 옵션은 clean 명령어를 실행했을 때 삭제가 될 파일의 리스트를 보여준다.
git clean -nd
삭제할 파일과 디렉터리를 모두 보여준다.
git clean -f
오직 파일만 삭제된다.
git clean fd
untracked 디렉터리도 함께 삭제된다.
git branch <브랜치 이름>
새 브랜치 생성하기
git branch
현재 브랜치 목록 보기
git checkout <브랜치 이름>
브랜치 변경
병합
병합의 대상이 되는 브랜치에 checkout
git checkout main
git merge my_branch
즉, my_branch의 내용을 main 브랜치에 반영
git diff 비교대상commit 기준commit
비교대상 commit에 비해 기준 commit이 어떻게 달라졌는지 확인
git diff <비교대상 branch이름> origin/<branch 이름>
원격 저장소와 로컬 저장소 간 비교
git diff HEAD HEAD^
이전 commit과 전전 commit의 비교
git diff HEAD
아직 commit하지 않은 수정된 내용과 이전 commit과 비교
git diff <비교대상 branch이름> <기준 branch 이름>
브랜치 간의 비교
reset과 동일하게 commit을 되돌리는 방법
git revert <되돌리고 싶은 commit>git reset vs git revert
commit을 과거시점으로 되돌려준다는 점에서 결과적으로 같은 결과를 내지만, 되돌리는 commit까지의 이력이 사라지느냐의 여부에 차이가 있다.
git reset: 되돌린 버전 이후의 버전은 모두 사라짐, commit log을 깔끔하게 유지해주며 commit을 되돌림. 과거 자체를 바꾸는 명령어.git revert: 되돌린 버전 이후의 버전들은 모두 유지되고 revert되었다는 사실을 담은 commit만 새로 추가됨. 과거를 변경시켰다는 새로운 commit을 만드는 명령어 (단, -n 명령어를 쓰면 commit을 남기지 않을 수는 있음). revert보다는 안전한 명령어