일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- #경제상식 #화폐 #금융 #화폐금융론 #경제학 #경제기본 #경제지식 #경제근육 #투자지식 #경제공부 #경제학전공 #금융이란 #화폐란 #금융시장 #금융시장역할 #화폐역할 #화폐역기능 #금융역기능 #
- vp #vc #did #신원인증 #블록체인
- html #js #parsing
- 페이스북유니버시티 #마케팅교육 #마케팅캠프
- #국제채권시장 #유로본드 #유로커런시 #유로달러 #외국채 #금융중개기관 #간접금융 #거래비용#다우존스공업평균지수 #나스닥종합지수 #FTSE100 #DAX #CAC40 #straittimes #항생지수 #거래비용 #유동성 #위
- 블록체인 #layer2 #레이어2 #이더리움스케일링
- 미쉬킨의화폐와금융 #미쉬킨 #화폐금융론 #화폐와금융 #경제학 #교양 #경제지식 #경제공부
- 자료구조 #알고리즘
- Today
- Total
평행우주 : world 1
[Git] Solo WorkFlow : git의 버전 관리 기능 활용하기 본문
Github workflow overview
- Remote에 있는 다른 Repository에서 Fork를 통해 Remote에 있는 내 Repository로 전송
- 코드를 수정하기 위해 내 컴퓨터로 가져오는 작업이 또 필요함. 내 컴퓨터에서 작업을 하기 위해 clone 진행
- 내 컴퓨터의 작업 공간 (work space) 에서 작업에 들어간 파일들을 git의 관리 하에 있는 상태로 올려줄 수 있음. 이 영역을 staging area라고 함. staging area에 들어오지 않은 파일은 unstaged 혹은 untracked file이라고 말하며, staging area에 있는 파일들은 staged 된 파일
- staging area에 들어온 파일들은 commit이 가능. commit을 하고 나면 내 remote repository에 push 해서 commit 기록을 remote 에도 남겨줄 수 있음
- push를 완료한 후 remote의 원래 레파지토리에 pull request를 보내면 Remote Repository로 내가 수정한 코드를 업로드 가능
git clone
원격 repositoty를 내 로컬에서 이용할 수 있도록 복사
- Remote Repository에 있는 파일을 작업하기 위해선 내 컴퓨터로 복사해오는 작업이 필요
- 이 때 사용할 수 있는 명령어가 바로 clone
- git clone 명령어 뒤에 Repository 주소를 입력하면 해당 Repository를 내 컴퓨터(Local Repository)로 가져와 작업 가능.
git status
내 로컬로 복사해 온 디렉토리의 commit 되기 전 까지의 상태 표시
- git-project를 Fork해서 어느 기능을 구현했다고 가정했을 때, commit으로 변경 사항의 저장 기록을 남겨두는 것이 좋음
- commit을 하기 전에 먼저 현재 Local Repository에 변경된 파일들이 어떤 것이 있는지 확인해 보자
- git status 명령어를 통해 staging area와 untracked files 세부 목록 파악 가능
TIP : 예시)
터미널 창, untracked files (git의 트래킹 되고 있지 않은 파일들) 목록에 A라는 파일이 있을 경우
터미널에서 이 파일을 Commit 하기 위해서는 git add 명령어를 통해서 commit 할 수 있다고 알려주고 있음.
A.js 파일은 '변경된 상태'(modified)인데 changes not staged, 즉 staging area에는 들어가지 않았을 경우,
이 시점에서 우리가 선택할 수 있는 행동 또한 터미널을 통해 파악 가능 (git add, git restore)
git add <file>
untracked files를 staging area로 추가해서 git의 관리하에 둠
- untracked files를 staging area로 추가해 git의 관리하에 둠
- 따라서 add는 파일을 commit 할 수 있는 상태로 만듦
- git add 를 했을 때 터미널 창에 변화 없음
+)
git add . 명령어로 staging area에 unstaged 상태인 모든 파일을 한번에 추가 가능.
하지만 올리지 말아야 할 파일까지 모두 add될 수 있기 때문에 주의.
git restore <file>
commit 또는 staged 되지 않은 Local Repository의 변경 사항을 폐기
git commit -m ‘메시지’
수정 작업이 끝났을 때 변경 사항 저장
- 파일이 staging area에 올라간 후 commit이 가능한 파일이 되었을 때 사용
- 어떤 사항이 변경됐는지 간단한 메모를 통해서 버전의 변경 기록들을 관리할 수 있음( 언제, 누가, 어떻게)
- -m 옵션을 통해 commit 메시지를 작성 가능
- Commit 기록은 위의 그림처럼 날짜, commit한 사람, commit 메시지가 모두 기록
git reset HEAD^
Local 에서 commit한 내용을 취소할 때 : 아직 remote repository 에 올라가지 않은 commit만 가능
- 아직 Remote Repository에 업로드 되지 않고, Local Repository에만 commit 해 놓은 기록이라면, reset 명령어를 통해서 commit 취소 가능 (에러 발생시 유용)
- git reset 사용 시 터미널 창에는 변화 없음
- git reset HEAD^ 이라는 명령어로 가장 최신의 commit 을 취소 가능
- HEAD는 연속된 ^의 shortcut으로 예를 들어 HEAD3은 HEAD^^^으로 표현 가능
+)
추가적으로 hard, soft 옵션도 존재
나중에 git reset --hard vs --soft 등의 검색어로 구글링 해보기
git push <origin> <branch>
local에서 변경, commit된 사항을 remots repository에 업로드
- commit 기록을 남기기를 완료 후, 파일들을 contribute 하기 위해서 Pull Request 를 날려야함
- Pull Request를 날리기 위해서 현재 Local Repository에 저장되어 있는 commit 기록들을 내 Remote Repository 에 업로드 해야함
- 내 Local Repository의 commit 기록들을 Remote Repository로 업로드 할 때 git push origin branch 명령어 사용
- git push origin main, git push pair dev 등 git push 뒤에 따라오는 명령어는 상황에 따라 변경 가능
git log
현재까지 commit된 내역을 터미널에서 확인
- 남긴 commit들이 잘 기록되었는지 확인해 보고 싶을 때 사용
- 현재까지 commit 된 로그들을 터미널 창에서 확인 가능
- 터미널 창을 종료하는 방법 : q 입력
Staging area
이삿짐을 정리할 경우, 같은 용도의 물건들을 한 박스에 넣는 것이 좋다. 물건들을 박스에 모두 담았다면 밀봉 후 라벨링을 해서 각각의 용도를 적는다면, 이후 짐을 정리하기 쉬울 것이다.
여기서, 이 무빙 박스가 바로 commit 을 만들 수 있는 staging area이고 박스에 어떤 용도의 물건인지 간단한 코멘트를 적은 라벨링을 해 주는 것이 바로 commit 이라고 볼 수 있다.
+)
만약 git add 명령어로 파일을 staging area에 올려 놓은 상태인데 파일을 또 수정할 경우에는 파일이 staged이면서 modified인 상태가 되고, 이 시점에서 git add 명령을 실행한다면 Git은 파일을 바로 Staged 상태로 만들어줌. 반면, 이 시점에서 commit 을 하면 git add 명령을 실행해서 staged 되어 있는 파일만 commit 되는 구조.
따라서 git add 명령을 실행한 후에 또 파일을 수정한다면 git add 명령을 다시 실행해서 최신 버전을 Staged 상태로 만들어줘야함.
Git의 세 가지 영역 및 상태
git의 Local Repository에는 다음과 같은 영역이 존재
1. Untracked area는 Git이 관리하고 있지 않은 영역.
2. Tracked area에 들어온 파일들만 Git의 관리를 받을 수 있으며, Tracked area 내부에서도 세 가지 상태로 구별됨.
1) Unmodified : 기존에 Commit했던 파일을 수정하지 않은 상태
2) Modified : 기존에 Commit했던 파일을 수정한 상태
3) Staged : commit이 가능한 상태
'텃밭 2 : FE > Git' 카테고리의 다른 글
[Git] 프로젝트 workflow (0) | 2022.02.25 |
---|---|
[Git] 브랜치 개념과 대표적인 명령어 (0) | 2022.02.24 |
[Git] Pair WorkFlow (0) | 2022.01.03 |
[Git] Cooperative WorkFlow : git의 버전 관리 기능 활용하기 (0) | 2022.01.03 |
[Git] 관련 용어 정리 (0) | 2022.01.03 |