티스토리 뷰

백엔드 깍두기

Git 명령어

최삐뚤빼뚤씨 2024. 8. 4. 17:50

0. 준비 자세

1) github 가입

2) git 설치

3) 초기 세팅(필자는 c>git>test에서 git bash를 열었다)

 

1. git에게 현재 상태를 알려주기

(초기 상태 설정)

$ git init

 

 

git add를 하니 초록색으로 바뀜

스테이징 시켰다.

스테이징 상태인 version.txt로 버전 관리를 할 수 있음

 

 

다시 빨간색 상태로 바꾸는 것은 언스테이징이라고 한다.

 

그냥 커밋하려니 안된다.

user.email과 user.name을 등록해야 한다고 한다.

 

 

그렇다면 등록을 해주면 되지. 등록해준다.

 

 

$ git config --list로 잘 설정됐는지 확인해보자.

 

이제는 커밋이 잘 되는 것을 확인할 수 있다.

HEAD는 내가 작업하고 있는 최신 버전을 의미한다. 

 

 

version2를 새로 만들어주었다.

 

 

1) git status(상태 확인)

2) git add로 스테이징(필요하면 git status로 한 번 더 상태 확인. 스테이징이 잘 됐는지 확인)

 

 

3) commit

4) git log로 커밋 확인

Author(커밋을 한 주인)를 통해 커밋을 누가 했는 지까지 알 수 있다...

 

 

git log --oneline을 통해 git log 요약본(?)을 볼 수 있다.

 

 

 

 

총 정리!

더보기

1) git init

2) 기존 등록된 git-hub 계정 삭제
git config --global --unset-all user.email
git config --global --unset-all user.name

3) git-hub 계정 등록
git config --global user.email "git-hub 이메일"
git config --global user.name "git-hub 이름"

4) 프로젝트 파일 생성
5) git status (상태확인)
6) git add 파일이름 or git add .(현재폴더)  < - >  git reset 파일 이름
7) git status (변경확인)
8) git commit -m "커밋메세지"
9) git log, git log --oneline(버전 생성 확인)

 

 


 

버전 바꾸기

 

 

버전이 바뀐 것을 알 수 있다.

 

 

 

최신 버전도 version1이 된다.

 

 

 

다시 version3로 돌릴 수도 있다.

 

 

유후~ 다시 version3로 돌아왔다. 아니 이렇게 신기할 수가...

 

 

 


 

branch 따기

 

 

파일 추가 해보기

 

 

git status, git add, git commit

 

 

최신 버전은 myProject인 것을 알 수 있음.

사용자에게 배포할 현재 기준 최종 버전은 master지만, 나는 거기서 수정사항을 더하는 개발자인 상황이다. 그래서 브랜치를 따서 myProject를 구현한 것이다...

 

 

훗날에는 myProject가 배포할 최종 버전이 될 것이다.

이러면 master가 있는 세번째 버전과 myProject를 합쳐야 할 것이다.

이런 상황에는 어떻게 해야할지 보자.

 

우선 브랜치 변경!

 

 

myProject와 병합!

 

그런데... Fast-forward는 뭘 의미하는 것일까?

v3입장에서는 +a만 된 myProject이기 때문에.. 버전을 새로 만들 필요 없이 빠른 한걸음 정도이므로 Fast-forward라고 적힌 것이다.

 

이제는 네 번째 버전(내 프로젝트 구현)이 되었다.

 

 

실습해보자 !

초기 상태

 

이런 상황이다!

 

 

이번엔 Fast-forward가 아니다. 흐흐

 

 

 

총정리!

더보기

브랜치 생성
git checkout -b 브랜치이름
git branch 브랜치이름

...
작업 후 커밋
...

git checkout master로 이동
git merge 브랜치이름

 

 

 


여기까지의 작업은 한 파일을 한 사람만 건드린다는 가정 하에 진행되었다.

main.html은 한 사람만 담당하는 것과 같은 상황이다.

 

 

전체 순서
   git init
   git add .
   git status
   git commit -m "메세지"
   git log --pretty=oneline
   git checkout [커밋아이디, 브랜치명]
   git branch [브랜치명]
   git branch -d [브랜치명] : 브랜치 삭제
   git merge [브랜치명]
   git remote add [원격 저장소 이름] [서버의 경로]
   git remote -v
   git remote remove [원격 저장소 이름]
   git push [원격 저장소 이름] [원격 저장소의 브랜치]


팀장
   organization 생성
   팀원 초대
   repository 생성
   팀원 초대
   init(.gitignore)
   organization에 push

전원
   fork

팀원
   clone
   작업 브랜치 생성
   작업 진행
   add
   commit
   master 브랜치로 이동
   병합
   push origin
   PR
   팀장에게 연락
   작업 브랜치 이동
   작업 진행

팀장
   팀원에게 연락 옴
   PR 확인
   충돌 시 선택 후 확정
   충돌 없을 시 Merge
   팀원 전체에게 연락: 전체 pull 받으세요

팀원
   master 브랜치 이동
   pull project
   작업 브랜치 이동
   다른 작업자의 코드가 필요하면 merge
   작업 진행

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함