git에서 작업 및 개인 커밋을 분리하는 방법(수정 및 방지)

당신은 개발자이고 개인 커밋에서 작업을 분리하려고 합니다. 실수로 개인 이메일을 사용하여 작업에 커밋하거나 업무용 이메일을 사용하여 오픈 소스 프로젝트에 커밋하지 않도록 해야 합니다.
git config user.name "Your Name"git config user.email "[email protected]"를 사용하여 각 프로젝트에 대한 이름과 이메일을 설정할 수 있다는 것을 확실히 알고 있지만 많은 리포지토리에서 작업하는 경우 지루하고 오류가 발생하기 쉽습니다. 모노 레포가 아닌 자체 리포지토리.

이 문제를 해결하는 것은 실제로 매우 간단합니다.

커밋에서 잘못된 이메일/이름 수정



리포지토리 폴더 내의 터미널에서 이 명령을 실행하여 변수WRONG_EMAIL를 잘못된 이메일로, NEW_NAME를 새 이름으로, NEW_EMAIL를 새 이메일로 변경하세요.




이것은 과거의 문제만 수정하며, 아래는 향후 문제를 방지하기 위한 보다 일반적인 솔루션입니다.



커밋에서 잘못된 이메일/이름 방지



작업 및 개인 폴더 만들기



작업 및 개인 프로젝트를 다른 폴더에 분리해야 합니다. 예를 들어 제 작업 폴더~/work와 개인 폴더~/personal가 있습니다. 내가 작업하는 모든 리포지토리는 ~/work 폴더에 있습니다. 나에게 개인적인 모든 저장소는 ~/personal 폴더에 있습니다.



각 폴더에 대한 gitconfig 만들기



두 폴더 모두에 gitconfig 파일을 만듭니다. 파일에는 다음 줄이 포함되어야 합니다.




# ~/work/gitconfig
[user]
  name = "Your Work Name"
  email = "[email protected]"





# ~/personal/gitconfig
[user]
  name = "Your Personal Name"
  email = "[email protected]"


글로벌 .gitconfig 설정



홈 폴더에 이미 .gitconfig 파일이 있을 수 있지만 없으면 홈 폴더의 루트에 파일을 하나 만드십시오.

아마도 다음 줄이 포함되어 있을 것입니다.




[user]
  name = "Your Name"
  # add your email if you will clone a repository in other folders other than your work or personal folder
  email = "[email protected]"


설정을 완료하려면 .gitconfig 파일에 다음 줄을 추가하기만 하면 됩니다.




# for your work repositories
[includeIf "gitdir:~/work/**"]
  path = ~/work/gitconfig

# for your personal repositories
[includeIf "gitdir:~/personal/**"]
  path = ~/personal/gitconfig


작동 원리



리포지토리를 복제하면 리포지토리의 루트에 있는 .gitconfig 파일을 읽습니다. 저장소가 작업 폴더에 있는 경우 작업 폴더의 gitconfig 파일을 읽습니다. 리포지토리가 개인 폴더에 있으면 개인 폴더의 gitconfig 파일을 읽습니다. 가장 좋은 점은 작업 및 개인 git에 대해 서로 다른 ssh 키가 있는 경우 다음과 같이 각gitconfig 파일에서 설정을 사용할 수 있다는 것입니다.




# ~/personal/gitconfig
[core]
    sshCommand = ssh -i ~/.ssh/personal
[user]
  name = "Your Personal Name"
  email = "[email protected]"





# ~/work/gitconfig
[core]
    sshCommand = ssh -i ~/.ssh/work
[user]
  name = "Your Work Name"
  email = "[email protected]"


바로!



출처:



좋은 웹페이지 즐겨찾기