$ git init [project name] : 현재 위치에 로컬 리포지토리 생성
$ git clone [url] : 현재 위치에 해당 주소 리포지토리 생성
$ git status : 커밋 되지 않은 추가 되거나 바뀐 파일들을 표시
$ git diff : Staged 되지 않은 파일중 변화된 것을 표시
$ git diff --cached : Staged 된 파일중 변화된 것을 표시
$ git diff HEAD : Staged 나 Unstaged 상태인 파일중 변화된 것을 표시
$ git diff commit1 commit2 : 두 커밋 사이에서 변화가 있는 것을 표시
$ git blame [file] : 파일이 변화된 날짜와 바꾼 사람의 이름을 표시
$ git show [commit] : [file] : 커밋된 아이디나 파일중 바뀐것을 표시
$ git log : 로그 히스토리 모두 표시
$ git log -p [file/directory] : 파일이나 디렉토리에 있는 로그 히스토리 표시
$ git branch : 로컬에 존재하는 모든 branch 표시
$ git branch -av : 로컬과 remote에 있는 모든 branch 표시
$ git checkout my_branch : branch를 'my_branch'로 바꾼뒤 현재 디렉토리를 업데이트 한다.
$ git branch new_branch : 'new_branch'라는 이름의 branch를 새로 생성
$ git branch -d my_branch : 'my_branch'라는 이름의 branch를 삭제
$ git checkout branch_b : 'branch_b'를 'branch_a'에 합병시킨다.
$ git merge branch_a$ git tag my_tag : 현재 커밋에 태그 한다.
$ git add [file] : 커밋을 하기위해 파일을 Staged 상태로 만든다.
$ git add . : 현재 디렉토리 내에 있는 모든 바뀐 파일들을 Staged 상태로 만든다.
$ git commit -m "commit message" : staged 된 파일들을 커밋한다.
$ git commit -am "commit message" : tracked 된 파일들을 커밋한다.
$ git reset [file] : 파일을 Unstaged 상태로 만들고 파일의 바뀐 상태를 유지한다.
$ git reset --hard : 가장 최근 커밋까지 모두 되돌린다.
$ git reset HEAD^ : [file] : 가장 최근 커밋만 되돌린다.(^수 만큼 되돌리는 커밋수 증가)
$ git fetch : origin에서 가장 최근 바뀐 점을 가져온다.(합치지 않는다)
$ git pull : origin에서 가장 최근 바뀐 점을 가져온다.(합친다)
$ git pull --rebase : 오리진에 가장 최근에 변경된 것들을 가져와 새로운 베이스를 만들어준다.
$ git push : 로컬에서 바뀐 것을 오리진에 push
$ git command --help : 도움말 호출!!
git 커밋 해보기
- Code States 에서 제공해준 레포지토리를 이용하여 pair와 함께
커밋을 해보는 활동을 해봤다.
기본적인 단계
1. 주어진 URL에서 내 깃헙으로 레포지토리를 Fork 해온다.
2. 내 로컬 레포지토리로 파일들을 가져온다.
$ git clone [Fork 한 내 URL]
3. 페어의 깃 헙 레포지토리를 지정해주고 연결이 되었는지 확인한다.
$ git remote add pair [pair의 URL]
$ git remote -v
4. 생성되어 있는 README파일을 수정후 Staged 상태로 바꿔준 후 커밋을 한다.
$ git add .
$ git commit -m 'change'
5. 깃헙에 있는 내 레포지토리에 바뀐 파일을 올린다.
$ git push origin main
6. 여기까지 페어도 동일하게 따라 한 뒤 내 레포지토리에서 파일을 가져온다.
$ git pull pair main
7. 커밋된 파일의 이름이 동일하므로 Merge Error가 발생한다.
8. 에러를 고친후 다시 커밋을 해준다.
$ git add .
$ git commit -m 'change2'
9. 마지막으로 변경된 파일을 다시 내 레포지토리에 올린다.
$ git push origin main
내용 자체는 간단 했지만, 예상 외의 상황이 너무 많이 나와서 시간이 많이 걸렸다. 간단하게 하고 끝날줄 알았는데 생각보다 헷갈려서 여러번 해보고 나서야 어느정도 감을 잡을수 있었다. Pair분 과 처음 시작했을때 오류가 연달아 나와서 많이 당황했는데 차분하게 이유를 분석하시고 문제를 해결해 나가셔서 옆에서 많은 걸 배울수 있었다.