기존 프로젝트를 Github으로 푸시


224

프로젝트 소스가있는 폴더가 있습니다. 이 프로젝트를 Github의 저장소로 푸시하는 방법은 무엇입니까?

이 단계를 사용해 보았습니다.

  1. GitHub에 빈 저장소를 만들었습니다.
  2. git-bash를 실행하고 typed git init이므로 프로젝트 루트 내부에 .git폴더가 나타납니다 .
  3. 사용하여 버전 제어에 일부 파일을 추가했습니다. git add sourcesFolderName
  4. 이전 단계에서 추가 한 파일을 사용하여 커밋했습니다. git commit -m "initial commit"
  5. 사용하여 원격 저장소를 지정했습니다. git remote add MyProject <url>
  6. 마지막으로 git push원격 리포지토리에 아무것도 푸시되지 않습니다 ... (권한 부여 실패 없음)

그렇다면 기존 소스를 새로 만든 github 저장소에 어떻게 넣을 수 있습니까?


4
결과는 정확히 무엇입니까 git push?
1615903

1
@ user1615903 단계 순서가 잘못되었다고 확신합니다. 나는 같은 것이 필요하다고 생각합니다 git clone. 의 출력을 기억하지 git push못하지만 중요하지 않다고 생각합니다. 다른 곳에 문제가 있기 때문에
MyTitle

당신은 했습니까 git push MyProject master?
Felix Kling

이 블로그 게시물은이 작업을 수행하려는 사람에게 도움이 될 수 있습니다. 모든 단계는 간단하고 자세하게 설명되어 있습니다. samranga.blogspot.com/2015/07/…
Samitha Chathuranga

1
작은 조언, SourceTree 앱을 사용해보십시오. UI는 매우 좋습니다.
Mohammad는

답변:


340
git init
git add .
git commit -m "Initial commit"
git remote add origin <project url>
git push -f origin master

-f에 옵션 git push힘 푸시. 사용하지 않으면 다음과 같은 오류가 표시됩니다.

To git@github.com:roseperrone/project.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'git@github.com:roseperrone/project.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first merge the remote changes (e.g.,
hint: 'git pull') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

5
이건 내 문제를 해결하지만 난 명령 (4)를 할 수없는 git remote add origin <project url>command syntax not correct. 나는 그것을 무시하고 일했다
칼릴 칼라프에게

4
참고로, GitHub 웹 사이트를 사용하지 않으려면 세 번째 단계 후에 curl -u 'USER' https://api.github.com/user/repos -d '{"name":"REPO"}'USER를 사용자 이름으로 바꾸고 REPO를 생성 할 저장소 이름으로 바꾸십시오.
MD XF

1
또한, 나는 더 이상 단지 할 수 있다고 생각 git add ., 당신은에 있음을 변경해서는 안 cat "# reponamehere" >README.md하고 git add README.md. 그것이 GitHub 문서에 나와있는 방법입니다
MD XF

2
나는 -f깃발이 원격 역사를 강제로 사라지게 할 것이라고 믿는가 ? 위험한 연산자 인 것 같습니다.
van abel

112

덜 기술적 인 용어로

내 대답은 다르지 않지만 새로운 정보는 정보의 차이를 메 우면 도움이 될 수 있기 때문에 더 많은 정보를 추가하고 있습니다.

github에서 repo를 만든 후에는 지침이 있습니다. 당신은 그것들을 따를 수 있습니다. 그러나 여기 git을 시작하는 것이 얼마나 실망 스럽기 때문에 몇 가지 추가 팁이 있습니다.

이미 로컬로 프로젝트를 시작했다고 가정 해 봅시다. 당신이 얼마나 중요하지 않습니다. 그러나 PHP 프로젝트가 있다고 가정 해 봅시다. index.php, contact.php 및 이미지, CSS 및 글꼴이있는 자산 폴더가 있다고 가정 해 봅시다. 이 방법으로 (쉽게) 할 수 있지만 많은 옵션이 있습니다.

옵션 1

github 계정에 로그인하여 저장소를 만드십시오.

여기에 이미지 설명을 입력하십시오

