VCS의 저장 방식과 버전 관리 방식

VCS(Version Control System)란?

VCS(Version Control System)는 버전 관리 시스템을 말합니다. 대표적으로는 깃(Git)이 있습니다. VCS는 소프트웨어 개발에서 변경 이력을 관리하고, 여러 버전을 저장하며, 협업과 소스 코드의 안정성을 유지하기 위해 사용됩니다.

VCS의 저장 방식

VCS의 버전 관리 시스템의 저장 방식은 대표적으로 델타 방식과 스냅샷 방식이 있습니다.

스냅샷 방식
  • 스냅샷 방식은 파일 시스템의 스냅샷처럼 특정 시점의 프로젝트 전체를 그대로 저장합니다.
  • 각각의 커밋은 전체 프로젝트 디렉토리 구조와 파일의 스냅샷을 저장합니다.
  • 변경된 파일만을 저장하는 것이 아니라, 전체 상태를 스냅샷으로 저장하여 버전 간의 비교가 용이합니다.
  • 장점: 이해하기 쉬우며, 변경된 내용의 추적과 롤백이 간편합니다. 파일 손상이나 손실로부터 복구하기도 쉽습니다.
  • 단점: 대용량 프로젝트의 경우 스냅샷을 저장하고 관리하는 데 디스크 공간이 많이 필요할 수 있습니다. 하지만 압축 및 차이점 저장 기술을 통해 이러한 문제를 완화할 수 있습니다.
델타 방식
  • 델타 방식은 파일의 변경 내용을 이전 버전과의 차이점으로 저장하는 방식입니다.
  • 이전 버전과의 차이를 델타(Delta)라고 하며, 변경된 내용만을 저장하여 디스크 공간을 절약합니다.
델타 방식의 한계
  • 대부분의 경우 파일의 변경 내용은 작은 부분만 변경되기 때문에 델타 방식이 유용할 수 있습니다. 하지만 파일이 크게 수정되거나 큰 파일을 다루는 경우에는 델타 계산이 복잡해지고 비효율적일 수 있습니다.
  • 파일 간의 의존성이 높은 경우에는 델타 계산이 복잡해지며, 이로 인해 저장 및 복원 시간이 길어질 수 있습니다.
Git이 스냅샷 방식을 선택한 이유

VCS의 대표적인 깃은 스냅샷 방식을 선택했습니다.
선택한 이유는 아래와 같습니다.

  • 변경 내용을 스냅샷으로 저장함으로써 버전 간 비교가 간편하며, 프로젝트의 전체 상태를 보존할 수 있습니다.
  • 현대적인 디스크 공간이 저렴하게 사용 가능하므로 전체 프로젝트의 스냅샷 저장에 큰 문제가 없습니다.
  • Git은 압축 및 차이점을 효율적으로 저장하여 스냅샷 방식의 장점을 최대한 활용하고 불필요한 디스크 사용을 최소화합니다.

VCS의 버전 관리 방식

VCS의 버전 관리 방식은 크게 중앙집중식 버전 관리 시스템과 분산 버전 관리 시스템이 있습니다. 이 두 방식은 프로젝트의 협업과 버전 관리를 어떻게 다루는지에 대한 접근 방식에서 차이가 있습니다.
깃은 분산 버전 관리 시스템을 활용해 설계되었습니다.

중앙집중식 버전 관리 (Centralized Version Control)

중앙집중식 버전 관리 시스템은 하나의 중앙 서버에 프로젝트의 모든 버전 정보가 저장되며, 개발자들은 이 중앙 서버에서 코드를 가져오고 변경 사항을 커밋합니다.

특징

  • 중앙 서버에는 전체 프로젝트의 버전 정보가 저장되어 있어, 개발자들은 중앙 서버로부터 코드를 체크아웃하고 커밋합니다.
  • 개발자들은 중앙 서버에 의존하므로 오프라인 작업이 어려울 수 있습니다.
  • 협업 시에는 중앙 서버를 통한 코드 공유와 충돌 해결이 필요합니다.
분산 버전 관리 (Distributed Version Control)

분산 버전 관리 시스템은 모든 개발자들이 각자의 로컬 저장소를 가지고 있으며, 중앙 서버와의 동기화를 통해 협업하고 버전을 관리합니다. Git은 분산 버전 관리 시스템의 대표적인 예입니다.

