일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 우선순위
- git #github #내일배움캠프
- 프로그래머스
- googleappscript
- vscode
- Level1
- gitignore
- 가상환경
- WIL
- googlesheet
- 내일배움캠프
- 알고리즘
- AI
- position
- Iterator
- with\
- Display
- target
- time()
- sql
- AI 5기
- onClick
- cte
- 함수실행시간
- venv
- 함수성능평가
- iterable
- itertools
- python
- A태그
- Today
- Total
05의 개발 계발
[TIL] 230313 Git & Git hub 기초 본문
자, 남들은 모르겠고 내가 알아보게 써보자..!
오늘은 git hub 를 사용한 팀프로젝트 전, 특강을 통해 git의 개념과 정의, 사용법을 배웠다.
앞으로 TIL 학습목표를 통해 읽을 내용인지 아닌지를 구분토록하자!
TIL 학습목표
- git 과 git hub 를 정의할 수 있다.
- git 의 기본명령을 이해하고 목적에 맞게 사용할 수 있다.
- git hub에 파일을 업로드(push) 할 수 있다.
<git이 없다면?!>
변경 내역 확인이 어렵다. ↔ git은 히스토리 기록 기능이 있다.
작업을 되돌리기 어렵다. ↔ git은 작업을 되돌리기 쉽다.
협력하기 어렵다. ↔ git은 협업이 가능하다.
<git의 탄생배경>
창시자 : Linus Torvalds → 수많은 코드들, 수많은 업데이트. 으아아! 변경내역 편하게 보자! → git 탄생
+α ☞ Linus Torvalds는 Linux를 개발한 프로그래머이다. 그래서 git 명령어 또한 Linux명령어가 기반이다.
<git의 정의>
git == version을 관리하는 Tool
여기서 version은 유의미한 변화[Create Update Delete]가 결과물로 나온 것을 의미
결국, 프로그램 개발 == 유의미한 변화(ver.)를 쌓아 프로그램을 만들어가는 것
<git의 특징>
Linux 명령어 기반의 깃 명령어 사용.
Linux 환경을 windows환경으로 바꿔 도와주는 Tool로는 소스트리가 있다.
하지만! 모든 Tool이 세세한 접근은 한계가 있듯, 소스트리도 접근의 한계와 사용 불가한 환경이 있다.
고로, 의존성을 줄이고 명령어를 익히는게 좋다!
<github의 정의>
github == 원격 저장소 호스팅 서비스
git은 "local(개인) 환경"에서 versions을 관리해준다면, github는 "web(공유) 환경"에서 versions을 관리해준다!
commits == versions(유의미한 변화)
"개발자들의 SNS" / "퍼가요~" / "팔로우할게요~"
"잔디(commit) 심으러 가자..!!"
<Git이 관리하는 세 개의 공간>
작업 디렉터리 / 스테이지 / 저장소
- 작업 디렉터리(.git이 들어있는 폴더)(로컬)
: 버전 관리의 대상이 위치하는 공간 - 스테이지(임시공간, 1회용)
: 다음 버전이 될 후보가 올라가는 공간 - 저장소(레파지토리)(로컬)
: 버전이 만들어지고 관리되는 공간
(로컬 환경에서 이루어지는 과정)
작업 디렉터리 ▶ 스테이지 ▶ 저장소
add commit
<Git Bash>
(windows) 파일 우클릭 , Git Bash Here
해당 폴더경로로 들어가짐
(Linux) cd 폴더명
해당 폴더로 들어가짐
<Git 명령어> 유의사항 " " 띄어쓰기 주의!
git 깃 명령어 목록 보여줌
git config --global user.email "1234@email.com" : 이 사용자와 작업할꺼다
~ : 홈 디렉터리 (기본 명령어 경로를 의미)
pwd (print working directory) : 현재경로출력
ls (list) : 현재 디렉터리(폴더)에 존재하는 파일 및 디렉터리(폴더)를 보여라
ls -al (list all) : 현재 디렉터리(폴더)에 존재하는, 숨김 파일 및 디렉터리(폴더)까지도 모두 리스트 형태로 보여라
cd <디렉터리(폴더) 이름> (chage directory) : 디렉터리로 이동
cd .. : 상위 디렉터리로 이동
clear : 명령어 창을 깨끗하게 비워라
mkdir <디렉터리 이름> (make directory) : <디렉터리 이름>의 비어있는 디렉터리(폴더)를 만들어라
*폴더명 띄어쓰기 자제! 띄어쓰기 인식은 \
ex) "폴더 명" == "폴더\명"
touch a.txt : 비어있는 a.txt를 만들어라
rm <파일명> (remove) : <파일명>을 가진 (폴더가 아닌) 파일을 지워라
vi <파일명> : <파일명>을 vi 편집기로 편집하겠다
┌“입력모드”로 전환해야 어떤 내용을 입력할 수 있습니다
│입력 모드로 전환하는 방법 : a 혹은 i를 입력
│입력한 내용을 저장하는 방법 : (입력 모드에서 빠져나온esc 뒤) == :w
│vi 편집기 닫기 == :q
│입력한 내용을 저장하고 (w), vi 편집기를 닫아라 (q) == :wq
└ 넘버인덱스 == :set nu (set number) ↔ :set nonu (set no number)
*파일 저장할 때 “비어있는 한칸 띄고" 저장해주세요. 특히 윈도우!
안 그러면 [↓ 아래의 에러가 발생할 수 있다 ↓]
warning: in the working copy of 'd.txt', LF will be replaced by CRLF the next time Git touches it
cat <파일명or파일경로> : <파일명>에 적힌 내용을 보여줘라
git init 로컬 저장소 만들기
git status 작업 디렉터리 상태 확인하기
git add a.txt == a.txt를 스테이지에 추가
git add . == 현재 경로에 있는 모든 파일을 스테이지에 추가
git commit == 첫줄 (제목) 띄우고 셋째줄부터 (내용)
esc 후 :wq == 저장하고 나와라
git commit -m "커밋내용" == 편집기 출입없이 내용만 커밋
git commit -m "create e.txt" == 편집기 출입없이 제목만으로 커밋
git log == 지금까지 커밋한 기록을 보여줘라(최신순 내림차 배열)
▲=====push 전까지의 과정!======▲
로컬환경에서의 작업 끝 [작업디렉터리→스테이지→저장소]
(+) ctrl + c 로 강제종료
*실수로 y와 같은 무의미한 입력을 할 경우 아래와 같이 무한루프에 빠지게 된다면 강제종료를 하자.
y
y
y
y
y
y
y
y
...
깃 허브에서의 작업
▼=====push 부터의 과정!======▼
git push
git push -u origin main
git add . 전부 보내라
git add a.txt 얘만 보내라
1. 코드 상에서 유의미한 변화를 만들어냈으면 그때그때 commit (로컬 저장소)
2. 적당히 commit이 쌓였다면 깃허브에 push (웹 저장소)
레파지토리에 팀원들 추가 == 레파지토리에 push할 권한 부여
settings → collaborators → add → people
*권장하는 방법은 아님!! why?!
*Pull requests + branch 를 활용하는 것이 정석.
git clone <원격저장소 url> : 원격 저장소를 내 컴퓨터로 복제해서 가지고 오기 → 명령을 입력한 경로에 저장
[ 내가 이해한 도식도 ]
작업 디렉터리(내 폴더) ▶ 스테이지(가상공간) ▶ 저장소(로컬) ▶ 원격저장소(web, github)
add commit push
기록할것을 솎아내고 메모지에 써놨다가 본문에 옮겨적기!
git 명령어 사용 순서 참고 블로그 https://guco.tistory.com/11
'TIL' 카테고리의 다른 글
[TIL] 230320 [Python] or 연산자의 bool타입 연산 (0) | 2023.03.20 |
---|---|
[TIL] 230317 협업을 위한 가상환경 설정법( venv 관리) (0) | 2023.03.19 |
[TIL] 230316 [JS] <a>태그가 아닌 다른 태그에 링크 걸기 (0) | 2023.03.19 |
[TIL] 230315 [CSS] position을 이용한 겹치기 (+우선순위, display 속성) (0) | 2023.03.19 |
[TIL] 230314 VScode 설정 issue 및 초기화 방법 (0) | 2023.03.19 |