Git 커밋에서 Co-Authored-By Claude를 제거하는 방법

Claude Code는 커밋에 Co-Authored-By trailer를, 풀 리퀘스트에 Generated with Claude Code 한 줄을 붙입니다. 이를 없애는 설정, 그 설정을 넣을 파일, 이미 푸시한 커밋을 정리하는 방법을 알아봅니다.

Claude Code에 커밋을 맡기면, 메시지 끝에 직접 쓰지 않은 한 줄이 붙습니다: Co-Authored-By: Claude Opus 4.6 <[email protected]>. 그 상태로 풀 리퀘스트를 열면 설명 끝에 로봇 이모지와 "Generated with Claude Code"가 붙습니다. 둘 다 버그가 아닙니다. 둘 다 하나의 설정에서 나오며, 1분이면 바꿀 수 있습니다.

이 가이드에서는 그 설정, 나에게만, 한 프로젝트에, 또는 팀 전체에 적용하려면 어느 파일에 넣어야 하는지, 아직 남아 있을 수 있는 지원 중단된 키, 그리고 이미 이 줄이 붙은 커밋을 정리하는 방법을 다룹니다. Claude Code에 관한 내용은 설정 레퍼런스를 바탕으로 하며, 2026년 11월 12일에 Claude Code 2.1.318을 설치한 상태로 확인했습니다.

짧은 답. ~/.claude/settings.json에 다음을 넣으세요:

{
  "attribution": {
    "commit": "",
    "pr": ""
  }
}

새 커밋에는 더 이상 trailer가 붙지 않고, 새 풀 리퀘스트에서도 그 줄이 사라집니다. 변경 전에 만든 커밋은 다시 쓰기 전까지 그 줄을 그대로 갖고 있습니다.

Claude Code가 무엇을, 어디에 추가하는가

Claude Code는 세 곳에 어트리뷰션을 추가합니다. 각각 attribution 아래에 자기만의 하위 키가 있습니다.

위치Claude Code가 기본으로 추가하는 것하위 키
커밋 메시지trailer: Co-Authored-By: <model> <[email protected]>attribution.commit
풀 리퀘스트 설명로봇 이모지와 "Generated with Claude Code"attribution.pr
클라우드 또는 Remote Control 세션에서 만든 커밋이나 PRclaude.ai 세션 링크. 커밋에는 Claude-Session trailer로 붙음attribution.sessionUrl

trailer에 들어가는 이름은 커밋하는 시점에 사용 중인 모델입니다. 그래서 이 줄이 어떤 주에는 Claude Opus 4.6, 다음 주에는 Claude Sonnet 4.6이 되고, 이 문제를 검색하면 그렇게 많은 모델 이름이 나오는 것입니다. Claude Code가 Claude 모델임은 알아보지만 버전을 확인할 수 없을 때는 Claude만 씁니다. 사용자 지정 ANTHROPIC_BASE_URL 뒤의 모델이 아예 Claude 모델이 아닐 때는 Claude Code라고 씁니다. 서브에이전트가 커밋하면 trailer에는 서브에이전트의 모델이 들어갑니다.

이 줄은 git hook이 아닙니다. Claude가 직접 커밋이나 풀 리퀘스트를 작성할 때, Claude Code가 Claude에게 이 줄을 추가하라고 지시하는 것입니다. 터미널에서 직접 만든 커밋이나 다른 도구가 만든 커밋에는 절대 붙지 않습니다.

attribution 설정으로 끄기

attribution은 세 부분으로 된 객체를 받으며, 셋을 한꺼번에 끄려면 false를 받습니다.

값효과
"commit": ""커밋에 trailer 없음
"pr": ""풀 리퀘스트 설명에 어트리뷰션 줄 없음
"sessionUrl": false클라우드 또는 Remote Control 세션에서 만든 커밋과 풀 리퀘스트에 claude.ai 세션 링크 없음
"attribution": false셋 모두 한 번에 숨김. Claude Code 2.1.281 이상 필요

짧은 형식이 끌리지만, 먼저 버전 줄을 읽으세요. 2.1.281보다 오래된 Claude Code는 "attribution": false를 거부하며, 그 키를 무시하는 데서 끝나지 않습니다. 그 키가 들어 있는 설정 파일 전체를 권한, hook, 모델 설정과 함께 건너뜁니다. 버전이 다른 여러 컴퓨터에서 같은 파일을 읽는다면 긴 형식을 쓰세요:

{
  "attribution": {
    "commit": "",
    "pr": "",
    "sessionUrl": false
  }
}

파일이 로드됐는지 확인하려면 /status를 실행하세요. Setting sources 줄에 Claude Code가 읽은 모든 파일이 나열됩니다. 이미 열려 있던 세션이 계속 그 줄을 추가한다면 새 세션을 시작하세요.