특징

  • 각 개발자는 자신의 로컬 저장소에서 작업을 진행하며, 중앙 서버에 접근하지 않아도 작업이 가능합니다.
  • 로컬 저장소에서 커밋하고 변경 내용을 추적할 수 있으며, 중앙 서버와 동기화할 때 변경 내용을 업데이트합니다.
  • 협업 시에도 각자의 로컬 저장소에서 작업하고 변경 내용을 공유하므로 중앙 서버에 의존하지 않고도 독립적으로 작업할 수 있습니다.
  • 충돌이 발생했을 때 중앙 서버에 의존하지 않고 로컬에서 충돌을 해결하고 업데이트할 수 있습니다.

 


http://www.yes24.com/Product/Goods/84803146

 

Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문 - YES24

생활코딩 강의에서 52개를 엄선, 한 권 안에 자주 쓰는 기능은 모두 담았다.문서 지옥, 깃&깃허브로 하루 안에 탈출한다!본서는 대학생, 개발자, 일반 사무직까지. 문서 지옥에 빠진 모두를 위한

www.yes24.com

⌜Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문⌟ 책을 공부하며 요약・정리한 내용입니다.


 

제목

# 제목1
## 제목2
### 제목3
#### 제목4
##### 제목5
###### 제목6

가로 줄

---

--------

- - -

***

************

* * *

이 방법중 하나 사용하면 된다.

순서가 있는 목록

1. 순서가 있는
2. 목록은
3. 이렇게 번호를 붙여 나타낼 수 있다.

순서 없는 목록

- 순서가 없는 목록은
- *, +, - 를 붙여서 나열하면
- 자동으로 글머리 기호가 붙는다.
	- tab으로 들여 쓰면 여러 단계를 가진
	- 목록을 만들 수 있다.

텍스트 강조

  • 굵게 : 텍스트 앞뒤를 ** 또는 _ _로 감싼다.
  • 기울임체 : 텍스트 앞뒤를 * 또는 _로 감싼다.
  • 굵은 기울임체 : 텍스트 앞뒤를 *** 또는 _ _ _로 감싼다.
  • 취소선 : 텍스트 앞뒤를 ~~로 감싼다.

인용

인용문의 앞에 > 를 추가 인용문 안에 또 다른 인용문을 삽입하려면 >> 를 추가

> 인용문1
>> 인용문2

소스 코드

한 줄 : 앞뒤에 `(그래이브(grave)) 를 붙인다. 여러 줄 : 앞뒤에 를 붙이고뒤에 프로그래밍 언어를 지정한다.

한 줄짜리 소스 코드는 `System.out.println("hello java");` 처럼 사용한다.

여러 줄 소스 코드
```python
for i in range(10):
	print("i")
print()

 

 

링크

  1. <링크 주소>
  2. [링크 텍스트](링크 주소)
  3. [링크 텍스트](링크 주소, “부가 설명”)

1번 : 링크 주소가 그대로 화면에 나타나고 누르면 해당 주소로 이동한다. 2번 : 링크 텍스트만 나타나며 텍스트를 누르면 괄호에 입력한 주소로 이동한다. 3번 : 이동할 링크 주소 옆에 부가 설명을 넣으면 결과 화면에서 링크 텍스트 위로 커서를 올렸을때 부가 설명한 내용이 말풍선 형태로 나타난다.

```markdown
<www.daum.net>

[네이버](www.naver.com)

[구글](www.google.com, "구글로 이동")
```

이미지

맨 앞에 !를 붙인 후 대체 텍스트와 이미지 파일 경로를 지정한다. 그런데 이미지 파일이 경로를 가지려면 웹에 올라와 있어야 한다.

![이미지 대체 텍스트](이미지 주소)

 


https://www.instagram.com/p/Ccz4tSMp4Q6/?utm_source=ig_web_copy_link

부족하거나 잘못된 내용이 있을 경우 댓글 달아주시면 감사하겠습니다.

이 글에 부족한 부분이 존재할 경우 추후에 수정될 수 있습니다.


 


http://www.yes24.com/Product/Goods/84803146

 

Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문 - YES24

