윈도우 커맨드(Command) 줄 바꾸기 & 줄 합치기
윈도우(Windows)는 리눅스와 다른 커맨드 명령어 입력 체계를 가지고 있습니다. 윈도우에서 줄 바꿈을 수행할 때는 다음과 같이 수행하면 됩니다. 바로 ^를 이용하는 것입니다.

또한 줄 합치기, 즉 여러 개의 명령어를 한 줄에 연속적으로 수행하고자 할 때는 &&를 이용할 수 있습니다.

그래서 다음과 같이 줄 합치기 명령어와 줄 바꾸기 명령어를 함께 사용할 수도 있습니다.

'기타' 카테고리의 다른 글
| 깃(Git) fatal: refusing to merge unrelated histories 오류 (0) | 2019.04.09 |
|---|---|
| git filter-branch 명령 되돌리는 방법 (실행 취소) (0) | 2019.04.09 |
| git commit을 진행할 때 username이 root 계정으로 설정되는 경우 (0) | 2019.04.06 |
| 웹 사이트 저장소! 웹 아카이브(Web Archive)를 살펴보자 (0) | 2019.04.05 |
| Git Archive 명령을 이용해 소스코드만 추출하기 (0) | 2019.04.03 |
이미 작성된 Git Commit의 날짜와 시간을 변경해보자!
기본적으로 깃(Git)은 특정한 프로젝트의 소스코드가 언제 변경되었는지 등을 감지하여 이력을 알려준다는 특징이 있습니다. 우리가 소스코드를 변경해서 커밋(Commit)을 진행하면 그 커밋이 진행된 시점을 기억하여, 깃 사용자에게 알려줍니다.
일반적으로 깃의 커밋 날짜는 변경하기 어렵다거나 변경하지 못하는 것으로 알고 있는 사람들이 많습니다. 하지만 실제로는 깃의 커밋 날짜 또한 변경이 가능합니다.
그래서 흔히 말하는 깃 허브 잔디밭의 '1일 1커밋'도 어렵지 않게 조작하여 달성할 수 있습니다.
저는 실습을 위해서 다음과 같이 하나의 깃 프로젝트를 준비해보았습니다.

① 필터링을 이용하는 방법
이 방법은 깃(Git)의 필터링 기능을 이용하는 방법입니다. 다만 모든 커밋 내역을 살펴보며 필터링을 수행한다는 점에서, 프로젝트의 규모가 클수록 오랜 시간이 걸릴 수 있습니다.
git filter-branch -f --env-filter \
'if [ $GIT_COMMIT = {Commit 해시 값} ]
then
export GIT_AUTHOR_DATE="Jan 1 10:00 2019 +0900"
export GIT_COMMITTER_DATE="Jan 1 10:00 2019 +0900"
fi'
또한 여기에서 주의할 점은, 위 소스코드에서 if문 안에 들어가는 내용에서 공백에 유의하셔야 한다는 것입니다. 공백을 지워버리면 제대로 동작하지 않을 수 있습니다.

적용 이후에 실제로 깃 로그(Log)를 확인해보시면 다음과 같이 변경되어 있는 것을 확인할 수 있습니다. 그와 더불어 변경된 커밋 이후의 커밋들의 해시 값까지 모두 변경되어 있는 것을 확인할 수 있습니다.

② git rebase를 이용하는 방법
우리는 git rebase를 이용해서도 특정한 커밋의 날짜를 변경할 수 있습니다.
git rebase {commit 해시 값} -i
기본적으로 rebase 명령어를 이용할 때는 변경하고자 하는 커밋의 이전 커밋을 기준으로 하여 -i 옵션(인터렉티브)으로 에디터 창을 열어주시면 됩니다.

이후에 변경하고자 하는 커밋의 선택 내용을 edit으로 적용하시면 됩니다.

이후에 다음의 명령어로 커밋 내역의 날짜를 변경하시면 됩니다.
GIT_COMMITTER_DATE="{날짜}" git commit --amend --no-edit --date "{날짜}"
저는 다음과 같이 2019년 1월 1일의 날짜로 커밋 내역을 변경했습니다.

결과적으로 변경 내역을 적용하고자 할 때는 git rebase --continue를 입력하시면 됩니다.

변경된 내용을 깃 허브에 푸시하면 어떻게 될까?
실제로 변경된 내용을 깃 허브(Git Hub)에 푸시하면 어떻게 될 지 확인해봅시다.

재미있게도, 잔디밭에도 해당 변경된 커밋의 날짜에 맞게 색깔이 칠해져 있는 것을 확인할 수 있습니다.

