TIL : Git / Git hub (2)

hihyeon_cho·2022년 11월 17일
2

TIL

목록 보기
14/101

stage에서 빼기

git restore —staged 파일명

vi

: 편집기, 터미널로 .txt 파일 내용을 추가할 수 있다

vi a.txt

i를 누르면 insert모드가 되어 편집이 가능하며, esc를 누르면 편집모드가 종료된다.


비어있는 파일은 비어있는 한줄로 끝을 판단하기 때문에 마지막줄을 비워주는게 좋다.


편집모드를 종료하려면
:w 저장 + :q 나가기로 종료하거나
:wq 저장하고 나가기로 종료할 수 있고, 작업하던 터미널로 돌아가게 된다.

cat

: 문서의 내용을 보여주는 명령어

 cat 파일명

git status

: 현재 디렉터리의 상황을 보여준다. 현재 깃이 어떤 상태를 추척하고 있는지 보여줘라!

git status

git commit

: 커밋메시지는 제목과 본문으로 이루어지는데, 다른 개발자가 어떤 변경사항을 만들었는지 이해할 수 있어야한다.

git commit -am “커밋메시지”을 쓰면 커밋과 add를 함께 할 수 있다. 현재 저장소에 버전이 하나이상있어야 사용가능하다.( git log라고 쳤을 때 아무것도 안나올때 사용할 수 없다. )

git commit —amend를 입력하면 커밋메시지를 변경할 수 있다.

git commit -m "커밋메시지” 
git commit
git commit -am “커밋메시지”
git commit —amend

git commit 만 쓰게 되면 commit메시지를 제목과 본문을 함께 작성할 수 있음. 첫번째라인-제목, 세번째라인-내용

git log

: 만들어진 버전을 보여줌.

git log —oneline 은 git log 한 줄로 간단히 볼 수 있다. ( 커밋메시지 제목만 나옴 )

git log -p 는 변경사항을 볼 수 있다.

git log -graph 은 branch 그래프를 볼 수 있다.

git log —oneline  
git log -p 
git log -graph 

버전끼리 비교하기

git diff 는 최신 커밋 이후로 어떤 변경사항이 나왔는지 볼 수 있다. 가장 최신 커밋과 변경사항의 차이점을 알 수 있다.( 작업디렉터리와 비교 )

git diff —staged 는 stage와 현재커밋을 비교하는 명령어이다.

git diff 커밋해시 커밋해시 는 커밋끼리의 변경사항을 확인할 수 있다. 커밋해시는 앞에 노란 고유번호이다. 앞 커밋해시를 기준으로 뭐가 달라졌는지를 입력! 헷갈리지 말기!

git diff
git diff —staged
git diff 커밋해시 커밋해시

버전을 되돌리는 방법

git revert : 버전을 되돌린 새로운 버전 만들기
git reset : 버전을 완전히 되돌리기 (시간 되돌리기 )

git revert 취소할커밋해시 ⇒ 커밋메시지 작성창 ⇒ :wq

git reset 되돌아갈커밋해시 (기본적으로 mixed 리셋이 됨 )

git reset —soft 되돌아갈커밋해시

(soft 자리에 hard / mixed/ soft작성 )

작업을 임시저장하는 방법

작업을 하긴했는데 버리긴 아깝고 다시작업하고 싶을 때 사용하며,작업중인데 급하게 기존 내용으로 작업내용을 되돌려서 작업해야 할 때 쓰는 명령어이다.

git stash -m “작업내용메모”

git stash list :  임시저장한 내용 리스트확인

git stash apply 스테시이름 :  스테시이름의 임시저장항목을 적용하겠다.

git stash drop 스테시이름 :  스테시이름의 임시저장항목을 삭제하겠다.

작업디렉토리 지우기

rm -rf 폴더명

Branch

: 브랜치가 깃이 존재하는 이유!!!!

