커밋 메시지가 없는 커밋을 만들어야 할 경우도 있을 수 있습니다. 하지만 이를 허용하기 위해서는 --allow-empty 옵션을 포함해야 합니다. 이는 메시지 없이 커밋을 생성하는 옵션과 파일의 내용이 변경되지 않은 상태에서 커밋을 생성하는 옵션 두가지가 있습니다. ▼ 이 옵션은 커밋 메시지가 비어 있는 커밋을 허용합니다.git commit --allow-empty-message -m ''▼ 이 옵션은 내용의 변경이 없는 빈 커밋을 허용합니다.git commit --allow-empty -m "This is an empty commit"
1. 특정 파일을 무시 # DB 접속 파일을 제외 mysql.php 2. 모든 세팅 파일을 무시 # 애스터리스크 (*) 기호를 사용하여 패턴을 정의할 수 있다. # 이런 문자를 셸 글로빙(globbing)이라고 합니다. *.ini 3. 제외하면 안되는 파일 설정 # 설정 파일은 제외하면 안 됨 !mysql.conf 4. .gitginore와 동일한 위치의 파일에 대한 설정 # 현재 디렉터리 안에 있는 파일 무시 /my.txt 5. /my/ 디렉터리 안의 모든 것을 무시 # /my/ 디렉터리 안의 모든 것을 무시 /my/ 6. 하위 디렉터리 패턴 파일 무시 # doc 디렉터리 아래의 모든 .txt 파일 무시 doc/**/*.txt
깃 기본 에디터 변경 ▼ 리눅스에서 git을 사용할 때 머지 하는 상황이나 git 에서 텍스트 수정이 있을 때 기본 에디터가 vim가 아닌 nano로 설정되어 있습니다. 하지만 vi 에디터를 주로 사용하기 때문에 다음 명령어를 통해서 git 의 에디터를 vim 으로 수정할 수 있습니다. ▼ 홈 폴더에 있는 .gitconfig 파일을 열어보면 다음과 같이 editor 가 vim으로 설정된 것을 확인할 수 있습니다. 위의 명령을 실행하지 않고 직접 .gitconfig 파일을 수정해도 될 것 같습니다.
CocodPods Podfile.lock CocoaPods 를 사용하면 Podfile.lock이라는 파일을 확인할 수 있습니다. 이는 일반적으로 .gitignore에 포함되지 않습니다. 그 이유는 여러 사용자(개발자)가 동일한 소스 서드파티 라이브러리를 공유하고 사용하기 위해서 입니다. repo를 업데이트 하거나 deintegrate 명령을 통해 파일을 변경할 수 있지만 해당 lock 파일이 고정 됨으로써 모두 동일한 소스를 사용한다고 보장할 수 있습니다. Package.resolved 이와 비슷하게 Xcode의 Swift Package Manager(이하 SPM)를 사용하면 다음과 같이 git에 commit 할 때 포함 여부를 묻습니다. 대체적으로 userdata 같은 경우는 Xcode에 포함하지 않는..
평소에 소스 머지를 위해서 소스트리나 깃허브의 Github Desktop으로 작업을 합니다. Git에 특화되어 있고 인텔리제이에 비해서 다양한 언어로 된 IDE를 독립적으로 관리할 수 있기 때문이죠. 하지만 최근에 인텔리제이로 작업을 많이 하게 되면서 그런 툴들을 쓰는 것도 귀찮고 해서 직접 인텔리제이에서 머지(merge) 작업을 하는 방법을 알아보았습니다. 매우 간단하고 편리합니다. 인텔리제이 Merge Branch ▼ 메뉴바에서 Git 메뉴를 선택하고 하위 메뉴중에 Merge...를 선택합니다. ▼ 머지할 대상 브랜치를 선택합니다. (현재 브랜치는 master) ▼ 다양한 옵션을 선택할 수 있습니다. --no-ff : fast-foward 관계라 하더라도 강제로 merge commit을 생성하고 병합..
컴퓨터 소프트웨어 개발에 있어서 Git으로 형상관리 및 버전관리를 하는 것이 거의 일반화되어 있습니다. 개발자라면 필수적으로 알아야 하는 툴을 꼽자면 저는 그중에 형상관리 툴인 Git이 생각납니다. 요즘은 GUI 툴도 있고 깃허브(Github)사 에서 나온 Github 데크스톱이 너무 훌륭해서 CUI 환경을 잘 몰라도 되지만 우리가 실수를 한 경우에는 조금 중요해집니다. 오늘은 깃(Git)에서 사용하는 3가지 상태와 커밋(Commit)을 취소하는 방법에 대해서 알아보겠습니다. Git의 3가지 상태 Git은 총 3가지의 상태를 가지고 있습니다. 그리고 다음과 같이 각 상태별로 지칭하는 영역이 달라집니다. 예를 들면 Staged 상태는 Staging area의 영역에 포함된 것이죠. Modifed Stage..