Rubberduck-Debugging

[2일차] 버전관리시스템, git 상태, gitignore 본문

개발자/20181127 교육과정

[2일차] 버전관리시스템, git 상태, gitignore

P缶 2018. 11. 28. 11:20


버전 관리 시스템

로컬 버전 관리 시스템 
  • 예) 이클립스  (이클립스도 지가 알아서 변경사항 저장하는 기능 있음)
  • (오른쪽클릭 > compare with > local history 하면 볼 수 있다)


분산 버전 관리 시스템
  • 저장소 전부를 복제한다.
  • 변경 내력(history)까지 모두 복제한다.(리눅스 개발자가 중앙집중식 관리시스템 때문에 빡쳐서 3개월만에 만듬)
  • 예) Git


*.Git 폴더
Git 폴더 안 .git 폴더는 절대 수정하지 말것!! git의 변경 이력을 직접 저장, 관리하기 때문이다.

*working directory 
.git이 아닌 다른 모든 폴더를 뜻함


Staging Area
  • .git 디렉토리에 존재하는 단순한 파일.
  • commit 할 파일의 정보(스냅샷이라 부른다)를 담고 있다.
  • git commit을 실행하면 스냅샷에 기록된 파일이 저장소에 보관됨.
  • 커밋을 한 후에는 Staging Area는 새 스냅샷을 준비한다.


Git 파일의 상태 변화

다음은 Git 명령에 따른 파일의 상태 변화를 보여준다.

         Working Directory         | Staging Area | .git Directory(Repository)
[Untracked] [Unmodified] [Modified]|[   Staged   ]|[  Committed  ]    
-----------------------------------|--------------|---------------------------
    +------------------------------------->>                      : git add
                              +----------->>                      : git add(무대에 올라가서 대기하는 상태)
                                           +------------->>       : git commit(깃으로 떠난 상태. 끝)
                  <<-----------------------+                  
                  +---------->>                                   : 파일 편집
    <<------------+                                               : 파일 삭제


1. 무대에 올리기 전 -> ??
2. 수정하고 저장하면 -> M
2. ADD하면, 즉 무대에 올리면 -> A

4. commit 명령어 시 A가 뜬, 무대에 올라간 것만 커밋이 된다. 그러면 더이상 앞에 ??도 알파벳도 보이지 않은ㅁ.
무대에만 올려놓고 또 수정을 하면, AM이 뜬다. 이때 커밋하면 A만 커밋이 되고, 무대에 안 올라간 M은 그냥 남아있는것

GIT LOG 명령어 -> 이제까지 COMMIT한 언어를 해시태그로, 이력을 확인 가능
 

.gitignore

  • Git으로 관리하지 않을 파일을 지정한다.(commit해도 업로드 안됨)
=> classpath같은 경우 user마다 이름이 다르기 때문에, 제외해주지 않으면 오픈소스 공유해도 상대방 컴에서 동작하지 않음

/표시는 하위의 내용은 무시하겠다는 말


예) 


.classpath .project

.class
.log
.gradle/
.settings/
bin/
build/
temp/
.vscode
.DS_Store
node_modules/
security.properties
!build.gradle

git tag

  • 존재하는 태그를 조회한다.

git pull

  • git pull = git fetch origin + Merge
  • 즉 원격 저장소의 데이터를 가져온 후에 로컬 파일과 합친다.

git push [원격 저장소 이름] [로컬 브랜치 이름]

  • 로컬 저장소 브랜치를 원격 저장소로 업로드(push) 한다.

git remote

  • 현재 프로젝트에 등록된 원격 저장소를 확인하거나 추가한다.
  • git clone [url]으로 원격 저장소를 복제하면 원격 저장소가 origin 이라는 이름으로 자동 등록된다.

git log

  • Git 저장소의 변경 내력을 조회한다.

git status

  • 작업 파일의 상태를 조회한다.

git clone [url] [폴더]

  • url로 지정한 서버의 저장소를 로컬로 복제한다.



세부사항은 해당 지식 출처 링크 추천

https://github.com/eomjinyoung/bitcamp-cloud-computing/blob/master/bitcamp-docs/git-user-guide/git-user-guide-basic.md





'개발자 > 20181127 교육과정' 카테고리의 다른 글

[4일차]  (0) 2018.11.30
[3일차]  (0) 2018.11.29
WAS(Web Application Server)  (0) 2018.11.27
1일차. 이런저런 지식  (0) 2018.11.27
WEBAPP과 WAS와 JVM 종류  (0) 2018.11.27