생활코딩 강의에서 52개를 엄선, 한 권 안에 자주 쓰는 기능은 모두 담았다.문서 지옥, 깃&깃허브로 하루 안에 탈출한다!본서는 대학생, 개발자, 일반 사무직까지. 문서 지옥에 빠진 모두를 위한

www.yes24.com

⌜Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문⌟ 책을 공부하며 요약・정리한 내용입니다.


 

 

원격 저장소 복제하기 - git clone

원격 저장소를 기존에 연결된 지역 저장소 외에 다른 지역 저장소에서 사용하려면 원격 저장소에 담긴 내용 전체를 지역 저장소로 가져와야 한다.

원격 저장소를 지역 저장소로 똑같이 가져오는 것을 ‘복제한다’고 하거나 ‘클론(clone)’ 또는 ‘클로닝(cloning)’이라고 한다.

git clone [복사한주소] [복제할디렉터리]

github에서 클론할 HTTPS 주소를 복사해서 사용한다.

이렇게 원격 저장소를 복제하면 자동으로 지역 저장소와 원격 저장소가 연결된다. 복제한 디렉터리에서 git remote -v 명령을 통해 연결되어있는지 확인할 수 있다.

컴퓨터에서 내려받아 작업하기

다른 컴퓨터에서 커밋을 푸시했을 경우 내 컴퓨터에서 원격 저장소를 복제했을 때와 원격 저장소의 커밋 상황이 달라진다.

따라서 내 컴퓨터에서 작업하려면 먼저 원격 저장소에 새로 올라온 커밋을 가져와야 한다.

git pull

git pull 명령을 입력하면 앞에서 원격 저장소에 새로 올라온 커밋을 가져온다.

하나의 원격 저장소에 둘 이상의 컴퓨터를 연결해서 사용한다면 풀과 푸시를 습관화 하는 것이 좋다!

 

 

원격 브랜치 정보 가져오기 - git fetch

pull 명령은 원격 저장소의 커밋을 가져와서 무조건 지역 저장소와 합치지만,

fetch 명령은 원격 브랜치에 어떤 변화가 있는지 그 정보만 가져온다.

팀 작업을 수행할때 다른 사람이 수정한 소스를 훑어보고 지역 저장소와 합치고 싶을때 fetch를 사용해 커밋을 가져온다음 지역 저장소와 함치면 된다.

git fetch

 

 

 

 

 

 

 


 

https://www.instagram.com/p/CbwiIUJL3gW/?utm_source=ig_web_copy_link

부족하거나 잘못된 내용이 있을 경우 댓글 달아주시면 감사하겠습니다.

이 글에 부족한 부분이 존재할 경우 추후에 수정될 수 있습니다.


 


http://www.yes24.com/Product/Goods/84803146

 

Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문 - YES24

생활코딩 강의에서 52개를 엄선, 한 권 안에 자주 쓰는 기능은 모두 담았다.문서 지옥, 깃&깃허브로 하루 안에 탈출한다!본서는 대학생, 개발자, 일반 사무직까지. 문서 지옥에 빠진 모두를 위한

www.yes24.com

⌜Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문⌟ 책을 공부하며 요약・정리한 내용입니다.


 

원격 저장소에 연결하기

git remote add origin [깃허브저장소주소]

원격 저장소에 origin을 추가(add)하겠다고 알려주는 명령

origin 은 깃허브 저장주소를 가리킨다. 깃허브 저장소 주소를 그대로 쓰면 너무 길기 때문에 origin 이라는 단어로 줄여서 remote에 추가하는 것이다.

(깃에서 기본 브랜치를 master라고 하는 것처럼 기본 원격 저장소에는 origin이라는 이름을 사용)

git remote -v

원격 저장소(remote)에 제대로 연결됐는지 확인하는 명령

 

 

지역 저장소의 소스를 원격 저장소로 올리는 것을 ‘푸시(push)’

원격 저장소에서 지역 저장소로 내려받는 것을 ‘풀(pull)’

원격 저장소에 파일 올리기 - git push

git push -u origin master

지역 저장소의 브랜치를 origin, 즉 원격 저장소의 master 브랜치로 푸시하라는 명령

‘-u’ 옵션은 지역 저장소의 브랜치를 원격 저장소의 master 브랜치에 연결하기 위한 것으로 처음에 한 번만 사용하면 된다.