어느 파일인가: 나, 한 프로젝트, 또는 팀 전체

이 키는 모든 설정 파일에서 작동합니다. 누구에게 적용될지는 파일이 정합니다.

파일적용 대상
~/.claude/settings.json나, 이 컴퓨터의 모든 프로젝트에서
프로젝트의 .claude/settings.json프로젝트에서 작업하는 모든 사람, 파일을 커밋한 뒤부터
프로젝트의 .claude/settings.local.json나, 이 프로젝트에서만. Claude Code는 이 파일을 만들 때 git에서 제외합니다
조직이 배포하는 managed settings조직이 배포하는 대상 모두

두 파일이 이 키를 설정하면 더 높은 쪽이 이깁니다. managed settings, 명령줄의 --settings, 프로젝트의 로컬 파일, 프로젝트의 공유 파일, 마지막으로 사용자 파일 순입니다. 이 순서에서 두 가지 경우가 나옵니다. 팀이 일부러 trailer를 유지하는 파일을 커밋했다면, 나만의 .claude/settings.local.json이 다른 사람에게는 아무 영향 없이 나에게만 그 설정을 덮어씁니다. 조직이 managed settings에서 attribution을 설정했다면, 내가 무엇을 써도 바뀌지 않습니다.

CLAUDE.md에서 Claude에게 이 줄을 추가하지 말라고 할 수도 있습니다. Claude Code는 Claude에게, 어트리뷰션에 관한 사용자 자신의 지시가 기본 줄보다 우선한다고 알려 줍니다. 단, 그 줄이 managed settings에서 온 경우는 예외입니다. 차이는 성격에 있습니다. 설정은 Claude Code가 요청하는 텍스트 자체를 없애고, 지시는 모델이 읽고 적용하는 것입니다. 설정을 쓰세요.

예전 키 includeCoAuthoredBy

attribution 이전에는 includeCoAuthoredBy가 스위치였습니다. Claude Code 2.0.62부터 지원 중단되었지만 여전히 읽힙니다:

  • "includeCoAuthoredBy": false는 커밋의 trailer와 풀 리퀘스트의 줄을 모두 숨깁니다.
  • attribution.commit이나 attribution.pr이 설정되는 순간 Claude Code는 includeCoAuthoredBy를 무시하고, 둘 중 설정하지 않은 쪽에는 기본 텍스트를 씁니다.

이 두 번째 규칙이 trailer가 다시 나타나는 흔한 이유입니다. includeCoAuthoredBy: false를 써 두었다가 PR 줄만 없애려고 "attribution": {"pr": ""}를 추가하면, 커밋 trailer가 다시 나타납니다. 이제는 attribution이 결정하는데 commit이 설정되어 있지 않기 때문입니다. attribution으로 옮기고 두 부분을 모두 설정하세요.

제거하는 대신 바꾸기

AI의 도움을 받은 커밋을 기록해 두고 싶지만 그 줄로는 싫다는 팀도 있습니다. attribution.commit은 trailer를 포함한 어떤 텍스트든 받습니다. git은 메시지의 마지막 문단에서만 trailer를 읽으므로, 끝에 함께 모아 두세요:

{
  "attribution": {
    "commit": "Assisted-by: Claude Code"
  }
}

이것을 프로젝트의 .claude/settings.json에 커밋하면 모든 팀원의 Claude Code가 같은 줄을 씁니다.

이미 trailer가 붙은 커밋

이 설정은 설정 이후에 작성된 커밋만 바꿉니다. 이미 있는 커밋에 맞는 도구는 그 커밋이 어디까지 퍼졌는지에 달려 있습니다.

마지막 커밋이고 아직 푸시하지 않았다면: amend로 고치고 에디터에서 그 줄을 지우세요.

git commit --amend

아직 공유하지 않은 브랜치의 커밋 여러 개라면: rebase로 하나씩 메시지를 고쳐 쓰세요.

git rebase -i origin/main

기록 전체라면: git filter-repo가 모든 커밋 메시지를 한 번에 다시 씁니다. 새로 클론한 저장소가 필요하고, 따로 설치해야 하는 도구입니다:

git filter-repo --message-callback '
return re.sub(rb"(?mi)^Co-Authored-By: Claude[^\n]*<noreply@anthropic\.com>\n?", b"", message).rstrip(b"\n") + b"\n"
'

기록을 다시 쓰는 데는 비용이 들고, 공유 브랜치에서는 대개 그 한 줄보다 비쌉니다. 처음 바꾼 커밋 이후의 모든 커밋 해시가 새로 바뀌므로, 푸시한 브랜치에는 강제 푸시가 필요하고, 모든 협업자가 새 기록에서 다시 시작해야 하며, 예전 커밋을 바탕으로 열린 풀 리퀘스트는 깨지고, 서명된 커밋은 서명을 잃습니다. 병합 전의 개인 브랜치라면 하세요. 다른 사람들이 이미 풀한 main 브랜치라면 그대로 두고, 앞으로를 위해 키를 설정하세요.

