서로 다른 컴퓨터에서 작업한 코드들을 github에 push하고 pull하면서 사용하려니, 계속 오류가 났다. 분명히 add 와 commit 을 다 했음에도 불구하고
Your local changes to the following files would be overwritten by merge
error : 다음 로컬 변경 사항을 병합 때문에 덮어 쓰게 됩니다.
병합하기 전에 변경 사항을 커밋하거나 스태시하십시오.
등 다양한 오류가 계속해서 발생하였다.
위의 오류는 git stash 후 다시 commit → push 하면 해결이 되기는 한다. 하지만 본질적인 해결방법은 아니므로 실질적인 오류를 고쳐보고자 한다.
계속 오류가 났던 이유는 github에 작업한 프로젝트를 푸시할 때 불필요한 파일이 계속 올라갔기 때문이다. 나는 여러 프로젝트를 이클립스와 연동해서 윈도우와 맥에서 사용을 하고 있는데, 로컬에서 수정한 내역이 전부 commit 에 반영이 되었고, 로그 기록들이 설정파일에 남아 변경사항이 지속적으로 업데이트가 되었습니다.
즉, 이것이 다 .metadata 디렉토리 때문에 일어난 일이었다. .metadata 는 쉽게 말해서 eclipse 설정이 보관되는 디렉토리이다.
이것을 .gitignore 설정을 통해서 수월하게 해결할 수 있다.
.gitigore 사용하기
- 프로젝트 작업시 로컬 환경의 정보나 빌드 정보등 원격 저장소에 관리하지 말아야되는 파일들에 대해서 지정하여 원격 저장소에 실수로 올라가지 않도록 관리하는 파일
- 정의한 정보들에 해당하는 파일들에 대하여 git track하지 않도록 설정하는 역할
개발환경에 관한 gitignore 폴더는 두가지 방법으로 만들 수 있다.
1. github 레파지토리 만들 때 생성
github에서 새로운 레파지토리를 만들 때 Add .gitignore 을 통해서 원하는 템플릿의 .gitignore 파일을 만들 수 있다.
나는 java에 대한 .gitignore 이 필요하므로 java 를 검색해서 생성해주었다.
2. gitignore.io 사용하기
github로 만드는 것은 간단하기는하나, 세세한 작업은 손수 써줘야하는 번거로움이 있다.
gitignore.io
Create useful .gitignore files for your project
www.toptal.com
gitignore.io 사이트를 이용하면 보다더 수월하게 .gitignore 폴더를 만들 수 있다.
메인 페이지 검색창에 원하는 운영체제, IDE, 프로그램 언어를 입력하면 끝이다!
나의 경우에는 eclipse에 대한 .gitignore 파일이 필요했으므로 eclipse를 검색했다.
생성하면 아주 간단히 소스파일을 얻을 수 있다.
# Created by <https://www.toptal.com/developers/gitignore/api/eclipse>
# Edit at <https://www.toptal.com/developers/gitignore?templates=eclipse>
### Eclipse ###
.metadata
bin/
tmp/
*.tmp
*.bak
*.swp
*~.nib
local.properties
.settings/
.loadpath
.recommenders
# External tool builders
.externalToolBuilders/
# Locally stored "Eclipse launch configurations"
*.launch
# PyDev specific (Python IDE for Eclipse)
*.pydevproject
# CDT-specific (C/C++ Development Tooling)
.cproject
# CDT- autotools
.autotools
# Java annotation processor (APT)
.factorypath
# PDT-specific (PHP Development Tools)
.buildpath
# sbteclipse plugin
.target
# Tern plugin
.tern-project
# TeXlipse plugin
.texlipse
# STS (Spring Tool Suite)
.springBeans
# Code Recommenders
.recommenders/
# Annotation Processing
.apt_generated/
.apt_generated_test/
# Scala IDE specific (Scala & Java development for Eclipse)
.cache-main
.scala_dependencies
.worksheet
# Uncomment this line if you wish to ignore the project description file.
# Typically, this file would be tracked if it contains build/dependency configurations:
#.project
### Eclipse Patch ###
# Spring Boot Tooling
.sts4-cache/
# End of <https://www.toptal.com/developers/gitignore/api/eclipse>
이것을 긁어서 .git 디렉토리가 있는 디렉토리에 추가해준다.
혹은 github .gitignore 수정 버튼을 눌러 직접 추가해주시고 commit을 하면 파일이 성공적으로 저장이 된다.
자신이 추가적으로 사용하고 싶지 않은 파일이 있다면 .gitignore에 작성하면 된다.
이렇게 .gitirnore 을 사용하면 프로젝트에서 관리가 필요하지 않은 파일에 대해서 git에서 추적 제외를 시켜준다. 또한, 협업 시 여러 작업환경에서 발생할 수 있는 데이터 충돌 및 손실을 방지할 수 있어서 유용하게 사용할 수 있다.
'공부 > 개발 이모저모' 카테고리의 다른 글
Homebrew 패키지 관리자 설치하기(설치, 검색, 확인, 삭제, 업데이트) (0) | 2022.09.07 |
---|---|
Eclipse 내에서 프로젝트 import 가 안 될 때 해결방법 (0) | 2022.08.22 |
스타벅스 모델링(데이터 베이스) (0) | 2022.06.28 |
데이터베이스(Database)와 관계형 데이터베이스(RDBMS) (0) | 2022.06.27 |
크롬 개발자 도구(Network Panel) (0) | 2022.06.25 |