이후 새로운 커밋을 하고 푸시할때는

git push

만 해주면 된다. 앞에서 지역 저장소의 브랜치와 origin의 master 브랜치를 연결했기 때문이다.

원격 저장소에서 파일 내려받기 - git pull

git pull origin master

origin(원격 저장소)의 내용을 master 브랜치로 가져온다는 명령(기본 원격 저장소가 origin이고 지역 조장소의 기본 브랜치가 master이기 때문에 ‘git pull’만 입력해도 된다.)

 

 

 

 


https://www.instagram.com/p/Cbuq0B1JYWl/?utm_source=ig_web_copy_link

부족하거나 잘못된 내용이 있을 경우 댓글 달아주시면 감사하겠습니다.

이 글에 부족한 부분이 존재할 경우 추후에 수정될 수 있습니다.



http://www.yes24.com/Product/Goods/84803146

 

Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문 - YES24

생활코딩 강의에서 52개를 엄선, 한 권 안에 자주 쓰는 기능은 모두 담았다.문서 지옥, 깃&깃허브로 하루 안에 탈출한다!본서는 대학생, 개발자, 일반 사무직까지. 문서 지옥에 빠진 모두를 위한

www.yes24.com

⌜Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문⌟ 책을 공부하며 요약・정리한 내용입니다.


cf) ‘git init [디렉터리명]’ : 새로운 디렉터리를 만들고 저장소를 초기화하는 과정을 한꺼번에 처리 할 수 있다.

서로 다른 파일 병합하기

git merge [병합할브랜치명]

두 브랜치에서 서로 다른 파일을 병합하는 경우 간단하게 해결 가능

 

cf) 브랜치를 병합할 때 편집기 창이 열리지 않게 하려면

git merge [병합할브랜치명] --no-edit

‘--no-edit’ 옵션을 추가하면 편집기 창을 열지 않고 깃에서 지정하는 커밋 메세지를 그대로 사용

git merge [병합할브랜치명] --edit

브랜치를 병합할 때 편집기 창이 나타나지 않도록 설정한 경우, 커밋 메시지를 추가하거나 수정하고 싶을때 ‘--edit’ 옵션 사용

 

 

같은 문서의 다른 위치를 수정했을 때 병합하기

git merge [병합할브랜치명]

이때도 간단하게 병합 가능

 

 

같은 문서의 같은 위치 수정했을 때 병합하기

깃에서는 줄 단위로 변경 여부를 확인한다. 그래서 각 브랜치에 같은 파일 이름을 가지고 있으면서 같은 줄을 수정했을 때 브랜치를 병합하면 브랜치 충돌(conflict)이 발생!

충돌이 생긴 문서는 자동으로 병합될 수 없어서 사용자가 직접 충돌 부분을 해결한 후 커밋해야 한다.

 

 

병합이 끝난 브랜치 삭제하기

저장소의 기본 브랜치에서 삭제해야 한다.

git branch -d [삭제할브랜치명]

‘Deleted branch ~’ 메세지가 나타나면 성공적으로 삭제된것

삭제한 브랜치는 같은 이름으로 다시 브랜치를 만들면 예전 작업했던 내용이 그대로 나타난다. 즉 브랜치를 삭제한다는 것은 완전히 저장소에서 없애는 것이 아니라 깃의 흐름 속에서 감추는 것이다.

 

 

 

 

브랜치에서 checkout과 reset의 작동 원리

HEAD : 현재 작업 트리(워킹 디렉터리)가 어떤 버전을 기반으로 작업 중인지를 가리키는 포인터

HEAD는 기본적으로 master 브랜치를 가리킨다.

브랜치는 기본적으로 브랜치에 담긴 커밋 중에서 가장 최근의 커밋을 가리킨다.

‘git checkout’명령을 통해 HEAD가 가리키는 브랜치를 변경할 수 있다.

 

브랜치가 여러 개일때 현재 브랜치가 아닌 다른 브랜치에 있는 커밋을 골라 최신 커밋으로 지정할 수 있다.

git log --online --branches

‘git log’ 명령을 사용해 원하는 커밋의 커밋 해시를 확인하고

git reset [커밋해시]

