Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
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 31
Tags
more
Archives
Today
Total
관리 메뉴

개발공부일지

Git ① - git workflow, git add, git commit 본문

ETC

Git ① - git workflow, git add, git commit

보람- 2023. 8. 18. 17:36

목차

1. Git이란?

2. Git 설정하기

3 .git

4. Git Workflow

5. commit 메시지 컨벤션

6. HEAD 옮기기

7. commit 되돌리기

8. 실습


 

 

 

1. Git이란?

- 버전 형상 관리

- 만약 A페이지에서 B페이지로 연결해 두었던 것을 C페이지로 변경했다가, 다시 B로 돌아갈 경우

   - 소스코드를 건드리지않고 예전으로 되돌리기위해 사용한다.

- git 과 github는 다른것!!!

 

 

2. Git 설정하기

 

  ① Git 설치하기

sudo apt install git

# mac일경우
sudo brew install git
git config --global core.autocrlt input

git init
# Initialized empty Git repository in /root/cli/.git/
# git 으로 관리하겠다는 뜻

ls -al
# .git 디렉토리가 생겨남!

 

 

  ② Git 사용자 이름과 이메일 설정하기

git config --global user.name "boram-blockchain"
git config --global user.email "penguniee@gmail.com"

git config --global init.defaultBranch main

 

 

 

3 .git

- .git : 우리가 작업한 모든 히스토리를 보관하는 저장소 (버전관리)

- 스냅샷 (사진을 찍는다)

- 코드 작성을 하고 저장해 스냅샷을 찍으면 그게 .git에 저장이 된다.

- 그래서 내가 지정한 곳에서 원하는대로 이동할수있다.

   (git을 잘하는사람은 스냅샷을 잘 조립할수있다는 것을 뜻한다.)

 

 

 

 

4. Git Workflow

 

① working directory

     - Untracked : 추적되지 않음 (한번도 git에 관리된적이 없는 파일)

     - Tracked : 추적됨

 

② staging area → "add"

 

③ Repository (.git)  → "commit

 

④ commit log

- git log 를 입력하면  "vi" 에디터로 commit log를 볼수있다.

- :q 로 나가기

 

 

 

5. commit 메시지 컨벤션

- feat : 새로운 기능 추가
- fix : 버그 수정
- docs : 문서수정
- style : 스타일 코드 수정(css말고 세미콜론같은거)
- design
- test
- refactor
- rename
- remove

 

 

6. HEAD옮기기

git checkout HEAD^
# 내기준에서 HEAD가 바로아래칸으로 내려간다.

git checkout HEAD~3
# 3칸아래로 내려간다.

git checkout [커밋번호]
git checkout master
git switch master #이게 최신문법
# 최상위로 올라가기

 

 

 

 

7. commit 되돌리기

 

reset

git rest --옵션 [커밋해시값]

  ★ 옵션

  - hard : 수정사항을 완전히 삭제한다 (강력함)

     - hard의경우 8개중 6번째꺼를 삭제한다면
     - 5번의 이름으로 hard를 하면 5번 위로 6,7,8 을 다 날려버린다.
     - 굉장히 강력한 문법으로 사용하지않는게 좋다


  - mixed : repository → working directory로 이동

    - mixed 를 쓰면 working디렉토리에 들어가서 거기있는것들을 묶어서 커밋할수도있다.


  - soft : repository → staging area 로 이동


revert

git revert [커밋해시값]

 

 

 

8. 실습

1. development.json 저장 후 commit

2. setting.json 파일만들고 저장 후 commit
{
  "port": 3000,
  "message": "App listening on the port 3000"
}

3. setting.xml 파일 만들고 저장 후 commit
<root>
    <port>3000</port>
    <message>App listening on the port 3000</message>
</root>

4. test.json 삭제 후 commit

5. development.json 변경 후 commit
{
"database":"board"
}

 

vscode 내에서 git graph를 설치하면 git log를 그래프로 볼수있다. (소스제어)

 


※ git status 입력하면서 git 상태 확인해보기!!!!

commit 할때 마다 고유의 hash 값이 생긴다.

※ 원상복구 할때는  git reflog

 

※ VI에디터를 기본값으로 설정하기

git config --global core.editor "vi"

 

.gitignore

- 관리하고싶지않은 폴더나 파일을 추적하지 않게 처리하는 방법

- .gitignore 파일을 만들고 그안에 파일이름을 적어주면된다.

    - package-lock.json
    - node_modules

   

 https://learngitbranching.js.org/

 

Learn Git Branching

An interactive Git visualization tool to educate and challenge!

learngitbranching.js.org

★ 한번에 한 커밋 위로 움직이는 ^ (캐럿)
git checkout main^

★ 한번에 여러 커밋 위로 올라가는 ~<num>  (틸드연산자)
git checkout HEAD~4

★ branch강제로 옮기기
git branch -f mian HEAD~3
→ 강제로 main 브랜치를 HEAD에서 3번 뒤로 옮겼다는것