호다닥

Day 12. Git 본문

바닐라코딩

Day 12. Git

3jun 2018. 6. 16. 15:22

hello() 함수가 실행될 때, 일반함수 호출방식으로 실행되었기 때문에 hello 함수의 this 값은 window이다. 


yellow 함수는 즉시 실행 함수이다. 즉시 실행 함수도 일반 함수 호출 방식이기 때문에 역시 window이며, jellow 또한 마찬가지이다. 





call은 javascript 함수의 method이다. call method는 첫번째 인자값으로 message라는 string을 받고,

index 값이 2보다 작은 경우에는 false가 출력될 것이고, index값이 2부터는 true가 출력된다. 

filter라는 method는 return 값이 배열이다. 때문에 String 값 3,4를 가진 배열이 나오게 된다.

call을 실행하면 바로 앞의 method가 실행된다. 


hasOwnProperty 는 변수에 할당하여 사용한다.

var a = obj.hasOwnProperty ('name');

console.log(a);


obj에 name 프로퍼티가 있는지 확인한다. 


객체라는 것은 원래 순번이 없다. 때문에 반드시 같은 순서로 나올 것이란 보장은 없다. 

따라서 객체가 출력되는 순번에 의존해서 어떠한 코드를 짜서는 안된다. 



Javascript의 Object 생성자 함수에는 defineProperty라는 method가 있다. 

defineProperty의 첫번째 인자에는 객체를 넣어주고 두번째 인자로 내가 만들어주고 싶은 속성의 이름을, 세번째는 속성에 해당하는 값을 넣어줄 수 있다. 

enumerable : false 를 defineProperty에 넣어주면 반쯤 숨겨진다. 단, 직접적으로 접근은 가능하다.




definePropeties는 다르다. 







Basic Git

Git : A version control system for tracking changes in computer files and coordination work on those files among multiple people.

  • 파일 변경 사항을 추적해주는 프로그램
  • 협력 개발을 도와주는 프로그램
  • 누가 언제 무엇을 수정했는지 알 수 있게 해주는 프로그램
  • 다시 과거 시점의 상태로 돌아갈 수 있게 해주는 프로그램


Version Control

  • 사용자가 코드와 그 코드의 히스토리를 사용자 컴퓨터에 보관함
  • 인터넷 접근이 필요없음
  • (클라우드에 있는 정보를 업데이트하거나 받아올 때를 제외)



Git     Snapshots

Git이 코드 히스토리를 기억하는 방식이다. 

주어진 시점에 파일들이 어떻게 생겼는지를 기록한다. 

시점은 우리가 선택하여 기록해달라고 명령한다. 

기록된 과거 시점으로 돌아가서 다시 볼 수 있다.

기록된 가장 최신 시점으로 돌아가서 다시 볼 수 있다. 


Commit

Snapshot을 생성하는 행위

동사 또는 명사로 쓰인다. ( "나는 커밋했어요", "새 커밋 방금 만들었어요.")

기본적으로 Git 프로젝트는 수 많은 커밋들로 이루어져 있다. 

각 Commit은 크게 세 가지 정보를 보관합니다.

  1. 파일 변경 사항
  2. 바로 이전 Commit, 즉 "parent commit"
  3. Commit hash ( 각각의 commit들이 가지는 고유한 id값 )
Repository
줄임말로 Repo라고 주로 부른다.
모든 파일들과 그 파일들의 히스토리가 모여있는 곳
모든 Commit을 포함하고 있는 곳
개인 컴퓨터나 클라우드 서버(Github)에 있다. 
클라우드에서 복사해서 다운받는 행위를 Clone이라고 한다. 
Clone을 함으로서 협업이 가능해진다. 
내 컴퓨터에 없는 내용을 클라우드로부터 추가적으로 다운로드 받는 행위를 Pull이라고 한다. (유사:Fetch)
내 컴퓨터의 변경 사항을 클라우드에 추가하는 행위를 Push한다고 한다. 

Branch
모든 Commit들을 Branch 내에 존재한다. 
Branch는 아주 많이 있을 수 있다. 
Git에서 메인 Branch는 "master" Branch이다. 


보통 하나의 프로젝트는 하나의 Repository에 담겨 있고, 여러개의 Branch들이 있고, 각각의 Branch에는 수많은 Commit 들이 담겨 있습니다. 

좋은 Git Tutorial Site




HEAD
현재 Branch의 가장 마지막 Commit.

여러가지 상황마다 의미가 살짝 다를 수도 있다. 

Master

모든 프로제그의 가장 중심이 되는 Branch 이름 ( 항상 그런 것은 아니지만 거의 100%)





Commit 만들기

파일 변경 사항을 히스토리 기록에 남겨야겠다고 생각할 때, 해당 변경 사항을 스테이지에 올려야 합니다. 

스테이지에 올린다는 것은, 우리가 수정한 파일 내역 중에 다음 Commit에 포함하고 싶은 사항들을 예약하는 것입니다. 

스테이지에 올라가 있는 사항들만이 Commit에 추가됩니다.


git add

변경 사항을 스테이지에 추가하는 명령어

'git add' 뒤에는 스테이지에 추가하고 싶은 파일 경로명~~~


#현재 디텍토리 내의 index.html의 모든 수정 사항을 스테이지에 추가

git add src/

git add  . 


기록에 남기고 싶은 수정 사항들을 스테이지에 올렸다면 마지막 단계


git commit -m "어쩌고 저쩌고 블라블라.."  

메시지에는 커밋에 대한 내용 등을 써주면 된다. 


이렇게 하고나면 Commit 완료

이제 Commit에 포함된 수정 사항들의 상태는 언제든지 다시 돌아가서 볼 수 있습니다 .



git log

내가 현재 위치한 branch의 commit history를 최신순으로 보여준다. 

그만 보고 싶다면 q를 누르면 됩니다.




Git hub를 사용하는 이유

다른 사람들과의 협업을 위해

나 홀로 버전 관리를 위해

백업을 위해



#리모트 저장소 목록 보기

git remote -v


#리모트 저장소 추가하기

git remote add REMOTE_NAME REMOTE-URL


ex) git remote add origin https://github.com/123.git

보통 일반적으로 가장 주된 리모트 저장소는 "origin"이라고 이름 짓는다. 


#리모트에 브랜치 반영하기

git push REMOTE_NAME BRANCH_NAME


ex) git push origin master    (origin이라는 리모트 저장소를 이미 추가해뒀기 때문에 origin에 push할 수 있다. )


#리모트 브랜치 업데이트 사항 가져오기 









'바닐라코딩' 카테고리의 다른 글

Day14. ES6  (0) 2018.06.21
Day 13. Review / DOM & CSSOM  (0) 2018.06.19
Day 11. Event Loop  (0) 2018.06.14
Day 9,10. Server/Client/HTTP, AJAX  (0) 2018.06.14
Day 8. protoype  (0) 2018.06.07
Comments