Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
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
Archives
Today
Total
관리 메뉴

Yejom's Dev Log

[Git] 초기 세팅, 레포지토리, 브랜치, Git Bash 본문

Smart Factory Bootcamp

[Git] 초기 세팅, 레포지토리, 브랜치, Git Bash

Yejom 2024. 4. 23. 19:20

 

git - 소스 코드 파일 버전 관리

 

  • Command Line Interface (CLI)
 
  • 명령어

cd - 폴더 접속, 경로 입력 가능

cd . . - 하위 폴더로 나가기

ls - 폴더 내 파일 확인 가능

git init - 비어있는 폴더여야 함

.git 파일 건드리면 기능에 문제 생길 수 있음.

LF, CRLF - 줄바꿈에 대한 용어

파일을 깃으로 처리할 때 운영체제 호환 문제로 충돌이 발생할 수도 있음을 경고

https://www.mireene.com/webimg/linux_tip1.htm

 

리눅스 기본 명령어

chmod 화일 permission 변경 리눅스에서는 각 화일과 디렉토리에 사용권한을 부여. 예) -rwxr-xr-x   guestbookt.htmlrwx  :처음 3개 문자 = 사용자 자신의 사용 권한r-x  :그다음 3개 문자 = 그룹 사용자의 사

www.mireene.com


  • Git 초기 세팅 ~ 사용자 정보 등록

Git Bash에 아래 명령어 작성

$ git config --global init.defaultBranch main

$ git config --global user.name "GitHub 프로필 이름"

$ git config --global user.email "GitHub 이메일 주소"

$ git config --global --list
 

  • 레포지토리(Repogitory)

- Git으로 관리되는 폴더

바탕화면 Github 폴더에서 Open Git Bash Here 를 통해 접속

 

  • Git 레포지토리 생성

Git Bash에 아래 명령어 작성

$ git init 
# 해당 위치를 레포지토리로 만들어줌.

$ echo "hello world" > readme.txt 
# 파일에 내용(데이터셋) 작성 / 리눅스 명령어 / 기본 옵션

$ git status
# 현 레포지토리의 파일 상태 확인(트래킹) / 빨간색 파일은 변동 사항이 있는 파일

$ git add .
# 변동 사항이 있는 모든 파일을 "commit" 목록에 추가 / . 대신 파일 이름을 직접 지정하거나 *.txt처럼 특정 확장자만 선택하는 것도 가능

$ git status

$ git commit -m "study: first commit"
#  Git에서 버전을 생성하게 하는 명령어, 무조건 코멘트 하나를 달아야 함 / 고유한 커밋 ID가 부여됨

$ git log
# 커밋 내역 / 사용자 닉네임, 이메일, 시간, 메모 확인
 

  • Git Branch

- 서로 다른 환경에서 기능 추가를 위해 복붙, 덮어쓰기 하는 불편을 줄여줌.

- 서비스 중단 없이 수정 가능

- Main, Develop, Feature : branch 각각의 이름

- 동그라미는 commit 지점; 개발된 내용을 합치는 구간에서 버전 생성

 

도식 과정: new Branch 생성 -> Commit -> 기능 개발 -> Commit -> 테스트 -> Commit -> Main Branch와 Merge

 

※ Head는 항상 각 브랜치의 최신 커밋으로 ...

$ git init

$ echo "I'm Yejeong" > introduce.txt

$ git status

$ git add .

$ git commit -m "Intro"
# Commit 로그 생성

$ git log

$ git branch develop
# 새로운 Branch develop 생성

$ git switch develop
# Branch develop 으로 이동

$ git status
# develop에서 변동 사항 만들어주기

$ git add .

$ git commit -m "modified"
# Commit 로그 생성

$ git switch main
# Branch 이동, 매우 중요함

$ git merge develop
# Branch main과 develop 병합
 

※ Merge를 한다고 Branch가 사라지는 것은 아님. 안 쓰는 것은 지워주는 게 좋다.

$ git branch -d (브랜치이름)
# Branch 삭제

$ gitk
# Branch와 Commit 현황 확인 가능한 프로그램 열기
 

 

 
Git Branch 실습

 

###@DESKTOP-IEIUV5F MINGW64 ~/Desktop/YeRepo (main)
$ ls
MyCode.txt

###@DESKTOP-IEIUV5F MINGW64 ~/Desktop/YeRepo (main)
$ cat MyCode.txt
AAA
BBB
CCC
 

  • Git Conflict (충돌)
$ git merge dev
Auto-merging MyCode.txt
CONFLICT (content): Merge conflict in MyCode.txt
Automatic merge failed; fix conflicts and then commit the result.
 

'merge 충돌 상태'에서 벗어나지 않으면, 명령어가 안먹힘 (main|MERGING)

=> add와 commit 으로 해결 가능.

: 강제로 충돌 상태에서 빠져나오는 방법도 있지만 가능한 충돌을 해결해야 ...

 
메모장에서 충돌 내용 확인 -> 원하는 형태로 작성하고 저장
###@DESKTOP-IEIUV5F MINGW64 ~/Desktop/YE (main|MERGING)
$ git add .

###@DESKTOP-IEIUV5F MINGW64 ~/Desktop/YE (main|MERGING)
$ git commit -m "conflict resolved: ABC"
[main f020be5] conflict resolved: ABC

###@DESKTOP-IEIUV5F MINGW64 ~/Desktop/YE (main)
$ ls
MyCode.txt

###@DESKTOP-IEIUV5F MINGW64 ~/Desktop/YE (main)
$ cat *
ABC
 

메모장 저장 후에 변경 사항 add -> commit 으로 충돌 해결


  • Git Revert

git revert (커밋 ID)

이전 커밋 내역들을 남겨두고, 되돌리고 싶은 커밋의 코드만 복원.

새로운 커밋 내용을 추가

하나 이전의 커밋으로만 복원 가능함.

 

  • Git Reset

git reset (커밋 ID)

커밋 내역을 삭제하고 되돌리고 싶은 커밋의 코드로 돌아감.

 

※ 둘 다 조심해서 써야 한다 ,,,! 협업할 때는 revert 사용 추천