'Git으로 시작하는 협업과 오픈소스 프로젝트' 카테고리의 다른 글
| 자신의 깃허브(GitHub) 랭킹 및 통계 확인 방법 (0) | 2020.12.04 |
|---|---|
| 깃허브(GitHub)에서 Organization를 생성하여 다수의 사용자에게 Private 저장소 Read-Only 권한 부여하기 (0) | 2020.11.09 |
| 깃(Git) 환경설정(config)에 대해서 알아보자! (0) | 2019.04.06 |
| Git Rebase 명령을 이용해 특정한 커밋 수정/삭제 하기 (0) | 2019.04.03 |
| Git 프로젝트 소개글(README.md) 작성하기 [Git으로 시작하는 협업과 오픈소스 프로젝트 11강] (0) | 2018.12.23 |
깃(Git) 환경설정(config)에 대해서 알아보자!
특정한 컴퓨터 환경에서 깃(Git)을 이용할 때에 대한 전반적인 환경설정은 어떻게 다룰 수 있을까요? 일반적으로 우리가 컴퓨터에 깃(Git)을 설치한 뒤에 가장 먼저 하는 것은 깃 계정을 설정하는 일입니다. 저는 리눅스 컴퓨터를 기준으로 하여 깃 환경설정 방법에 대해서 소개하도록 하겠습니다.
깃 사용자를 글로벌(모든 프로젝트에 적용)하게 설정할 때는 다음과 같이 할 수 있습니다.
git config --global user.name "{계정명}"
git config --global user.email {계정 이메일}

이렇게 설정된 사용자에 따라서 후에 실제로 커밋(Commit) 등의 정보가 기록됩니다. 또한 이러한 환경설정 정보를 확인하고자 할 때는 다음과 같은 명령을 이용할 수 있습니다.
git config --list

또한 기본적으로 ~/.gitconfig 경로로 이동하시면 특정 사용자에게만 적용되는 깃 환경설정 정보를 확인할 수 있습니다. 저는 한 번 다음과 같이 root 계정의 깃 환경설정 정보를 확인해보도록 하겠습니다.

실제로 .gitconfig 파일의 내용을 확인했더니 다음과 같이 깃 계정 정보가 기록되어 있는 것을 확인할 수 있었습니다.

깃 환경설정 파일은 자신이 직접 수정해서 그 내용을 바꿀 수도 있습니다.


내용을 바꾸어 저장한 결과, 성공적으로 변경된 내용이 반영되어 있는 것을 확인할 수 있습니다.

또한 자주 사용되는 설정으로 core.editor 설정이 있습니다. 이는 깃(Git) 전용 텍스트 에디터를 설정하는 것입니다. 저는 vim보다는 vi를 선호하므로 vi가 사용될 수 있도록 설정하곤 합니다.

또한 특정한 깃 프로젝트의 .git 폴더로 가면 해당 프로젝트에만 적용되는 환경설정을 진행할 수도 있습니다. 저는 한 번 다음과 같이 실제로 특정한 깃 프로젝트의 .git 폴더로 가서 config 파일을 확인해보았습니다.

다음과 같이 글로벌 설정과는 다른, 해당 프로젝트만의 깃 환경설정이 이루어져 있는 것을 확인할 수 있습니다. 또한 이를 수정하여 프로젝트에 대한 환경설정을 진행할 수 있는 것입니다.

'Git으로 시작하는 협업과 오픈소스 프로젝트' 카테고리의 다른 글
| 깃허브(GitHub)에서 Organization를 생성하여 다수의 사용자에게 Private 저장소 Read-Only 권한 부여하기 (0) | 2020.11.09 |
|---|---|
| 이미 작성된 Git Commit의 날짜와 시간을 변경해보자! (2) | 2019.04.06 |
| Git Rebase 명령을 이용해 특정한 커밋 수정/삭제 하기 (0) | 2019.04.03 |
| Git 프로젝트 소개글(README.md) 작성하기 [Git으로 시작하는 협업과 오픈소스 프로젝트 11강] (0) | 2018.12.23 |
| Git 로그 다루기 [Git으로 시작하는 협업과 오픈소스 프로젝트 10강] (0) | 2018.12.23 |
git commit을 진행할 때 username이 root 계정으로 설정되는 경우
일반적으로 최신 리눅스 운영체제에는 깃(Git)이 기본적으로 설치되어 있습니다. 그래서 상당수 개발자 분들은 리눅스 환경에서 개발을 진행한 뒤에 곧 바로 깃 허브(Git Hub)에 커밋(Commit)을 진행하는 경우가 많습니다.
이 경우 바로 깃에 커밋을 진행하면 다음과 같이 root 계정으로 커밋이 진행될 수 있습니다.

이 경우 실제로 해당 리눅스 서버에서 깃(Git) 환경설정이 어떻게 진행되어 있는지 확인해야 합니다.
git config --list

저는 확인 결과 어떠한 환경설정도 이루어지지 않은 상태인 것을 알 수 있었습니다. 따라서 이 때는 계정(user.name)과 이메일(user.email) 설정을 진행해주시면 됩니다. 저는 다음과 같이 제 깃 허브(Git Hub) 계정과 동일하게 계정명과 계정 이메일을 설정해주었답니다.
git config --global user.name "{계정명}"
git config --global user.email {계정 이메일}

이후에 다시 커밋을 진행하면 다음과 같이 정상적으로 자신의 깃 허브 계정으로 출력되는 것을 확인할 수 있습니다.

'기타' 카테고리의 다른 글
| git filter-branch 명령 되돌리는 방법 (실행 취소) (0) | 2019.04.09 |
|---|---|
| 윈도우 커맨드(Command) 줄 바꾸기 & 줄 합치기 (0) | 2019.04.06 |
| 웹 사이트 저장소! 웹 아카이브(Web Archive)를 살펴보자 (0) | 2019.04.05 |
| Git Archive 명령을 이용해 소스코드만 추출하기 (0) | 2019.04.03 |
| 깃(Git) 커미터(Committer) 이름 변경하는 방법 (1) | 2019.04.02 |