다음 화면에서 버튼 (화면 오른쪽)을 클릭하여 "바탕 화면에서 복제"하는 경우 필요한 위치에 복사 할 수 있습니다.

여기에 이미지 설명을 입력하십시오

기존 프로젝트의 내용을 새 저장소에 복사하거나 다른 방법으로 수행 할 수 있습니다. github 앱을 사용하면 GUI를 사용하여 커밋 할 수 있습니다 (즉, 응용 프로그램의 버튼을 클릭하면됩니다). 물론 커밋에 대한 메모를 입력하십시오.

옵션 2

  • 위에서 언급 한대로 github에서 리포지토리를 만듭니다.
  • 컴퓨터에서 터미널을 사용하여 디렉토리로 이동하십시오. 당신은 리눅스 명령 줄 것이다 사용하여 CD 디렉토리로가. 여기에서 다음 명령을 실행하여 기존 프로젝트를 github의 저장소에 "연결"하십시오. (이것은 github에서 repo를 작성했으며 현재 비어 있다고 가정합니다)

먼저 git (버전 제어)를 초기화하려면이 작업을 수행하십시오.

git init

그런 다음 모든 파일을 "모니터링"하도록 추가하십시오. 무시하고 싶은 파일이있는 경우 .gitignore간단하게하기 위해 추가 할 필요가 있지만이 예제를 사용하여 학습하십시오.

git add .

