스파르타코딩클럽 내일배움캠프4기 -16-

JaeSung Lee·2022년 11월 17일
0

내일배움캠프4기

목록 보기
16/24

git, github 이걸로 끝내자...는 훼이크고
정리한거 다시 올리도록 하겠다...
이 게시글은 단순히 공부한 취합용으로 작성한것으로
정리전 입니다. 이번주말에 정리해서 다시 올리도록하겠당...

mkdir 폴더이름 (데스크탑 전 폴더에 생성된다..)
cd 경로명,폴더이름 (그 폴더 열기)
ls, ls -a, ls -al
.(현재디렉토리) ..(상위디렉토리)


git init (깃 폴더에 추가명령어 하면 .git생김)
touch 파일이름.파일확장자 (파일생성 명령어)
vi 파일이름.파일확장자 (a,i 누르면 맨 밑 insert뜬다. 입력 후 esc누르면 나와짐. :write 저장하고 :q 누르면 닫기됨. :wq 이거 한번에 가능 :wq! 뒤에 느낌표는 강제로 명령내리는거)
cat 파일이름.파일확장자 (파일 안에 내용물 보여줌)

git status (깃 상태 보는건데 untracked file나오는데 아직 추적이 안된상태다. 즉 git add 안한 새로운 파일이라는 소리. 참고로 변한게 없으면 nothing to commit이라고 나옴.)


git add 파일명,파일확장자 (깃에 추가된 상태여서 git status하면 changes to be committed 뜸)
git add . (위에꺼 일일이 하기 힘드니까 한번에 해라)

git commit (a,i 누르면 맨 밑 insert뜬다. 입력 후 esc누르면 나와짐. :write 저장하고 :q 누르면 닫기됨. :wq 이거 한번에 가능 :wq! 뒤에 느낌표는 강제로 명령내리는거 맨 윗줄에는 제목 한칸 띄우고 본문내용 작성)
git commit --amend (아까 커밋 보낸거 수정할려면)

git commit -m "제목 커밋"
git log (이걸로 깃 커밋 확인가능)
git log --oneline (한줄로 로그 확인)
git log -p (어디가 수정된지 볼수있음)
git log --graph (그래프로 볼수있음)

git commit -am "제목 커밋" (동시에 깃 에드하면서 커밋하는것 주의사할점이 폴더에 깃 버전이(커밋이) 하나라도 있어야됨. 즉 git log했을때 암것도 없음 안됨. 잘안쓰니까 이런게 있는것만 알아라.)

head 현재 브랜치에 최신 커밋
master 브랜치 이름 (=main)

버전끼리 비교하기

git diff (가장 최신 커밋과 현재 작업디렉토리 변경사항 차이점 알수있음. git add . 모든 깃을 스테이지로 추가하면 암것도 안뜸.)
git diff --staged (가장 최선 커밋과 스테이지와 변경사항 차이점 알수있음.)
git diff 기준커밋해쉬 커밋해쉬(커밋끼리 비교하는 방법. 주의할점이 순서 잘 체크하기 순서바꿔서하면 거꾸로나옴. 첫번째 커밋해쉬가 기준점임.)

rm 파일이름.파일확장자 (파일 지우는법)


버전 돌리는방법

revert 버전을 되돌린 새로운 버전 만들기. 전에 만들어 놓은것에 영향이 없다.
git revert 커밋해쉬 (하고 나서 :wq)

reset 버전을 완전히 되돌리기 3가지 방법
soft
mixed
hard

git reset --원하는리셋방법(아무것도 안쓰면 믹스드됨)


git reset --hard 해쉬커밋 (해쉬커밋 위로 다 지워진다는 소리다)
예를들어 git reset --hard 29179e8 하드리셋하면 그 위에는 다 지워짐.


git stash -m "메모" (작업할떄 임시저장하는 방법)
git stash list (임시저장 리스트 보기)
git stash apply 임시저장이름 (임시저장 이름은 리스트에 뜸)
git stash drop 임시저장이름 (임시저장 리스트에 지우기)

브랜치

git branch (브랜치 목록)
git branch 생성이름 (생성하고싶은 브랜치)
git checkout 브랜치명(체크아웃 하고싶은 브랜치 즉 헤드 위치 바꾸는거)

헤드는 가리키는 곳
마스터 브랜치에는 4개버전
푸버전에는 5개버전
바브랜치는 6개버전

git merge 병합할브랜치명( 여기서 체크아웃을 기준점 브랜치고 잡는다. 그리고선 병합하고 싶은 브랜치명 입력하면 병합됨.)


푸 브랜치 마스터 브랜치로 합치면 이렇게 된다.
이런 병합을 빨리감기 병합이라고 한다.

충돌

이럴경우 어떤걸 선택할지 정한다. 그리고 다시 커밋하면됨.


충돌된 파일 들어가면 저렇게 나와있음. 어디가 충돌된건지.

만약 마스터 브랜치꺼 내용하고싶으면 마스터 브랜치 내용만 남겨놓고
다 지우고 저장하면 됨. 그리고 다시 커밋하면 됨.

github

첫번째단락

두번째단락
git remote add origin git@github.com:ambition0103/git-test2.git
뒤에 깃 주소가 기니까 origin으로 별명 부르겠다.
그래서 저걸 그대로 터미널로 붙여넣기하면 연결됨.
깃 브랜치 -m main은 깃브랜치 이름을 메인으로바꾼다는 소리 (마스터인것을... 차별적인 언어때문에 마스터 안쓸려고함)
깃 푸쉬 유 오리진메인 ( 이거는 깃 푸쉬하는거 저장소에 참고로 -u붙이는 이유는 저거 한번하면 뒤에 다시 저장소 주소 쓸필요없어서임.)