‘git reset’ 명령(2장 참고)를 통해 커밋 해시를 입력하면 된다.

이렇게 git reset 명령을 사용하면 현재 브랜치가 가리키는 커밋을 여러 브랜치를 넘나들며 제어할 수 있다. 그리고 기존에 가리키고 있던 커밋은 연결이 끊기면서 삭제된다.

 

 

정리하면

git checkout 명령을 사용해 HEAD를 제어해서 브랜치를 이동할 수 있고 git reset 명령을 사용해 HEAD가 가리키고 있는 브랜치의 최신 커밋을 원하는 커밋으로 지정할 수 있다. 이때 어떤 브랜치에 있는 커밋이든 지정할 수 있으며, 명령을 수행한 뒤 브랜치와 연결이 끊긴 커밋은 삭제된다.

 

수정 중인 파일 감추기 및 되돌리기 - git stash

git stash 명령을 사용하려면 파일이 tracked 상태여야 한다.(한 번은 커밋한 상태여야 한다.)

git statshsave
git stash

둘 다 같고 커밋하지 않은 수정 내용을 보관하는 명령

여러 파일을 수정한 후 따로 보관할 수 있으며, 이렇게 감춘 파일들은 stash목록에서 확인할 수 있다.

git stash list

가장 먼저 감춘 것은 stash@{0} 에 들어있고

다른 파일이 추가되면 기존 파일은 stash@{1}로 옮겨지고 새로 추가된 파일이 stash@{0}에 담긴다.

 

git stash pop

git stash pop을 이용해 이렇게 감춘 파일을 수정하거나 커밋할 수 있는데 stash 목록에서 가장 최근 항목을 되돌린다.

 

cf) stash apply, stash drop

git stash apply

stash 목록에서 가장 최근 항목을 되돌리지만 저장했던 내용은 그대로 남겨둔다.

git stash drop

stash 목록에서 가장 최근 항목을 삭제한다.

 

 

 

 

 


https://www.instagram.com/p/CbhkT8xrD5y/?utm_source=ig_web_copy_link

부족하거나 잘못된 내용이 있을 경우 댓글 달아주시면 감사하겠습니다.

이 글에 부족한 부분이 존재할 경우 추후에 수정될 수 있습니다.


 


http://www.yes24.com/Product/Goods/84803146

 

Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문 - YES24

생활코딩 강의에서 52개를 엄선, 한 권 안에 자주 쓰는 기능은 모두 담았다.문서 지옥, 깃&깃허브로 하루 안에 탈출한다!본서는 대학생, 개발자, 일반 사무직까지. 문서 지옥에 빠진 모두를 위한

www.yes24.com

⌜Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문⌟ 책을 공부하며 요약・정리한 내용입니다.


 

새 브랜치 만들기

git branch

브랜치를 확인하는 명령

git branch [브랜치명]

[브랜치명] 브랜치 생성

 

브랜치(branch) 사이 이동하기 - git checkout

git checkout [다른브랜치명]

이동할 브랜치 명을 입력하면 입력한 브랜치로 이동한다(체크아웃한다)

 

 

 

git log --oneline --branches

‘--branches’ 옵션을 사용하면 각 브랜치의 커밋을 함께 볼 수 있다.

git log --oneline --branches --graph

‘--graph’옵션을 사용하면 커밋 관계도 보여준다.

 

브랜치 사이의 차이점 알아보기

브랜치 이름 사이에 마침표 두 개(..)를 넣는 명령으로 브랜치 사이의 차이점을 확인할 수 있다.

git log master..apple

master 브랜치와 apple 브랜치의 차이점을 확인할 수 있다.

이렇게 하면 master 브랜치에는 없고 apple 브랜치에만 있는 커밋을 보여준다.

git log apple..master

반대는 apple브랜치에는 없고 master 브랜치에만 있는 커밋을 보여준다.

 

 

 


https://www.instagram.com/p/Cbc0JH9vKra/?utm_source=ig_web_copy_link

부족하거나 잘못된 내용이 있을 경우 댓글 달아주시면 감사하겠습니다.

이 글에 부족한 부분이 존재할 경우 추후에 수정될 수 있습니다.


 


http://www.yes24.com/Product/Goods/84803146

 

Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문 - YES24

