git add는 작업 디렉토리상의 변경 내용을 스테이징 영역에 추가하기 위해 사용하는 명령어git add를 통해 changes to be commited(커밋할 변경사항)의 새 파일로 변경된다.git add .를 통해 한꺼번에 add 할 수 있다.git rm --cached 파일명을 통해 add한 파일을 삭제할 수 있다.git commit -m "커밋 메세지"를 통해 현재 변경사항을 커밋 메세지와 함께 기록git commit -am "커밋 메세지"를 통해 git add와 git commmit -m 기능을 동시에 할 수 있다.
그림출처 : https://iseunghan.tistory.com/322
git add하면 Staging Area로 이동되고 이후 commit 으로 Repository에 기록된다.git diff --staged등의 명령어로 Staging Area를 확인할 수 있다.commit --amend 명령으로 커밋을 고칠 수 있다.git branch를 통해 로컬 저장소에 현재 어떤 branch들이 있는지 확인git status를 사용해서 현재 내가 어떤 branch에 있는지 확인git branch 브랜치이름으로 브랜치 생성git checkout 브랜치이름으로 브랜치간의 이동git branch -d 브랜치이름으로 브랜치 삭제git push 저장소명 브랜치명git push 명령어를 사용하면 이런 오류가 발생한다.$ git push
fatal: The current branch my-feature has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin my-feature
To have this happen automatically for branches without a tracking
upstream, see 'push.default' in 'git help config'.
git push 명령어 뒤에 저장소명과 브랜치명을 적시 않아서 생기는 오류
-u옵션이나 --set-upstream을 사용하면 최초에 한 번만 저장소명과 브랜치 명을 입력하고 이후에는 모든 인자를 생략 할 수 있다.
여러 브랜치를 넘나들면서 작업하는 경우
git config --global push.default current 로 push.default 설정을 current로 설정하면 브랜치를 이동하며 push해도 항상 현재 브랜치를 기준으로 push명령어가 작동한다.원격 저장소의 프로젝트를 로컬 저장소로 가져오는 명령어
pull은 프로젝트를 가져올때 원격 저장소의 파일에 맞춰 로컬 저장소의 버전을 올린다(merge)
fetch는 파일을 가져오기만 하고 merge는 하지 않는다.
둘다 원본저장소의 파일을 그대로 복제하는 기능
fork는 gitHub내의 저장소로 원본 저장소의 파일을 가져옴
fetch와 pull을 통해서 나의 저장소에 적용시킬 수 있다.pull request를 요청해서 승인이 되면 적용 된다.clone은 내 로컬저장소로 원본 저장소의 파일을 가져옴
원본과의 연결이 끊긴 복사본
로컬저장소에서 새로 커밋할 것이 있어도 권한이 없으면 원본 저장소에 push할 수 없다.
원본 저장소의 commit기록, 로그도 알 수 없다.
call by value 느낌
forkclone 해서 수정, 커밋pull한 다음 push하면 된다.