GitHub에서 trailer가 하는 일

GitHub는 Co-authored-by trailer를 읽고, 그 이메일 주소가 GitHub 계정에 속해 있으면 커밋에 공동 작성자로 표시합니다. 2025년 6월, anthropics/claude-code 저장소의 issue 두 개(#1653, #1655)가 그 주소를 통해 Anthropic과 무관한 GitHub 계정에 커밋이 귀속되었다고 보고했으며, 두 issue 모두 닫혔습니다. 어느 날 그 주소가 어떤 계정으로 연결되든, trailer를 제거하면 이후 커밋에서 공동 작성자가 사라집니다. 사라지는 것은 그 이후 커밋에서뿐입니다.

다른 CLI는 어떻게 하는가

자기 작업에 서명하는 것은 Claude Code만이 아니며, CLI마다 자기만의 스위치가 있습니다.

  • Codex. 2026년 11월 12일에 우리가 읽은 openai/codex 소스에서, 워크스페이스에 어트리뷰션이 활성화되어 있으면 Codex는 커밋에 Co-authored-by: Codex <[email protected]>를, 풀 리퀘스트 본문에 "Generated with Codex."를 추가합니다. 이는 세션이 시작될 때 가져오는 정책입니다. 정책이 꺼져 있으면 Codex는 두 줄 모두 추가하지 말라는 지시를 받습니다.
  • Aider. trailer를 추가하는 대신 git 작성자(author)와 커미터(committer) 이름에 "(aider)"를 덧붙입니다. --no-attribute-author와 --no-attribute-committer로 이를 끌 수 있고, --attribute-co-authored-by를 쓰면 대신 Co-authored-by trailer로 바뀝니다.

AgentsRoom에서는 어떻게 하는가

우리는 매일 같은 저장소에서 여러 에이전트를 돌립니다. Claude Code 옆에 Codex와 다른 에이전트들이 있고, 그들의 작업이 만나는 곳이 커밋입니다. 경우는 두 가지이며, 같은 규칙을 따르지 않습니다.

에이전트가 자기 터미널에서 직접 커밋할 때는 그 CLI가 메시지를 쓰므로 CLI 자체의 설정이 적용됩니다. Claude Code는 attribution, Codex는 워크스페이스 정책, Aider는 플래그입니다.

AgentsRoom에서 커밋할 때, 즉 변경사항 탭, 리뷰 모드, 에이전트를 닫을 때의 자동 커밋, 또는 모바일 앱의 변경사항 화면에서 커밋할 때는 AgentsRoom이 커밋을 작성하므로 어떤 CLI도 trailer를 추가하지 않습니다. 맨 아래에 들어가는 것은 AgentsRoom의 커밋 서명이며, 내용은 직접 정합니다. 기본적으로 커밋에 파일이 포함된 각 에이전트의 역할과 그 에이전트가 쓴 시간을 한 줄로 추가합니다:

bug : Fix the login redirect

AgentsRoom-Agent: fullstack; time=42m

각 항목은 설정 > Git > 커밋 서명에 있는 별도의 스위치로, 계정 전체, 프로젝트 폴더, 또는 프로젝트 하나 단위로 켜고 끌 수 있습니다. 에이전트의 역할, 소요 시간, 그리고 기본으로 꺼져 있는 비용, 할당량 사용 비율, 직접 입력한 프롬프트입니다. 에이전트와 소요 시간을 끄면 커밋은 이전과 정확히 같아집니다. 우리 저장소에서는 역할을 켜 둡니다. CLI 네 개가 커밋하는 저장소에서 모델 이름은 어떤 모델이 코드를 썼는지 알려 주고, 역할은 그 모델이 어떤 일을 하고 있었는지 알려 줍니다. 3주 뒤 어떤 변경이 무언가를 망가뜨렸을 때 우리가 찾는 것이 바로 그것입니다. 공개 변경 내역도 같은 줄을 읽어 각 릴리스에 어떤 에이전트가 참여했는지 보여 줍니다.

변경 뒤의 추론도 남기고 싶다면, Commit Context가 같은 trailer 블록에 에이전트 대화로 가는 링크를 추가합니다. 메시지를 아예 직접 쓰고 싶지 않다면, AI 커밋 메시지가 diff를 바탕으로 초안을 써 줍니다.

자주 묻는 질문

커밋에서 Co-Authored-By Claude를 제거하려면 어떻게 하나요?

~/.claude/settings.json에 "attribution": {"commit": "", "pr": ""}를 추가하세요. 그러면 Claude Code는 그 컴퓨터의 모든 프로젝트에서, 자신이 작성하는 커밋에 Co-Authored-By trailer를, 자신이 여는 풀 리퀘스트에 Generated with Claude Code 줄을 더 이상 붙이지 않습니다. Claude Code 2.1.281 이상에서는 "attribution": false 값 하나로 모두 숨길 수 있습니다. 변경 전에 만든 커밋에는 trailer가 그대로 남습니다.

includeCoAuthoredBy는 아직 작동하나요?

아직 작동하지만 Claude Code 2.0.62부터 지원 중단(deprecated) 상태입니다. includeCoAuthoredBy: false는 커밋의 trailer와 풀 리퀘스트의 줄을 모두 숨깁니다. 단, 더 새로운 키인 attribution이 commit 또는 pr을 설정하면 attribution이 우선합니다. 새 설정에는 attribution을 쓰세요.

trailer에 Claude가 아니라 Claude Opus 4.6이나 Sonnet 4.6이 적히는 이유는 무엇인가요?

trailer에는 커밋하는 시점에 사용 중인 모델 이름이 들어가므로, 모델을 바꾸면 함께 바뀝니다. Claude Code는 정확한 버전을 확인할 수 없을 때는 Claude만 쓰고, 사용자 지정 ANTHROPIC_BASE_URL 뒤의 모델이 Claude 모델이 아닐 때는 Claude Code라고 씁니다. 이 설정은 이 모든 변형을 제거합니다.

이미 만든 커밋에서 trailer를 제거하려면 어떻게 하나요?

마지막 커밋이라면 git commit --amend를 실행하고 그 줄을 지우세요. 아직 푸시하지 않은 커밋 여러 개라면 git rebase -i로 메시지를 고쳐 쓰세요. 기록 전체라면 git filter-repo에 message callback을 주어, 새로 클론한 저장소에서 모든 커밋의 그 줄을 지울 수 있습니다. 기록을 다시 쓰면 처음 건드린 커밋 이후의 모든 커밋 해시가 바뀌므로, 이미 푸시한 기록에는 강제 푸시가 필요하고 모든 협업자가 새 기록에서 다시 시작해야 합니다.

회사가 어트리뷰션을 강제로 다시 켤 수 있나요?

네. 조직이 배포하는 managed settings는 사용자가 관리하는 모든 파일보다 위에 있으므로, 그곳에 설정된 attribution 값은 사용자, 프로젝트, 로컬 설정보다 우선합니다. Claude Code에서 /status를 실행하세요. Setting sources 줄에 managed 소스가 적용되는지 표시됩니다.

trailer를 제거하면 AI를 사용했다는 사실이 숨겨지나요?

커밋 메시지에서 한 줄이 빠질 뿐, 다른 것은 아무것도 바뀌지 않습니다. 이 설정은 Claude Code가 직접 제공하며, 공식 문서도 이 줄을 유지하라고 요구하지 않습니다. 다만 일부 프로젝트와 고용주는 기여자에게 AI 도움을 밝히도록 요구하므로, 끄기 전에 푸시할 저장소의 규칙을 읽어 보세요.

DevOps 엔지니어콘텐츠 에디터프론트엔드 개발자영업 담당자백엔드 개발자코치·트레이너소프트웨어 아키텍트법무 담당QA 엔지니어재무·총무풀스택 개발자크리에이티브 디자이너모바일 개발자리서처보안 엔지니어인사·채용
프로젝트 매니저번역가Git 전문가데이터 분석가SEO 전문가회계 담당자로컬라이제이션 전문가홍보·PR브레인스토머운영·물류마케팅 전문가고객 지원프로젝트 어시스턴트구매 담당자커뮤니티 매니저개인 비서

AgentsRoom 다운로드

모든 AI 에이전트를, 모든 프로젝트에서, 하나의 창으로 실행하세요.

AgentsRoom 다운로드무료

컴패니언 앱: 이동 중에도 에이전트를 모니터링

Claude, Codex, Antigravity CLI 또는 다른 AI 공급자를 사용하세요.

확장 프로그램 설치
Chrome Web Store

버그와 요청을 공개 백로그로 바로 보내세요.

대화처럼 읽는 에이전트

에이전트마다 역할과 얼굴이 있고, 메신저 앱처럼 스레드를 읽을 수 있습니다.

대화 보기

AgentsRoom 대화 보기: AI 코딩 에이전트의 작업이 채팅 스레드로 표시된 화면
멀티 프로젝트
멀티 프로바이더
멀티 에이전트
실시간 상태
파일 diff & 커밋
모바일 앱
라이브 프리뷰
에이전트 팀
브라우저 자동화
백로그 기반 개발
프롬프트 라이브러리
스킬 라이브러리
모든 기능 보기

계속 읽기