안경잡이개발자

728x90
반응형

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

 

 

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

 

 

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

 

 

728x90
반응형

728x90
반응형

  기본적으로 깃(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)에 푸시하면 어떻게 될 지 확인해봅시다.

 

 

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

 

 

728x90
반응형

728x90
반응형

  특정한 컴퓨터 환경에서 깃(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 파일을 확인해보았습니다.

 

 

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

 

 

728x90
반응형

728x90
반응형

  일반적으로 최신 리눅스 운영체제에는 깃(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 {계정 이메일}

 

 

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

 

728x90
반응형