HEAD : 현재 내가 서있는 작업환경의 최신 커밋을 가리킴

master : 깃이 제공하는, 기본, 최초의 Branch

main : master와 같은데 이름만 다름

stage는 push 전 버전에 대한 내용을 올려놓는 공간

git branch는 지금까지 쓴 branch의 목록을 보여준다.

git branch

*은 현재 작업환경(브랜치)를 표시한다.

branch 만들기

: 새로운 작업환경 만들기
git checkout 브랜치명으로 branch에 체크아웃 할 수 있다. checkout은 특정브랜치에서 작업할 수 있도록 작업환경을 바꾸는 것이다.

git branch 브랜치명

checkout

checkout은 특정브랜치에서 작업할 수 있도록 작업환경을 바꾸는 것이다. git checkout 브랜치명을 입력하여 작업환경을 바꾼다.

git checkout 브랜치명

병합하기

기준이 되는 branch로 체크아웃을 해서, 병합을 진행한다.
git merge 합치고싶은브랜치 를 입력해서 합치고 싶은 브랜치를 땡겨와서 병합한다.

git merge 합치고싶은브랜치

충돌

병합하려는 두 브랜치가 같은내용을 다르게 수정했을 때 발생한다. 충돌이면 어떤 브랜치의 내용을 반영할지 직접 선별하여 다시 커밋한다.

여기서 남길내용만 남기고 수정한다.

Git hub

- 원격저장소의 identity
[git@github.com](mailto:git@github.com):hiheecho/test.git 

- 원격저장소에 로컬저장소를 추가하고, origin이라는 이름으로 상호작용하겠다(origin은 원격저장소의 별명).
git remote add origin [git@github.com](mailto:git@github.com):hiheecho/test.git

- 지금있는 브랜치를 main으로 변경하겠다. (Modify)
git branch -M main

- origin이라는 원격저장소에 main 브랜치를 밀어넣을거야
git push -u origin main

- remote된 원격저장소의 별명을 나타냄
git remote 

- remote된 원격저장소의 별명과 경로를 나타냄
git remote -v 

- 원격저장소에 있는 내용을 내 로컬저장소에 복제!
git clone 

fetch

git fetch origin main

원격저장소에서 수정된 내용을 가져는 오되, 병합하지 않는 방식

원격저장소에서 내 컴퓨터로 그 내용만 가져오고 병합하지 않았기 때문에 내 컴퓨터에는 반영되지 않는데, 이 때, 이와같은 코드를 써주면 내 컴퓨터에 반영이 된다.

git checkout FETCH_HEAD

그리고 내 로컬 main 에 체크아웃 한 후, origin/main(원격저장소의 main)과 병합하면 완전히 합쳐진다

git merge origin/main

pull

원격 저장소를 가져와서 합치기 ( fetch + merge )

내 로컬저장소에 가져온 내용을 모두 업데이트 시켜주는게 pull

git pull origin main 

내 원격 저장소(origin/main)에 있는 내용을 가져온다.

내가 소유하고 있지않은 원격저장소에는 푸시를 할 수 없다.
( 콜라보레이터를 추가해서 가능한 경우도 있긴 하다. )

그리고, 공동으로 협업하고 있는 저장소에 반영하고 싶을때 이용하는게 pull request이다.
pull request는 원격저장소가 내 변경사항을 풀하도록 요청을 보내는 방식이다.

pull request를 보내는 방법

  1. 기여하려는 저장소를 내 계정으로 포크하기
  2. 포크한 저장소를 클론하기
  3. 브랜치 생성 후 생성한 브랜치에서 작업하기
  4. 작업한 브랜치로 푸시하기
  5. 풀 리퀘스트 보내기
profile
코딩은 짜릿해 늘 새로워 ✨

1개의 댓글

comment-user-thumbnail
2022년 11월 18일

깃 생각안나실때마다 오셔서 보실 수 있겠어요! ㅎㅎ

답글 달기