생활코딩 강의에서 52개를 엄선, 한 권 안에 자주 쓰는 기능은 모두 담았다.문서 지옥, 깃&깃허브로 하루 안에 탈출한다!본서는 대학생, 개발자, 일반 사무직까지. 문서 지옥에 빠진 모두를 위한

www.yes24.com

⌜Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문⌟ 책을 공부하며 요약・정리한 내용입니다.


 

작업 트리에서 수정한 파일 되돌리기 - git checkout

git checkout -- hello.txt

 

스테이징 되돌리기 - git reset HEAD 파일 이름

git reset HEAD hello2.txt

 

최신 커밋 되돌리기 - git reset HEAD^

스테이징하고 커밋까지 했을 때 사용

git reset HEAD^

cf) 최근 3개의 커밋을 취소하려면 ‘git reset HEAD~3’ 이렇게 사용

 

추가 git reset 명령 옵션

명령설명

--soft HEAD^ 최근 커밋을 하기 전 상태로 작업 트리를 되돌린다.
--mixed HEAD^ 최근 커밋과 스테이징을 하기 전 상태로 작업 트리를 되돌린다. 옵션 없이 git reset 명령을 사용할 경우 이 옵션을 기본으로 작동
--hard HEAD^ 최근 커밋과 스테이징, 파일 수정을 하기 전 상태로 작업 트리를 되돌린다. 이 옵션으로 되돌린 내용은 복구할 수 없다.

 

특정 커밋으로 되돌리기 - git reset 커밋 해시

  • reset A를 입력한다면 이 명령은 A 커밋을 리셋한느게 아니라 최근 커밋을 A로 리셋하는 것이다. 즉 A 커밋을 삭제하는 것이 아니라 A 커밋 이후 만들었던 커밋을 삭제하고, A 커밋으로 이동한다는 뜻이다.
git reset --hard [커밋해시 예:18ec5db743db5bb83bfa905425fb5099368a254f]

 

커밋 삭제하지 않고 되돌리기 - git revert

커밋을 되돌리더라도 취소한 커밋을 남겨두어야 할 때 사용

  • 앞의 reset의 경우는 돌아가고 싶은 커밋 해시를 지정했지만, revert의 경우 취소하려는 버전의 커밋 해시를 지정한다.

revert 명령을 실행할 때는 깃에 지정한 기본 편집기가 나타나면서 커밋 메시지를 입력할 수 있다.

 

 

 

 

 


https://www.instagram.com/p/CWZj95_vFWL/?utm_source=ig_web_copy_link

부족하거나 잘못된 내용이 있을 경우 댓글 달아주시면 감사하겠습니다.

이 글에 부족한 부분이 존재할 경우 추후에 수정될 수 있습니다.


 


http://www.yes24.com/Product/Goods/84803146

 

Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문 - YES24

생활코딩 강의에서 52개를 엄선, 한 권 안에 자주 쓰는 기능은 모두 담았다.문서 지옥, 깃&깃허브로 하루 안에 탈출한다!본서는 대학생, 개발자, 일반 사무직까지. 문서 지옥에 빠진 모두를 위한

www.yes24.com

⌜Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문⌟ 책을 공부하며 요약・정리한 내용입니다.


커밋 기록 자세히 살펴보기 - git log

git log

지금까지의 버전과 버전마다 설명이 함께 나타난다.

변경 사항 확인하기 - git diff

git diff

작업 트리에 있는 파일과 스테이지에 있는 파일을 비교하거나, 스테이지에 있는 파일과 저장소에 있는 최신 커밋을 비교해서 수정하는 명령

 

 

 

tracked : 한 번이라도 버전을 만들어서(커밋해서) tracked 상태인 파일

  • tracked 상태는 unmodified, modified, staged 상태로 나뉜다.

untracked : 한 번도 깃에서 버전 관리를 하지 않아서(커밋을 하지 않아서) 수정 내역을 추척하지 않는 상태

 

 

                  |                    tracked                    |

untracked | unmodified | modified | staged

        |---------------스테이징--------->

                             |--파일수정-->

                                                    |-스테이징->

                             <---------커밋-----------|

 

 

방금 커밋한 메시지 수정하기

git commit --amend

 

 

 

 

 


https://www.instagram.com/p/CZasMJ_P9k8/?utm_source=ig_web_copy_link

