# 리포지토리에 파일 추가

명령줄을 사용하거나 리포지토리에 GitHub 기존 파일을 업로드하고 커밋할 수 있습니다.

## 에 리포지토리에 파일 추가 GitHub

브라우저를 통해 리포지토리에 추가하는 파일은 파일별로 제한 25MiB 됩니다. 명령줄을 사용해 파일당 최대 100MiB의 더 큰 파일을 추가할 수 있습니다. 자세한 내용은 [명령줄을 사용하여 리포지토리에 파일 추가](#adding-a-file-to-a-repository-using-the-command-line)를 참조하세요.
100MiB보다 큰 파일을 추가하려면 Git 대용량 파일 스토리지을(를) 사용해야 합니다. 자세한 내용은 [GitHub의 대용량 파일 정보](/ko/repositories/working-with-files/managing-large-files/about-large-files-on-github)을(를) 참조하세요.

최대 100 파일을 동시에 업로드할 GitHub 수 있습니다.

리포지토리에 보호된 분기가 있는 경우 GitHub를 사용하여 보호된 분기의 파일을 편집하거나 업로드할 수 없습니다. GitHub Desktop을 사용하여 변경 내용을 새 분기로 이동하고 커밋할 수 있습니다. 자세한 내용은 [보호된 분기 정보](/ko/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches) 및 [GitHub Desktop에서 프로젝트 변경 내용 커밋 및 검토](/ko/desktop/making-changes-in-a-branch/committing-and-reviewing-changes-to-your-project-in-github-desktop)을(를) 참조하세요.

리포지토리에 푸시 규칙 집합이 활성화되어 있을 수 있습니다. 푸시 규칙 집합은 특정 제한 사항에 따라 리포지토리에 새 파일 만들기를 차단할 수 있습니다. 푸시 규칙 집합은 리포지토리의 전체 포크 네트워크에 적용됩니다. 즉, 루트 리포지토리에 구성된 모든 푸시 규칙 집합은 리포지토리의 모든 포크에도 적용됩니다. 자세한 내용은 [규칙 세트에 대한 정보](/ko/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/about-rulesets#about-rulesets)을(를) 참조하세요.

리포지토리는 푸시 보호로 보호할 수 있습니다. 푸시 보호를 GitHub 사용하면 파일에 토큰과 같은 지원되는 비밀이 포함된 경우 리포지토리에 파일 업로드를 차단합니다. 파일을 다시 업로드하기 전에 파일에서 비밀을 제거해야 합니다. 자세한 내용은 [GitHub UI에서 푸시 보호 작업](/ko/code-security/how-tos/secure-your-secrets/work-with-leak-prevention/push-protection-in-the-github-ui) 및 [GitHub UI에서 푸시 보호 작업](/ko/code-security/how-tos/secure-your-secrets/work-with-leak-prevention/push-protection-in-the-github-ui#resolving-a-blocked-commit)을(를) 참조하세요.

> \[!NOTE] 웹 UI에서 파일 업로드에 대한 푸시 보호는 현재 공개 미리 보기 버전이며 변경될 수 있습니다.

> \[!WARNING]
> `.gitattributes` 파일에 논리를 적용해야 하는 경우 Git을 사용하여 리포지토리에 파일을 푸시합니다. 줄 끝의 자동 변환을 예로 들 수 있습니다. GitHub 웹 인터페이스를 통해 파일을 업로드하면 `.gitattributes`은 무시됩니다.

1. GitHub에서 리포지토리의 기본 페이지로 이동합니다.
2. 파일 목록 위에서 **파일 추가** 드롭다운 메뉴를 사용하고 **파일 업로드**를 선택합니다. 또는 파일을 브라우저로 끌어서 놓을 수 있습니다.

   ![리포지토리의 기본 페이지 스크린샷. 파일 목록 위에 "파일 추가" 레이블의 단추가 진한 주황색으로 표시됩니다.](/assets/images/help/repository/upload-files-button.png)
3. 업로드할 파일을 선택하려면 파일 또는 폴더를 끌어서 놓거나 **파일 선택**을 클릭합니다.
4. "커밋 메시지" 필드에, 파일의 변경 내용을 설명하는 커밋 메시지를 간결하고 명확하게 입력합니다. 커밋 메시지에 커밋을 둘 이상의 작성자에게 귀속시킬 수 있습니다. 자세한 내용은 [여러 작성자를 사용하여 또는 조직을 대신하여 커밋 만들기](/ko/pull-requests/how-tos/commit-changes/creating-a-commit-with-multiple-authors)을(를) 참조하세요.
5. 커밋 메시지 필드 아래에서 현재 분기 또는 새 분기에 커밋을 추가할지 여부를 결정합니다. 현재 분기가 기본 분기인 경우 커밋에 대한 새 분기를 만든 다음 끌어오기 요청을 만들도록 선택해야 합니다. 자세한 내용은 [끌어오기 요청 만들기](/ko/pull-requests/how-tos/create-pull-requests/creating-a-pull-request)을(를) 참조하세요.

   ![기본 분기에 직접 커밋하거나 새 분기를 만드는 라디오 단추를 보여 주는 GitHub 끌어오기 요청의 스크린샷 새 브랜치가 선택되었습니다.](/assets/images/help/repository/choose-commit-branch.png)
6. **변경 제안**을 클릭합니다.

## 명령줄을 사용하여 리포지토리에 파일 추가

명령줄을 사용하여 기존 파일을 리포지토리에 GitHub 업로드할 수 있습니다.

> \[!TIP]
> [웹 사이트에서 리포지 GitHub 토리에 기존 파일을 추가할](/ko/repositories/working-with-files/managing-files/adding-a-file-to-a-repository) 수도 있습니다.

이 절차에서는 사용자가 이미 다음을 수행했음을 가정합니다.

* [GitHub에 리포지토리를 만들었거나](/ko/repositories/creating-and-managing-repositories/creating-a-new-repository), 기여할 다른 사용자가 소유한 기존 리포지토리가 있음
* [컴퓨터에 로컬로 리포지토리를 복제했음](/ko/repositories/creating-and-managing-repositories/cloning-a-repository)

> \[!WARNING]
> 원격 리포지토리에 암호 또는 API 키 등의 중요한 정보를 절대 `git add`, `commit`, `push`하지 마세요. 이 정보를 이미 추가한 경우 [Removing sensitive data from a repository(리포지토리에서 중요한 데이터 제거)](/ko/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository)을(를) 참조하세요.

1. 컴퓨터에서 GitHub에 업로드하려는 파일을 리포지토리를 복제했을 때 생성된 로컬 디렉터리로 이동합니다.

2. <span class="platform-mac">터미널</span><span class="platform-linux">터미널</span><span class="platform-windows">Git Bash</span>를 엽니다.

3. 현재 작업 디렉터리를 로컬 리포지토리로 변경합니다.

4. 로컬 리포지토리에 커밋할 파일을 스테이징합니다.

   ```shell
   $ git add .
   # Adds the file to your local repository and stages it for commit. 파일의 스테이징을 해제하려면 ‘git reset HEAD YOUR-FILE’을 사용합니다.
   ```

5. 로컬 리포지토리에서 스테이징한 파일을 커밋합니다.

   ```shell
   $ git commit -m "Add existing file"
   # Commits the tracked changes and prepares them to be pushed to a remote repository. 이 커밋을 제거하고 파일을 수정하려면 ‘git reset --soft HEAD~1’을 사용하여 파일을 다시 커밋하고 추가합니다.
   ```

6. GitHub.com에 로컬 리포지토리의 [변경 사항을 푸시](/ko/get-started/using-git/pushing-commits-to-a-remote-repository)합니다.

   ```shell
   $ git push origin YOUR_BRANCH
   # Pushes the changes in your local repository up to the remote repository you specified as the origin
   ```

## 추가 참고 자료

* [GitHub에 로컬로 호스트된 코드 추가](/ko/migrations/importing-source-code/using-the-command-line-to-import-source-code/adding-locally-hosted-code-to-github)