코딩 공부/코드스테이츠 TIL

Code States 8일차

fullfish 2021. 10. 18. 23:53

오늘의 키포인트

GIT


나의 이해

git : 개발자의 코드를 효율적으로 관리하기 위해(소스 코드를 기록, 관리하고 추적하기 위해) 개발  된 분산형 버전 관리 시스템

github : git repository를 관리할 수 있는 클라우드 기반 서비스


문법 및 중요

commit : 백업 복사본(스냅샷)을 하나 하나 만들어주는 작업
repository : git으로 관리되는 폴더 // local repository는 나만의 remote repository는 공유 남들이 볼 수 있음
fork : remote repository를 내 원격 저장소로 가져오는거
clone : 내 원격저장소의것을 내 컴퓨터로 가져오는거
push : local repo에 기록해 놓은 commit을 remote repo로 업로드 하는거
pull request : 내가 제안한 코드 변경사항에 대해 반영 여부 요청
pull : remote repo에서 변경 사항이 있을 때 local repo로 가져오는 것


brew install git : git 설치
git --version : 버전확인


git config --global user.name "나의 사용자 이름" // 처음 등록
git config --global user.email "내 이메일 주소" // 처음 등록
git config --list : 현재 나의 설정값들
git config --global core.editor nano : 기본 텍스트 에디터 vi인데 nano로 바꾸기


SSH(Secure shell) : 보안이 강화된 shell접속
ssh-keygen : ~/.shh./ 에 id_rsa(비공개키)와 id_rsa.pub(공개키)를 생성. 두 파일은 ssh키 페어
cat ~/.ssh/id_rsa.pub : id_rsa.pub의 내용이 출력되면 공개키를 복사
git 홈페이지 세팅에서 등록

 


git clone <레파지토리 주소> : 원격 repo를 내 로컬에 이용할 수 있게 복사
git restore 파일이름 : commit 되지 않은 local repository의 변경사항 취소
git add 파일이름 : 내 local의 untracked file을 git의 관리 하인 staging area로 추가
git add. : staging area에 모든 파일 한번에 추가
  commit 하기위해서는 git 관리하에 있는 영역으로 옮겨야함 이게 staging area
git commit -m ‘내용’ : commit메시지 작성
git reset HEAD^ : local commit중 최근거 삭제
git push origin branch : 내 local repository의 commit 기록들을 remote repository로 업로드
git push origin master : remote에 있는 origin의 master branch에 local repo의 변경 사항을 업로드
git log : 현재까지 commit된 내역들 (이 터미널창 종료는 q)
git diff : 변경사항 보는거
git init : 내 컴퓨터의 디렉토리를 git의 관리하에 들어가게 / 기존 프로젝트를 git repository
  로 변환하거나 새로운 repository를 초기화하는 데 사용가능 -> local repo 생성
git remote add : local repo와 remote repo 연결
  git remote add origin <repository 주소> : 내꺼 연결
  git remote add 상대방 repo이름 <repository 주소> : 상대방꺼 연결
git remote -v : 현재의 lacal repo와 연결된 모든 remte repo확인
git pull pair master : 이 명령어로 페어의 remote repo의 작업내용/ 받아옴 자동으로 병합됨
  git pull <shortname> <branch> : remote repo의 해당 branch내용을 local repo로 가져옴
자동 병합되다 보니까 페어와 내가 같은 줄 수정하면 충돌일어남 터미널에 merge conflict가 발생해서 automatic merge 실패했다고 뜸
git status : 이거로 뭐가 충돌했는지 알 수 있음
 충돌한 파일 열어서 직접 수정해야함
 accept current change는 내가 수정한 내용으로 파일에 반영
 accept incoming change는 remote repo의 내용으로 파일에 반영
 accept both changes는 모두 반영 
 수정을 마치면 merge commit을 생성해 주기 위해서 파일을 staging area로 추가해야함
  push는 내꺼에 pull은 상대방꺼에
  merge commit은 자동으로 commit메시지 생성 (git commit 만 쓰면됨)

두 개의 영역Committed, modified, staged
untracked area : git이 관리 하고 있지 않는 영역
tracked area : git이 관리하고 있는 영역
  tracked area의 3가지 상태
  unmodified(committed) : 기존에 commit했던 파일을 수정하지 않은 상태
  modified : 기존에 commit했던 파일을 수정한 상태
  staged : commit이 가능한 상태 (수정한 파일을 commit 하기 위해서는 staged area에 
  add 하는 작업이 필요

Changes to be committed라고 적혀 있는 초록색 파일은 staged 상태의 파일,
Changeds not staged for commit이라고 적혀 있는 빨간색 파일은 Modified 상태의 파일

서로 공유하기
1. 원본 파일을 각자가 fork한다
2. git clone <Repo url> 으로 컴퓨터에 클론을 만든다 (본인 페이지에서 / url은 https나 ssh같은거 복사하는거
3. git remote add <내가 지을 상대방 이름>  <상대방의 fork url> / 상대방 repo와 연결
  git remote -v : 이걸로 뭐랑 연결됐느지 확인 
4. git add <파일이름> : 파일을 staging area로 올림 / git add. : 이건 싹다 올림
  git commit -m '쓸말' : 커밋남기기
5. git push origin master : 나의 repository에 올리기 / master, branch는 폴더 이름 같은거 
6. git pull <내가 지었던 상대방 이름> master : 상대방꺼 가져오기


zip파일을 받는 것은 git 관리를 받지 않으므로 터미널 명령어로 git을 관리하자
zip
받고 git init해도 다름 (clone하면 변경점도 다운됨)

master :
브렌치 이름
origin :
리모트 이름
origin
이라는 이름으로 master 브렌치에 푸쉬한다

삭제는 push하기전에만 가능 로컬에 있을떄
git reset –hard : hard
파일까지 삭제 soft 변경 기록 삭제

clone 모든거 복사해오고 pull 최신 레포만 가져옴

 

'코딩 공부 > 코드스테이츠 TIL' 카테고리의 다른 글

Code States 10일차  (0) 2021.10.20
Code States 9일차  (0) 2021.10.19
Code States 7일차  (0) 2021.10.15
Code States 6일차  (0) 2021.10.14
Code State 5일차  (0) 2021.10.14