Programming/Git 6

깃(git) - 빈 커밋 Push 하기 (커밋이 트리거인 작업 실행)

빈 커밋 (Empty commit) Git과 연동되어 있는 자동 테스트/빌드를 포함한 여러 CI/CD 작업들은 새로운 커밋에 반응해 작동합니다. 가끔은 단순히, 프로젝트 소스는 유지한 채 소스 외의 부분에서 트리거를 일으킬 때가 있습니다. 아주 단순하게는, README 파일에 스페이스 하나 추가해서 커밋하는 등 방법이 있긴 하지만 그다지 좋은 방법은 아니예요. 이럴 땐 빈 커밋을 활용하면 좋습니다. Git에선 --allow-empty 옵션을 사용하면 돼요. git commit --allow-empty -m "Trigger notification" 메세지에는 아무 메세지나 적으시면 됩니다. 참고 https://coderwall.com/p/vkdekq/git-commit-allow-empty

Programming/Git 2019.08.12

깃(git) - 특정 커밋의 수정 내용 확인하기

과거의 특정 커밋 수정 내용 확인 깃으로 프로젝트를 관리하다 보면 예전 커밋의 변경 사항을 봐야할 때가 있기 마련입니다.간단한 명령어로 변경 사항을 확인할 수 있습니다.먼저 log 를 통해 원하는 커밋의 commit-id 를 알아냅니다. git log --oneline commit-id 를 복사했다면 다음 명령어들로 변경 사항을 알아낼 수 있습니다. git show COMMIT git diff COMMIT^! git diff COMMIT~ COMMIT git diff-tree -p COMMIT git show --color --pretty=format:%b $COMMIT 만약 현재 HEAD 가 가리키는 커밋의 변경 사항이 궁금하다면 commit-id 대신 HEAD 라고 적으면 됩니다. git show H..

Programming/Git 2019.01.10

깃(git) - 프로젝트/저장소마다 다른 계정 정보 사용하기

저장소별 계정 설정 Command line 에서 git을 사용하려면, git 설치 후 간단한 설정 두 가지 정도는 해줘야 편해요. 계정과 이름 설정을 해주면 git commit, git push 할 때마다 계정 정보를 입력하지 않아도 됩니다. git config --global user.name "awesometic" git config --global user.email "awesometic.lab@gmail.com" 뭐 이런 식으로요. 하지만 이게, 만약 제가 저장소마다 다른 계정으로 로그인해야할 경우 문제가 생겨요. 저런 설정 후 git commit을 때리면 묻지도 따지지도 않고 바로 global 설정된 계정 정보로 commit이 만들어집니다. 그 계정으로 하면 안 되는데 말이죠. 이럴 땐 저장소별..

Programming/Git 2018.04.02

깃(git) - 프로젝트 진행 중 저장소로부터 최신 소스 받아오기

git으로 관리중인 프로젝트에서 소스 코드를 막 변경하며 개발하다가, 저장소의 자신이 속한 branch의 소스가 다른 사람으로 인해 업데이트 되면 받아야 할 때가 생깁니다. 그냥 git pull 하면 충돌의 여지가 아주 많기 때문에 진행이 잘 되지 않습니다. 간단한 수정 또는 테스트용으로 살짝만 바꿨는데도 git pull이 잘 안 된다면, 아래와 같은 방법이 있습니다. 1. 기존 변경 사항을 무시 git reset --hard HEAD git pull reset --hard HEAD 는 가장 최근 커밋으로 소스 코드를 돌려버립니다. 이제 원격 저장소의 가장 최근 커밋과 같은 소스가 됐으니, 충돌이 일어날 리가 없죠. 이 상태에서 git pull을 하는 원리입니다. 아니면, git fetch --all g..

Programming/Git 2017.05.23

깃(git) - .gitignore 업데이트 후 적용하기

.gitignore 은 git으로 프로젝트를 관리할 때 관리하길 원하지 않는 파일명 규칙을 모아둡니다. 말이 어려운데, 만약 저 파일 안에 *.c 가 있으면 모든 C 소스 파일은 add, commite 되지 않아요. 버전 관리에 포함시키지 않습니다. 근데 처음 git 프로젝트를 생성할 때 같이 .gitignore을 생성했다면 몰라도, 프로젝트 진행 중 .gitignore을 업데이트 한다면 후에 적용해야 할 문제가 생깁니다. 그 문제를 손봐줍시다. 먼저 .gitignore을 입맛에 맞게 업데이트 해줍니다. 그리고, 새로운 .gitignore 규칙을 기존 파일들에도 적용하기 위해 아래의 명령어를 순서대로 쳐줍니다. 지우고, add하고, 다시 commit해주는 과정입니다. git rm -r --cached ...

Programming/Git 2017.05.23

Git 이란?

Git 은 소스 코드 관리 시스템 중 하나이다. 리눅스 토발즈가 포함된 개발 팀에서 리눅스 커널 개발 도중 더 나은 커널 개발 및 관리를 위해 만들어졌다. 분산 버전 관리 시스템(Distributed Version Control System, DVCS)이기도 하며, 이는 각 개발자가 중앙 서버에 접속하지 않고도 각자 코드 작업을 할 수 있다는 뜻이다. Git의 작업 폴더는 모두 전체 기록과 각 기록을 추적할 수 있는 정보를 포함하는 완전한 형태의 저장소(Repository)이다. 네트워크에 접속하거나, 중앙 서버에 의존하지 않는다. 이 말은 앞서 말한 분산 버전 관리 시스템이란 말과 같다. 즉, 각 개발자는 자신의 컴퓨터에 모든 파일을 다 받아서 작업을 진행한다. 만약 자신이 git에 올라온 리눅스 커널..

Programming/Git 2016.04.04