그런 다음 """첫 번째 커밋"등과 같은 메모를 커밋하고 추가합니다 .

 git commit -m "Initial Commit"

이제 여기에 기존 저장소를 추가하십시오.

git remote add github <project url>

그러나 글자 그대로 입력하지 말고 <project url>자신의 프로젝트 URL을 입력하십시오. 어떻게 얻습니까? 리포지토리가 github에있는 링크로 이동 한 다음 링크를 복사하십시오. 내 경우에는 내 repos 중 하나가 https://github.com/JGallardo/urbanhistorical 이므로이 명령에 대한 결과 URL은 그 뒤에 .git 을 추가 합니다. 그래서 여기에

git remote add github https://github.com/JGallardo/urbanhistorical.git

수행하여 작동하는지 테스트

git remote -v

리포지토리가 연결된 것을 볼 수 있습니다.

여기에 이미지 설명을 입력하십시오

그런 다음 변경 사항을 github에 푸시 할 수 있습니다

git push github master

또는

git push origin master

여전히 오류가 발생하면을 사용하여 오류를 강제 실행할 수 있습니다 -f. 그러나 팀 환경에서 작업하는 경우 강제하지 않도록주의하십시오. 그렇지 않으면 더 많은 문제가 발생할 수 있습니다.

git push -f origin master

3
가장 좋은 설명입니다. 이것을 읽는 다른 사람들을 위해 : 먼저 github에서 저장소를 만들었으므로 밀어 넣을 수 없습니다. <프로젝트 URL>을 github 풀한 다음 github 푸시해야했습니다. 그 후 모든 것이 잘되었습니다.
philologon

1
정말 감사합니다! 옵션 1은 다른 모든 옵션이 실패한 후 생명을 구했습니다! : D
Sara Inés Calderón

2
좋은 설명! 그러나 다음 줄을 추가합니다 : git remote add origin <project url> git push -f origin master. -f가 없으면 오류가 발생합니다
Javiar Sandra

1
당신의 대답은 최고 방법 것으로, 마지막 명령에 -f 옵션을 추가하십시오
코보 코닉

1
정말 도움이되었습니다! README를 사용하여 실수로 github repo를 초기화했는데 작동하지 않았습니다. 나는 빈 저장소로 다시 해냈고 효과가있었습니다.
Verena Haunschmid

36

푸시 할 때 분기원격 을 지정해야합니다 .

➤ git init ./
➤ git add Readme.md
➤ git commit -m "Initial Commit"
➤ git remote add github <project url>
➤ git push github master

예상대로 작동합니다.

다음을 수행하여 기본적으로이를 설정할 수 있습니다.

➤ git branch -u github/master master

git push원격 또는 분기를 지정하지 않고 마스터에서 작업을 수행 할 수 있습니다 .


1
옳은. /master중복되므로 부품을 건너 뛸 수도 있습니다 .
Gabriele Petronella

1
"git add Readme.md"가 잘못되었습니다. 이미 존재하면 추가 할 필요가 없습니다. 존재하지 않으면 명령이 실패합니다. 어느 쪽이든, 이것은 올바르지 않습니다.
Mitch

1
@Mitch 이것은 갑자기 당신의 컴퓨터가 당신이 원하는 것을하게 할 비밀 마법의 호출이 아닙니다. 사람들에게해야 할 일에 대한 아이디어와 아이디어를 제공하는 예입니다. 사람들이 컴퓨터에 입력하는 명령을 이해할 것으로 기대합니다.
brice

9

Mac을 사용하는 경우 (그리고 PC에서도 동일하게 작동 할 경우)이 작업을 수행하는 매우 쉬운 방법이 있습니다. 이상하게도 나는이 간단한 과정을 위해 높고 낮게 보았고 결코 찾지 못했습니다.

  • Github에서 계정을 가지고 있거나 사용 가능한 모든 저장소를 다 사용하지 않은 것 외에는 아무 것도하지 마십시오.
  • Mac 용 GitHub를 다운로드하여 설치하십시오. 계정 설정 등을 수행하십시오. 기존 프로젝트에 대한 저장소를 작성하지 마십시오.
  • 리포지토리의 "새 로컬 리포지토리 추가"
  • 기존 폴더를 선택하십시오. 그렇게 할 것인지 묻습니다. 예라고 말하십시오.
  • 완료되면 모든 파일 등의 목록이 표시됩니다. 커밋하십시오.
  • 리포지토리 및 게시로 이동합니다 (계정을 올바르게 설정하면 GitHub에서 새 리포지토리가 생성됩니다).
  • 리포지토리 및 푸시로 이동합니다 ( "누르지 않는 것"이 ​​표시되거나 파일 / 변경 사항을 새로 만든 리포지토리로 푸시합니다).
    • 왜이 간단한 과정을 다른 곳에서 찾을 수 없는지 궁금합니다.

프로젝트 폴더를 repo 폴더로 사용하지 않는 것이 좋습니다. 나는 항상 그것을하고, 항상 작동하고, 간단하게 만들고, 아무런 문제가 없습니다.


GitHub 앱으로 사용자가 이런 식으로 할 수 있다면 괜찮을 것 같습니다.
johnnieb


5

나는 Rose P의 이전 의견을 따를 것입니다. 해결책을 찾는 데 오랜 시간이 걸렸으므로 나에게 도움이되는 내용을 다시 게시하고 싶습니다.

1 단계 : Github.com에서 새 리포지토리 생성 (이미있는 경우 건너 뛰기)

2 단계 : XCode 닫기 ... 필요하지 않음

3 단계 : 새 터미널 창을 엽니 다 (예, 터미널을 사용해야합니다 ... 다른 방법으로 시도했지만 아무것도 작동하지 않습니다)

4 단계 : cd 명령을 사용 하여 프로젝트 (기존 또는 새 저장소에 추가하려는 프로젝트)의 폴더 위치 찾기

5 단계 : git init 을 입력 하면 이와 같은 것을 얻을 수 있습니다. / {현재 디렉토리}에서 기존 Git 저장소를 다시 초기화했습니다.

6 단계 : git add를 입력 하십시오. 이 단계 후에는 아무 일도 일어나지 않지만 입력 한 후 다음 단계로 넘어갑니다.

7 단계 : git commit -m "초기 커밋"을 입력하면 다음과 같은 결과가 나타납니다. # 브랜치 마스터에서 커밋 할 것이없는 작업 디렉토리 정리

또는

구성에 대한 설명과 변경된 파일 목록.

8 단계 : git remote add origin {project url}을 입력하십시오 . 프로젝트 URL은 Github.com에서 찾을 수 있습니다. HTTPS 복제 URL ... 단말기 창에 복사하여 붙여 넣기 만하면됩니다. 시스템에서 원점이 이미 존재한다고 알려면 다른 이름을 작성하거나 프로젝트 이름 (다른 이름)을 사용하십시오

9 단계 : Mac에서 GitHub 응용 프로그램으로 이동하여 "지점 동기화"버튼을 클릭합니다 (대기중인 변경 사항이없는 경우에도). 실제로 커밋하려면 시간이 걸리지 만 로컬 리포지토리 폴더로 돌아 가면 새 프로젝트가 표시됩니다. 부모 폴더를 다시 만들어야했지만 파일을 옮기는 것입니다. GitHub.com으로 이동하여 브라우저를 새로 고치면 새 파일도 있어야합니다.

도움이 되길 바랍니다.


5
Follow below gitbash commands to push the folder files on github repository :-
1.) $ git init
2.) $ git cd D:\FileFolderName
3.) $ git status
4.) If needed to switch the git branch, use this command : 
    $ git checkout -b DesiredBranch
5.) $ git add .
6.) $ git commit -m "added a new folder"
7.) $ git push -f https://github.com/username/MyTestApp.git TestBranch
    (i.e git push origin branch)

4
git init

새 로컬 저장소에 파일을 추가하십시오. 첫 커밋을 위해 준비합니다.

git add .

로컬 저장소에 파일을 추가하고 커밋을 위해 준비합니다. 파일을 언 스테이지하려면 'git reset HEAD YOUR-FILE'을 사용하십시오.

로컬 저장소에서 준비한 파일을 커밋하십시오.

git commit -m "First commit"
# Commits the tracked changes and prepares them to be pushed to a remote

저장소. 이 커밋을 제거하고 파일을 수정하려면 'git reset --soft HEAD ~ 1'을 사용하고 파일을 커밋하고 다시 추가하십시오. 원격 저장소 URL 복사 필드 GitHub 저장소의 빠른 설정 페이지 상단에서을 클릭하여 원격 저장소 URL을 복사하십시오.

명령 프롬프트에서 로컬 저장소가 푸시 될 원격 저장소의 URL을 추가하십시오.

git remote add origin remote repository URL
# Sets the new remote
git remote -v
# Verifies the new remote URL

로컬 저장소의 변경 사항을 GitHub로 푸시하십시오.

git push origin master
# Pushes the changes in your local repository up to the remote repository you 

원점으로 지정


4
  1. 명령 행에서 로컬 저장소 디렉토리로 이동하십시오.
  2. GitHub에서 새 저장소를 생성하면로 끝나는 링크가 제공됩니다 .git.
  3. cmd run에서 : git remote add origin [your_GitHub_Repository_link](링크로 끝나야 함을 기억하십시오 .git)
  4. 그런 다음 : git push -u origin master

이것이 도움이 되었기를 바랍니다.


4

새로운 리포지토리 생성

git clone <url>
cd "repositoryName"
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

기존 폴더

cd existing_folder
git init
git remote add origin <url>
git add .
git commit -m "Initial commit"
git push -u origin master

기존 Git 저장소

cd existing_repo
git remote rename origin old-origin
git remote add origin <url>
git push -u origin --all
git push -u origin --tags

커밋과 푸시의 차이점은 무엇입니까? "원점"과 "마스터"란 무엇입니까? 지점?
ealeon

2

먼저 Github에서 프로젝트 이름으로 새 리포지토리를 만든 다음 아래 단계를 따르십시오.

1)git init
2)git add *
3)git commit -m "first commit"
4)git remote add origin https://github.com/yuvraj777/GDriveDemo.git
5)git push -u origin master

2

나는 이것이 오래된 질문이지만 모든 단계를 설명하려고 노력하므로 다른 사람들에게 도움이 될 수 있습니다. 이것이 기존 소스를 git에 추가하는 방법입니다.

  1. 자식에 저장소를 만들면 ssh || https : 소스 코드를 원격으로 추가 할 위치.
  2. 터미널에서 프로젝트 경로로 이동하십시오.
  3. 실행하십시오 git init(여기서 프로젝트를 자식으로 시작하십시오).
  4. 실행하십시오 git add *(여기서 프로젝트의 모든 파일과 폴더를 추가하십시오).
  5. 실행하십시오 git commit -m "Initial Commit."(여기에서 4 단계에서 추가 한 파일 및 폴더를 커밋하고 변경 사항을 커밋하지 않으면 푸시 할 수 없음을 언급하십시오).
  6. 실행하십시오 git remote add origin https://your_username@bitbucket.org/your_username/project-name.git(여기서 소스를 푸시 할 원격 프로젝트를 추가하십시오 .1 단계의 ssh || https로 내 링크를 바꾸십시오).
  7. 실행하십시오 git push -u origin master(여기서 소스를 git 저장소로 푸시하십시오).

참고 : 소스를 마스터 브랜치 로 푸시하기위한 간단한 단계입니다 .


2

또 다른 대답을 추가하기를 싫어하지만 특정 시나리오는 여기에서 다루지 않습니다. 유지하려는 변경 기록이있는 로컬 리포지토리가 있었고 Github에서 비어 있지 않은 리포지토리가 생성되었습니다 (즉, 기본 README.md). 예, 언제든지 Github 저장소를 빈 저장소로 다시 만들 수 있지만 제 경우에는 다른 사람 이이 특정 저장소를 만들 수있는 권한이 있으며 쉬운 해결 방법이 있으면 문제를 일으키고 싶지 않습니다.

이 시나리오에서는 git push원격 원점을 설정 한 후 시도 할 때이 오류가 발생합니다 .

 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'git@github.com:<my repo>.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

오류에서 알 수 있듯이 git pull원격 원점을 설정 한 후 작업을 수행해야 했지만 --allow-unrelated-histories옵션 을 지정해야했습니다 . 이 옵션이 없으면 git pull불평warning: no common commits 합니다.

그래서 나를 위해 일한 정확한 명령 순서는 다음과 같습니다.

git remote add origin <github repo url>
cp README.md README.md-save
git pull origin master --allow-unrelated-histories
mv README.md-save README.md
git commit -a
git push

나는 같은 문제가 있지만, 당신의 단계는 이상한 텍스트 편집기로
이어집니다

아, 일반적으로 UI를 사용하고 일반적으로 명령 줄에서 커밋하지 않는 것 같습니다 (잘못되었습니다 .SourceTree UI를 사용합니다). 팝업 된 편집기는 vi 편집기 일 가능성이 높으며 인터페이스는 전체 주제이므로 여기서는 다루지 않겠습니다.
Jonathan Fischer

2

2019 년 7 월 29 일 현재 Github은 리포지토리 생성시이 작업을 수행하기위한 지침을 사용자에게 제공하며 다음과 같은 몇 가지 옵션을 제공합니다.

명령 행에 새 저장소를 작성하십시오.

git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/novomotus/vitaprice.git
git push -u origin master

명령 행에서 기존 저장소를 푸시

git remote add origin https://github.com/novomotus/vitaprice.git
git push -u origin master

다른 저장소에서 코드 가져 오기

import프로세스를 초기화하려면 버튼을 누르십시오 .

시각적 학습자들을 위해 :

여기에 이미지 설명을 입력하십시오




0

나는 "자연적인"순서로 업데이트를 자극하는 것이 강제로 밀어내는 것보다 쉬운 경로라는 것을 알았습니다.

리포지토리가 이미 github에서 생성되었다고 가정하고 README.md에 내용을 넣었을 수도 있습니다.

  1. 컴퓨터에서 터미널을 열고 git clone [repo URL]

  2. 리포지토리 이름이 포함 된 새 폴더가 생성 된 것을 볼 수 있습니다. 이름을 자유롭게 바꾸십시오-중요하지 않습니다.

  3. 코드, 파일 등을이 폴더로 이동하십시오. 필요한 경우 README.md를 편집하십시오.

  4. 이제 터미널 / 명령 프롬프트를 열고 해당 폴더에 들어간 다음 repo를 다음과 같이 업데이트하십시오.

git add .
git commit -m "v2"
git push origin master

참고 : commit 명령에서 git은 거부하여 사용자 이메일과 비밀번호를 먼저 구성하도록 요청합니다. 화면에 제공된 단계를 수행 한 다음 commit 명령을 다시 실행하십시오.

  1. 그리고이 세 가지 명령은 다른 업데이트를 푸시 할 때마다 지금 수행하는 작업입니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.