부족하거나 잘못된 내용이 있을 경우 댓글 달아주시면 감사하겠습니다.

이 글에 부족한 부분이 존재할 경우 추후에 수정될 수 있습니다.



http://www.yes24.com/Product/Goods/84803146

 

Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문 - YES24

생활코딩 강의에서 52개를 엄선, 한 권 안에 자주 쓰는 기능은 모두 담았다.문서 지옥, 깃&깃허브로 하루 안에 탈출한다!본서는 대학생, 개발자, 일반 사무직까지. 문서 지옥에 빠진 모두를 위한

www.yes24.com

⌜Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문⌟ 책을 공부하며 요약・정리한 내용입니다.


깃 초기화 - git init

$ git init

‘git init’ 명령을 입력하면 깃을 사용할 수 있도록 디렉터리를 초기화하는 것이다.

‘Initialized empty Git repository in [디렉터리경로]’

라는 메시지가 나타나면 해당 디렉터리에서 깃 사용가능

cf) .git 디렉터리는 숨겨져 있다.

 

 

작업 트리(working tree = 작업 디렉터리(working directory))

파일 수정, 저장 등의 작업을 하는 디렉터리로 우리 눈에 보이는 폴더가 바로 작업 트리이다.(스테이지와 저장소는 숨은 파일로 존재)

 

스테이지(stage = 스테이징 영역(staging area))

버전으로 만들 파일이 대기하는 곳(git add 하면 파일이 저장되는 곳)

 

저장소(repository)

스테이지에서 대기하고 있던 파일들을 버전으로 만들어 저장 하는 곳(commit 하면 저장되는 곳)

 

git 상태 확인 명령어 - git status

 

 

수정한 파일 스테이징 하기 - git add

작업 트리에서 파일을 만들거나 수정하면 스테이지에 수정한 파일을 추가한다. 이를 스테이징(staging)이라고 표현한다.

git add [스테이징할파일명]

파일이 스테이지에 추가된다.

 

스테이지에 올라온 파일 커밋하기 - git commit

파일이 스테이지에 있다면 이제 버전을 만들 수 있다. git에서는 버전을 만다는 것을 ‘커밋(commit)’이라고 한다. 커밋할 때에는 버전에 어떤 변경 사항이 있었는지 확인할 메시지를 함께 기록해 두어야 한다.(커밋 메시지는 주로 영어로 작성)

git commit -m "message1"

‘git commit’ : 파일을 커밋하는 명령

‘-m’ 옵션 : 커밋 메세지를 적는 옵션

git log

저장소에 저장된 버전을 확인할 때 사용하는 명령

 

 

스테이징과 커밋 한꺼번에 처리하기 - git commit -am

한 번 커밋한 파일이라면 git commit 명령에 -am 옵션을 붙여 스테이징과 커밋을 한꺼번에 처리할 수 있다.

git commit -am "message2"
git commit -a -m "message2"

둘다 가능

 

 

 

 


https://www.instagram.com/p/COK6CbMJZiU/?utm_source=ig_web_copy_link

부족하거나 잘못된 내용이 있을 경우 댓글 달아주시면 감사하겠습니다.

이 글에 부족한 부분이 존재할 경우 추후에 수정될 수 있습니다.


 


http://www.yes24.com/Product/Goods/84803146

 

Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문 - YES24

생활코딩 강의에서 52개를 엄선, 한 권 안에 자주 쓰는 기능은 모두 담았다.문서 지옥, 깃&깃허브로 하루 안에 탈출한다!본서는 대학생, 개발자, 일반 사무직까지. 문서 지옥에 빠진 모두를 위한

www.yes24.com

⌜Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문⌟ 책을 공부하며 요약・정리한 내용입니다.


 

깃 환경 설정

git config : 사용자 정보 설정

--global 추가하면 현재 컴퓨터에 있는 모든 저장소에서 같은. 사용자 정보를 사용하도록 설정

$ git config --global user.name "name"
$ git config --global user.email "email@gmail.com"

 

 

현재 디렉터리 살펴보기

$ pwd

(print working directory)현재 위치의 경로

$ ls

현재 디렉터리에 있는 파일이나 디렉터리가 있는지 확인하는 명령어

 

