Git이란
소프트웨어 개발에 있어 소스 코드의 변경 이력의 추척, 관리를 편리하게 할 수 있게 도와주는 수단
나 또는 협업을 하고 있는 다른 개발자가 코드를 작성하고 수정할 때 마다 변경사항을 저장한다. 이를 통해 손쉽게 이전의 상태로 되돌릴 수 있고, 여러명의 동시 개발에 있어 충돌도 방지할 수 있다.
Git의 핵심 개념
  • Repository (저장소)
    • Git이 코드 변경 사항을 저장하는 곳.
      로컬 저장소와 원격 저장소로 나뉜다. 
      로컬 저장소는 개발자 개인의 컴퓨터에, 원격 저장소는 여러 개발자가 공유하는 서버에 위치한다.
  • Commit (커밋)
    • 코드 변경 사항의 기록 단위.
      커밋은 코드 변경 사항에 대한 설명과 함께 저장되며 이를 통해 변경 이력을 추적할 수 있다.
  • Branch (브랜치)
    • 코드를 분리하여 독립적으로 작업할 수 있는 가상의 작업 공간.
      새로운 기능을 개발하거나 버그를 수정할 때 브랜치를 생성하여 작업하고, 작업이 완료되면 원래의 브랜치로 병합할 수 있다.
  • Merge (병합)
    • 두 개의 브랜치를 합치는 과정.
      작업이 완료되면 다른 브랜치의 변경 사항을 현재 브랜치에 통합하여 코드를 합친다.
  • Pull Request (풀 리퀘스트)
    • 코드 변경 사항을 다른 개발자에게 검토받고 통합하기 위한 요청.
      주로 오픈 소스 프로젝트나 팀 프로젝트에서 사용된다.

 

'Java > Git' 카테고리의 다른 글

main -> main (non-fast-forward) 처리  (0) 2024.02.27

 

branch를 main에 병합한 뒤 push 하련른 도중 일어난 문제

원인

- 로컬 브랜치가 원격 브랜치 보다 이력이 뒤쳐져 있어 발생 되는 문제

(Git이 익숙치 않아 솔직히 왜 최신의 로컬 브랜치가 원격 브랜치 보다 뒤쳐진건진 이해하지 못하겠다)

 

- 또는 원격 브랜치가 로컬 브랜치와 충돌하는 변경 사항을 가지고 있었을 경우.

(원격 브랜치에 적용 돼 있지 않았던 gradle 의 변경 사항 같은 것들이 로컬 브랜치에 존재 했는데 아마 이 때문이지 않을까 싶다. 앞으로 해당 문제가 재발생 된다면 다시 한번 두가지 문제를 고려해봐야겠다.)

 

해결 방안

- git push origin +main

우선 이렇게 '+'를 붙여 처리 했다.

지금이야 개인 프로젝트다 보니 간단하게 해결 했다만, 위의 명령어는 원격 저장소의 main 브랜치를 강제로 업데이트 하기 떄문에 일반적으로 권장 되는 방법은 아니다.

 

변경 사항을 강제로 푸시해야할 상황이 있어선 안되며 이러한 충돌이 있을 경우엔 충동 해결이 우선 돼야 한다.

(그러니까 차단기 떨어졌다고 그냥 올려 사용하지 말고 누전이나 또 다른 문제 해결이 우선시 된 후 차단기 올려 써라 이말)

'Java > Git' 카테고리의 다른 글

Git이란?  (0) 2024.05.10

+ Recent posts