-a : 숨김 파일과 디렉터리 함께 표시
-l : 파일이나 디렉터리 상세정보 함께 표시
-r : 파일 정렬 순서 reverse
-t : 파일 작성 시간 순으로(내림차순)
~ : 현재 접속 중인 사용자 홈 디렉터리(사용자 디렉터리) ex. c/User/사용자아이디
./ : 사용자가 작업 중인 디렉터리
../: 현재 디렉터리의 상위 디렉터리
--global
--local
깃은 버전을 저장할 때마다 그 버전을 만든 사용자 정도보 함께 저장함. 따라서 처음에 사용자 정보를 입력
git config --global user.name "Name"
git config --global user.email "Email"
깃을 초기화 -> 버전(commit) 관리, 원격repo(github) 와 연결 가능
git init
현재 브랜치 정보 및 파일 스테이징 정보 알려줌
git status
pull 해오기 전 작업이 끝나지 않은 파일들 임시저장
git stash : 저장
git stash list : stash list 조회
git stash pop : 가져오기
git stash drop :가장 최근 항목 삭제
git stash drop stash@{n} : 특정 stash(n번-id) 삭제
git stash clear : 모든 stash를 삭제
git checkout --파일
ex. git checkout --hello.txt
commit 생성 전 작업 내용 저장(스테이지에 수정 파일 추가)
git add 파일 ,
.(전체선택)
git reset HEAD 파일
ex) git reset HEAD hello.txt
git diff
git commit -m "commit message"
-am 옵션으로 <add + commit> 한번에 가능 (단, 이미 스테이징된 파일이어야 함.)
git commit -am "commit message"
commit 정보 확인
git log
--stat 옵션으로 파일 정보까지 확인 가능
git log --stat
--online: commit들을 한줄로 간단하게 보여줌.
git log --online
--branches 옵션을 통해 각 브랜치의 commit을 함께 볼 수 있음.
git log --online --branches
--amend 옵션으로 가장 최근(HEAD) commit 수정
git commit --amend "commit message"
😗 reset 옵션
--soft HEAD^: 최근 커밋을 하기 전 상태로 작업 트리를 되돌림.
--mixed HEAD^: 최근 커밋과 스테이징을 하기 전 상태로 작업 트리 되돌림. (default 옵션)
--hard HEAD^: 최근 커밋과 스테이징, 파일 수정 하기 전 상태로 작업 트리 되돌림. 이 옵션으로 되돌린 내용은 복구 불가함.
git reset HEAD^
(HEAD^는 현재 HEAD가 가리키는 브랜치의 최신 commit을 말함.)
git reset [커밋 해시]
커밋의 hash는 git log로 확인
git revert [commit hash]
revert 시 해당 commit 내용을 지운 revert commit을 새로 생성함.
git branch [생성할 branch 이름]
git branch
HEAD가 가리키는 branch 변경
git checkout [변경할 branch 이름]
-b 옵션으로 생성과 변경 한번에 가능
git checkout -b [branch 이름]
branch2에만 존재하는 commit들을 보여준다.
git log branch1..branch2
ex) git log main..apple -> main에 존재하지 않고 apple 브랜치에만 존재하는 commit을 보여줌.
기준 branch로 checkout 후 merge
git merge [병합될 branch]
--no-edit : 편잡가 살행X, 깃에서 지정하는 커밋 메세지 그대로 사용
--edit : 편집기 실행, 병합 메세지 수정 및 추가
git branch -d [삭제할 branch 이름]
지역 저장소(내 컴퓨터) 와 remote(원격 저장소, github) 연결
git remote add origin [URL]
origin: 깃허브 저장소 주소, 즉 [URL]
git clone [URL(복제할 remote 주소][복제한 data가 담길 폴더]
ex) git clone [URL] home
복제 시 자동으로 원격저장소와 연결됨.
remote에 연결됐는지 확인
git remote -v
지역 저장소의 브랜치를 origin(원격저장소)의 master 브랜치로 push
(-u 옵션, 처음 지역과 원격을 연결할 때 사용)
① git push -u origin master
② git push
여러 브랜치를 넘나 들면서 작업하는 경우 최초의 한번 인자는 넘기는 것도 귀찮음.
대부분의 경우 로컬repo와 원격repo가 동일한 branch 이름을 사용하기 때문에 현재 branch를 기준으로 git push 명령어가 작동되게 아래와 같이 설정
① git config --global push.defalut current
② git push
origin(원격저장소)의 내용, master 브랜치로 가져옴
git pull origin master
fetch로 가져온 원격저장소의 정보는 FETCH_HEAD로 가져옴.
커밋을 가져오기만 할 뿐, 병합을 하지 않음.
git fetch
정보 확인 시 FETCH_HEAD로 checkout
git checkout FETCH_HEAD
fetch 후 최신 커밋을 현재 브랜치로 가져올려면, FETCH_HEAD를 병합 or git pull
git merge FETCH_HEAD
git merge origin/master : 원격 master 브랜치에 있는 commit 병합
git merge origin/브랜치 이름 : 다른 원격 브랜치에 있는 commit 병합
git merge FETCH_HEAD : fetch로 가져온 지역 저장소에 반영되지 않는 최신 commit 병합.
-> 결론 git pull or git fetch/git merge FETCH_HEAD
Reference)
Do it. git & github 입문