리눅스 명령에 옵션을 추가하려면 붙임표(-)와 원하는 옵션을 함께 입력

$ ls -l
$ ls -a
$ ls -la
$ ls -al

‘-l’ : 파일, 디렉터리의 상세정보 표시 옵션

‘-a’ : 숨긴 파일과 디렉터리 표시 옵션

‘-la’ or ‘-al’ : 두 옵션 함께 사용 (순서 상관없다)

 

ls 명령 옵션 모음

옵션설명

-a 숨김 파일과 디렉터리도 함께 표시
-l 파일이나 디렉터리의 상세 정보 함께 표시
-r 파일의 정렬 순서를 거꾸로 표시
-t 파일 작성 시간 순으로 (내림차순) 표시

 

 

디렉터리 이동하기

‘cd’ : (change directory)디렉터리를 이동할때 사용하는 명령어

$ cd ..

상위 디렉터리로 이동

$ cd [디렉터리이름]

디렉터리이름으로 이동

$ cd ~

홈 디렉터리로 이동

디렉터리를 나타내는 기호

기호설명

~ 현재 접속중인 사용자의 홈 디렉터리를 가리킴
./ 현재 사용자가 작업 중인 디렉터리
../ 현재 디렉터리의 상위 디렉터리

 

 

디렉터리 만들기 및 삭제하기

‘mkdir’ : (make directory) 하위 디렉터리 생성 명령어

$ mkdir [디렉터리명]

[디렉터리명] 디렉터리 생성

 

‘rm’ : (remove) 명령어

‘-r’ 옵션을 붙이면 하위 디렉터리와 파일까지 함께 삭제된다.

$ rm -r [삭제할디렉터리명]

[삭제할디렉터리명] 디렉터리와 하위 디렉터리, 파일 삭제

중요! : 삭제할 디렉터리의 상위 디렉터리에서 rm 명령어를 입력해야 한다!!

 

 

vim 에서 텍스트 문서 만들기

$ vim test.txt

test.txt 파일과 같은 이름의 파일이 있으면 그 파일을 열고 없으면 새로운 텍스트 문서 생성

 

vim에는 ‘입력모드’와 ‘ex 모드’가 있는데

‘입력모드’는 텍스트 입력, 수정이 가능하고

‘ex 모드’는 저장, 종료 등이 가능하다.

처음에는 ‘ex 모드’로 열리고

‘I’ 또는 ‘A’누르면 ‘입력모드’로 전환

‘입력모드’에서 ‘Esc’누르면 ‘ex 모드’로 전환

 

파일을 저장하고 종료하기 위해서는 ‘:wq’명령어 입력

‘w’ : 저장

‘q’ : 종료

 

vim ex 모드 명령어

명령설명

:w 또는 :write 편집 중이던 문서 저장
:q 또는 :quit 편집기를 종료
:wq (파일) 편집 중이던 문서 저장, 종료. 파일 이름을 함께 입력하면 그 이름으로 저장
:q! 문서를 저장하지 않고 편집기를 종료. 확장자가 .swp인 임시 파일이 생김.

 

cf) 깃에서 기본 편집기 변경하기

깃을 설치할 때 기본적으로 빔을 사용하도록 설정되었지만, 다른 편집기로 바꿀 수 있다. 예를 들어 ‘Notepad++’로 바꾸려면 터미널에 아래처럼 입력.

$ git config --global core.editor "notepad++"

 

텍스트 문서 내용 확인하기

‘cat’ : (concatenate(연쇄하다))터미널 화면에 그 텍스트 파일 내용 보여줌

$ cat test.txt

test.txt 파일의 내용을 터미널 창에서 보여줌

cat 명령

명령설명

$ cat 파일 파일의 내용을 화면에 표시
$ cat 파일1, 파일2… 파일n > 새파일 파일 n 개를 차례로 연결해서 새로운 파일 만듬
$ cat 파일1 >> 파일2 파일1의 내용을 파일2 끝에 연결

 

 

 

 

 

 


https://www.instagram.com/p/CKJmBZGJePR/?utm_source=ig_web_copy_link

부족하거나 잘못된 내용이 있을 경우 댓글 달아주시면 감사하겠습니다.

이 글에 부족한 부분이 존재할 경우 추후에 수정될 수 있습니다.