* git clone은 Github의 모든 파일들을 가져오기만 함
* git pull은 local repository와 비교하여 병합하고, local repository에 저장(add)까지 수행
git pull = git fetch + git merge
git fetch : local에 연결된 remote repository의 브랜치 목록과 그 파일 내용을 최신으로 업데이트 하는 명령어(local과 remote의 싱크를 맞추는 새로고침 역할)
git merge : 두 개의 branch를 병합하는 명령어
→ 즉, 단순히 원격 저장소의 내용을 확인만 하고 로컬 데이터와 병합은 하고 싶지 않은 경우에는 fetch 명령어를 사용
*zip파일 : .git 폴더가 없는 채로 소스만 받을 수 있으므로, local에서 Git을 새롭게 꾸려나가야한다.
*clone : .git 폴더까지 포함해서 소스를 받을 수 있다.
*pull : remote repository에 저장된 파일을 가져와 local repository의 내용을 갱신한다. / 병합(merge)과정이 발생
해당 remote repository에 권한이 있어야 pull명령어를 실행할 수 있다.
* git add --update
현재 Git이 추적하고 있는 파일들만 add
* git rm --cached 파일이름
add했을 때, 되돌리고 싶을때 사용(Staging area에서만 제거하고 working directory유지하는 명령어)
* git commit --amend -m "수정된 메시지"
마지막 커밋메시지 잘못 작성했을 경우 다시 커밋하여 수정
*git remote add origin 원격저장소주소 : 자신의 로컬 저장소를 원격 저장소로 연결시키겠다는 명령어
→ origin은 원격 저장소의 주소가 너무 길기 때문에 앞으로 origin이라는 별칭을 만들어 사용하겠다는 의미.
(보통 관습적으로 자신의 로컬 저장소의 직접적인 연결이 되어있는 저장소는 origin이라 붙여준다.
*git push -u origin master
→ -u옵션은 push하는 기본 브랜치를 origin master로 지정하겠다는 의미로 최초에 한 번만 사용하면 된다.
앞으로 그냥 git push 해주면 됨
*풀 리퀘스트(Pull requests)
기능 개발을 끝내고 master에 바로 병합(merge)하는 것이 아니라, 브랜치를 중앙 원격 저장소에 올리고 master에 병합(merge)해달라고 요청하는 것
9. reset과 revert의 차이점
그렇다면 언제 git reset을 쓰고 언제 git revert를 사용할까요?
git reset은 remote repository까지 컨트롤할 수 없습니다.
커밋 이력이 삭제되므로, remote와 싱크가 안맞아서 결국 push 할 수 없습니다.
따라서 이미 원격 저장소에 push를 한 상태에서 되돌리고 싶다면 git revert를 사용해야 합니다.
병합 과정에서는 revert 명령어가 더 먼 과거의 버전으로 돌아갈 수 있다는 점이 다르네요.
[ 출처 ]
https://victorydntmd.tistory.com/category/Git
https://victorydntmd.tistory.com/74
https://gmlwjd9405.github.io/2017/10/27/how-to-collaborate-on-GitHub-1.html
'git > github' 카테고리의 다른 글
[GIT] 실행취소와 Commit 삭제: reflog, reset, checkout, revert (0) | 2019.09.02 |
---|---|
git ignore (0) | 2019.09.02 |
git 삭제하기 (0) | 2019.09.02 |
git 되돌리기 (0) | 2019.09.02 |