어떤 이유로 든, 나는 지금 밀 수는 없지만 어제 할 수는 있습니다. 어쩌면 구성이나 무언가를 엉망으로 만들었습니다.
이것이 일어나는 일입니다.
git push origin master를 사용할 때
내 작업 디렉토리 및 원격 저장소는 다음과 같습니다.
어떤 이유로 든, 나는 지금 밀 수는 없지만 어제 할 수는 있습니다. 어쩌면 구성이나 무언가를 엉망으로 만들었습니다.
이것이 일어나는 일입니다.
git push origin master를 사용할 때
내 작업 디렉토리 및 원격 저장소는 다음과 같습니다.
답변:
GitHub 리포지토리가 새로운 커밋이 푸시 된 것을 보았을 때 로컬에서 작업하는 동안 다음을 사용하는 것이 좋습니다.
git pull --rebase
git push
전체 구문은 다음과 같습니다.
git pull --rebase origin master
git push origin master
Git 2.6 이상 (2015 년 9 월)을 사용한 후 (한 번)
git config --global pull.rebase true
git config --global rebase.autoStash true
간단한 git pull
것만으로 충분합니다.
(참고 : Git 2.27 Q2 2020 에서는 merge.autostash
리베이스없이 일반 풀에 사용할 수 있습니다)
그런 식으로, 당신은 (재생 것이다 --rebase
새로 업데이트의 상단에 해당 지역의 커밋 부분) origin/master
(나 origin/yourBranch
: git pull origin yourBranch
).
6 장 Git Pocket Book의 리베이스 로 끌어 오기 장 에서 더 완전한 예를 참조하십시오 .
나는 추천 할 것이다 :
# add and commit first
git push -u origin master
그러면 로컬 마스터 지점과 업스트림 지점간에 추적 관계가 설정됩니다.
그 후, 해당 지점에 대한 향후 푸시는 간단하게 수행 할 수 있습니다.
git push
" 새 분기를 명시 적으로 푸시해야하는 이유는 무엇입니까? "를 참조하십시오.
OP가 이미 재설정되고 커밋 을 다시 실행 한 이후 origin/master
:
git reset --mixed origin/master
git add .
git commit -m "This is a new commit for what I originally planned to be amended"
git push origin master
필요가 없습니다 pull --rebase
.
참고 : git reset --mixed origin/master
또한 기록 할 수 git reset origin/master
때문에, --mixed
옵션을 사용하여 기본 중 하나입니다 git reset
.
누구든지 시도 했습니까?
git push -f origin master
문제를 해결해야합니다.
편집 : 아래의 @Mehdi의 의견을 바탕으로에 대해 명확히해야합니다
—force pushing
. 위의 git 명령은 첫 번째 커밋에만 안전하게 작동합니다. 이전에 커밋, 풀 요청 또는 분기가 이미 있으면 모든 재설정하고 0에서 설정합니다. 그렇다면 더 나은 솔루션을 위해 @VonC의 자세한 답변을 참조하십시오.
-f
/ 대신 --force
항상 사용 --force-with-lease
하는 것이 안전합니다 . 이로 인해 다운 스트림 변경 사항이 있으면 푸시로 인해 방해받을 수 있습니다. --force-with-lease
일상 생활의 많은 상황에서 --force
필요 하지만 거의 필요하지 않습니다.
나는 같은 문제가 있었다. 초기 커밋조차도 커밋하지 않았으며 여전히 푸시하려고했기 때문에이 문제가 발생했습니다.
내가 git commit -m "your msg"
한 다음 모든 것이 잘 작동했습니다.
브랜치의 이름을 바꾸고 다음을 누르십시오.
git branch -m new-name
git push -u new-name
이것은 나를 위해 일했습니다.
my-branch_wont_push
있습니다. 이름을 (으 my_branch_wont_push
)로 git push -u origin my_branch_wont_push
바꾸면 나를 위해 일했습니다.
github 도움말 에서이 문제에 대한 해결책을 찾았습니다.
다음에서 확인할 수 있습니다. 빨리 감기가 아닌 오류 처리
그것은 말한다 :
원격 지점에서 변경 한 내용을 가져 와서 로컬에서 변경 한 내용을 병합하여이 문제를 해결할 수 있습니다.
$ git fetch origin
# Fetches updates made to an online repository
$ git merge origin branch
# Merges updates made online with your local work
또는 git pull을 사용하여 두 명령을 한 번에 수행 할 수 있습니다.
$ git pull origin branch
# Grabs online updates and merges them with your local work
git init
git remote add origin https://gitlab.com/crew-chief-systems/bot
git remote -v
(현재 저장소 확인 용)
git add -A
(모든 파일 추가)
git commit -m 'Added my project'
git pull --rebase origin master
git push origin master
나는 아래 단계로 고정 된 동일한 문제에 직면했다.
git init
git add .
git commit -m 'Add your commit message'
git remote add origin https://User_name@bitbucket.org/User_name/sample.git
(위의 URL https : //User_name@bitbucket.org/User_name/sample.git 은 비트 버킷 프로젝트 URL을 나타냅니다)
git push -u origin master
힌트
다음을 사용하여 자식 허브 계정이 로컬 자식과 연결되어 있는지 확인하십시오.
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
GitHub에서 빈 저장소를 만들고 코드를 로컬로 가지고 있습니다. 아래 순서에 따라 동일한 문제에 직면했습니다.
git init
git commit -m 'Initial Commit'
git remote add origin https://github.com/kavinraju/Repo-Name.git
git add .
git push -u origin master
문제가 발생했습니다 : 파일을 준비하기 전에 커밋을 시도했습니다.
따라서 파일을 준비한 다음 커밋해야합니다.
이것은 올바른 순서입니다.
git init
git add .
git commit -m 'Initial Commit'
git remote add origin https://github.com/kavinraju/Repo-Name.git
git push -u origin master
먼저 잘못된 순서를 실행하기 때문에 아래 명령을 실행하면됩니다.
git add .
git commit -m 'Initial Commit'
git push -u origin master
이것이 적용되는지 확실하지 않지만 나를위한 수정은 git init 후에 로컬로 무언가를 커밋하는 것이 었습니다. 그런 다음 --set-upstream ...을 사용하여 원격으로 푸시했습니다 ...
나를 위해 해결 된 새 지점 만들기 :
git checkout -b <nameOfNewBranch>
예상 한대로 이전 분기가 새 분기에 완전히 포함되었으므로 병합 할 필요가 없습니다.
git push origin feature22-fix
,하고 있었지만 feature22-fix
로컬이나 원격을 종료하지 않았으므로 먼저 지점을 로컬로 체크 아웃 한 다음
제 경우 husky
에는 푸시를 허용하지 않는 패키지 였습니다 .
> husky - pre-push hook failed (add --no-verify to bypass)
> husky - to debug, use 'npm run prepush'
error: failed to push some refs to 'https://username@bitbucket.org/username/my-api.git'
억지로 밀어 넣으려면
git push origin master --no-verify
나는 npm run prepush
오류를 디버그하기 위해 달렸다 .
npm ERR! code ELOCKVERIFY
npm ERR! Errors were found in your npm-shrinkwrap.json, run npm install to fix them.
npm ERR! Invalid: lock file's loopback-utils@0.8.3 does not satisfy loopback-utils@^0.9.0
란 npm install
그것을 커밋하고, 문제가 해결됩니다.