Git remote 치면 밑에 오리진이라고 뜸
git remote -v 는 경로 뜨는거임 어디에 연결됐나.

깃클론

깃클론은 터미널로 경로연 다음에
git clone 복제하고싶은 저장소 주소 치면 됨.

깃 패치

git checkout FETCH_HEAD
하면 가져온 변경사항 보인다.

깃 풀
패치+병합 동시에 하는것

git 특강 자료

기본 명령어

특정 경로로 이동하기
$ cd <경로>

현재 디렉터리의 폴더 및 파일 보기 (숨김파일 및 폴더는 제외)
$ ls

현재 디렉터리에서 숨김파일 및 폴더까지 모두 보기
$ ls -a
$ ls -al

vi/vim 편집기

- vi/vim 편집기가 열리고 나면 바로 어떤 내용을 쓸 수 없다
- a와 i를 입력해 아래와 같이 하단에 INSERT 표시가 나와야 한다

- 입력이 끝났다면 ESC를 누른다 (하단에 INSERT 표시가 사라진다)
- :w 로 저장할 수 있다
- :q 로 (저장하지 않고) vi/vim 창을 닫을 수 있다
- :wq 로 저장 후 닫을 수 있다

버전 만들기


로컬 저장소 만들기
$ git init

스테이지에 추가하기
$ git add <파일이름> <파일이름>

현재 작업 디렉터리의 변경사항을 모두 스테이지에 추가하기
$ git add .

커밋하기 (커밋 메세지의 헤더만을 작성하기)
$ git commit -m "커밋 메세지 헤더"

자세한 커밋 메세지로 커밋하기
$ git commit

스테이지에 추가와 커밋 동시에 하기 (Tracked File에 한해 사용 가능)
$ git commit -am "커밋 메세지 헤더"

버전 조회하기

현재 커밋들의 목록 조회하기
$ git log

현재 커밋들의 목록 한 줄로 조회하기
$ git log --oneline

현재 커밋들의 목록 + 각 커밋들의 변경사항까지 확인하기
$ git log -p

현재 커밋들의 목록을 그래프 형태로 조회하기
$ git log --graph

혼용하여 사용하기
$ git log --oneline --graph
$ git log --oneline -p
...

비교하기

현재 작업 디렉터리에서의 작업 내역과 최신 커밋을 비교하기
$ git diff

스테이지와 작업 내역과 최신 커밋을 비교하기
$ git diff --staged

커밋끼리 비교하기
$ git log <커밋해시> <커밋해시>

되돌리기 (연습 많이 하세요!)

revert: 특정 커밋 취소(revert)하기
작업을 취소한 새로운 커밋을 생성한다.

기존의 커밋 내역은 유지된다.

$ git revert <취소할커밋>

reset: 특정 커밋으로 되돌아가기
마치 시간을 되돌리듯 되돌아간다.

기존의 커밋 내역에 영향이 갈 수 있다.

soft reset: 커밋을 했다는 그 사실만을 되돌리기
$ git reset --soft <되돌아갈 커밋>

mixed reset: 스테이지에 추가했다는 사실까지 되돌리기
$ git reset --mixed <되돌아갈 커밋>
$ git reset <되돌아갈 커밋>

hard reset: 변경사항을 만들었다는 사실까지 되돌리기
$ git reset --hard <되돌아갈 커밋>

브랜치로 나누어 관리하기

새로운 브랜치 생성하기
$ git branch <브랜치이름>

해당 브랜치로 체크아웃하기
$ git checkout <브랜치이름>

새로운 브랜치를 만듦과 동시에 체크아웃하기 (수업에서 다루지는 못했지만 유용합니다)
$ git checkout -b <브랜치이름>

브랜치 병합하기
$ git merge <브랜치이름>

충돌(Conflict): 같은 내용을 다르게 수정했을 경우 발생

충돌 해결법

1. 최종적으로 포함할 내용을 직접 선택한다
2. 다시 커밋한다

원격 저장소(깃허브) 다루기

원격 저장소 이름 조회하기
$ git remote

원격 저장소 이름 + URL 조회하기
$ git remote -v 

원격 저장소 추가하기
$ git remote add <원격저장소이름> <원격저장소경로> 

원격저장소와의 네 가지 상호작용

clone: 원격 저장소의 내용을 내 컴퓨터로 복제해오기
$ git clone <원격저장소경로>

push: 로컬의 변경사항을 원격저장소로 밀어넣기
$ git push <원격저장소이름> <로컬브랜치이름>

* 참고) 아래와 같이 -u 옵션과 함께 push하면 이후로 <원격저장소이름> <로컬브랜치이름> 생략 가능
$ git push -u <원격저장소이름> <로컬브랜치이름>

fetch: 원격저장소의 변경사항을 로컬로 '일단 갖고만' 오기 (로컬 브랜치에는 변함이 없다!)
$ git fetch <원격저장소이름> <로컬브랜치이름>

pull: 원격저장소의 변경사항을 로컬로 갖고와서 합치기
$ git pull <원격저장소이름> <로컬브랜치이름>

Pull Request로 협업하기

Pull Request를 보내는 단계

1. 기여하려는 저장소를 본인의 계정으로 fork하기
2. fork한 저장소를 clone하기
3. 브랜치 생성 후 생성한 브랜치에서 작업하기
4. 작업한 브랜치 Push 하기 
5. Pull Request 보내기

참고할만한 유튜브
https://youtu.be/lxQ-9HQDmcE

profile
정말 최선을 다하겠습니다.

1개의 댓글

comment-user-thumbnail
2022년 11월 18일

어제 정리 진심이셨네요
ㅎㅎ생각안나실때 오시면 딱일것같아요

답글 달기