ด้วยเหตุผลบางอย่างฉันไม่สามารถผลักดันได้ในขณะที่ฉันสามารถทำได้เมื่อวานนี้ บางทีฉันอาจยุ่งกับ configs หรืออะไรบางอย่าง
นี่คือสิ่งที่เกิดขึ้น:
เมื่อฉันใช้ต้นกำเนิดต้นกำเนิดการผลักดัน git
สิ่งที่ไดเร็กทอรีการทำงานและที่เก็บรีโมตของฉันดูเหมือน:
ด้วยเหตุผลบางอย่างฉันไม่สามารถผลักดันได้ในขณะที่ฉันสามารถทำได้เมื่อวานนี้ บางทีฉันอาจยุ่งกับ configs หรืออะไรบางอย่าง
นี่คือสิ่งที่เกิดขึ้น:
เมื่อฉันใช้ต้นกำเนิดต้นกำเนิดการผลักดัน git
สิ่งที่ไดเร็กทอรีการทำงานและที่เก็บรีโมตของฉันดูเหมือน:
คำตอบ:
ถ้า repo ของ GitHub เห็นคอมมิชชันใหม่ผลักไปแล้วในขณะที่คุณกำลังทำงานอยู่ในพื้นที่ฉันจะแนะนำให้ใช้:
git pull --rebase
git push
ไวยากรณ์แบบเต็มคือ:
git pull --rebase origin master
git push origin master
ด้วย Git 2.6+ (ก.ย. 2015) หลังจากทำเสร็จ (ครั้งเดียว)
git config --global pull.rebase true
git config --global rebase.autoStash true
ง่าย ๆgit pull
ก็เพียงพอแล้ว
(หมายเหตุ: ด้วยGit 2.27 Q2 2020 , a merge.autostash
ยังมีให้สำหรับการดึงปกติโดยไม่มีการรีบูต)
วิธีการที่คุณจะเล่นใหม่ (คน--rebase
ส่วน) กระทำในท้องถิ่นของคุณอยู่ด้านบนของปรับปรุงใหม่origin/master
(หรือorigin/yourBranch
: git pull origin yourBranch
)
ดูตัวอย่างที่สมบูรณ์มากขึ้นในบทที่ 6 ดึงกับ rebaseของหนังสือพ็อกเก็ Git
ฉันอยากจะแนะนำ:
# 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 's
—force pushing
ความคิดเห็นด้านล่างผมต้องชี้แจงอะไรเกี่ยวกับ คำสั่ง git ด้านบนใช้งานได้อย่างปลอดภัยสำหรับการส่งครั้งแรกเท่านั้น หากมีการกระทำอยู่แล้วให้ดึงคำขอหรือสาขาก่อนหน้านี้เป็นการรีเซ็ตทั้งหมดและตั้งค่าจากศูนย์ ถ้าเป็นเช่นนั้นโปรดดูคำตอบโดยละเอียดของ @VonC สำหรับวิธีแก้ปัญหาที่ดีกว่า
-f
/ --force
มันปลอดภัยกว่าที่จะใช้--force-with-lease
แทนซึ่งจะยกเลิกหากมีการเปลี่ยนแปลงดาวน์สตรีมที่จะเกิดการอุดตันจากการกด --force-with-lease
เป็นสิ่งจำเป็นสำหรับสถานการณ์การเริ่มต้นใหม่ทุกวัน แต่--force
แทบจะไม่จำเป็นเลย
หากคุณเพิ่งใช้git init
และเพิ่มไฟล์ของคุณด้วยgit add .
หรือคล้ายกันและได้เพิ่มสาขารีโมตของคุณอาจเป็นเพราะคุณไม่ได้ทำgit commit -m 'commit message'
อะไร( ) อะไรในพื้นที่เพื่อส่งไปที่รีโมต ... ฉันเพิ่งพบข้อผิดพลาดนี้และนั่นก็เป็นของฉัน ปัญหา.
ฉันมีปัญหาเดียวกัน ฉันได้รับปัญหานี้เพราะฉันไม่ได้ทำอะไรเลยแม้แต่ครั้งแรกที่ทำและยังพยายามผลักดัน
เมื่อฉันทำ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 โครงการ bit bucket ของคุณ)
git push -u origin master
เปรย
ตรวจสอบว่าลิงค์บัญชี git hub ของคุณกับ git ท้องถิ่นของคุณโดยใช้:
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
หากคุณใช้ gerrit อาจมีสาเหตุมาจากรหัสการเปลี่ยนแปลงที่ไม่เหมาะสมในการส่งข้อมูล ลองลบ Change-Id แล้วดูว่าเกิดอะไรขึ้น
จำไว้ว่าให้คอมมิชชันการเปลี่ยนแปลงของคุณก่อนที่จะผลักดันให้ repo Github วิธีนี้อาจช่วยแก้ปัญหาของคุณได้
ไม่ยอมรับการเปลี่ยนแปลงครั้งแรกก่อนที่จะผลักยังทำให้เกิดปัญหา
ก่อนกดคุณต้องเพิ่มและกระทำการเปลี่ยนแปลงหรือทำ git push -f origin master
git push origin {your_local_branch}:{your_remote_branch}
git push {your_remote_branch}
หากสาขาท้องถิ่นของคุณและสาขาที่ห่างไกลหุ้นที่มีชื่อเดียวกันแล้วคุณสามารถละเว้นชื่อสาขาท้องถิ่นของคุณเพียงแค่ใช้ มิฉะนั้นจะทำให้เกิดข้อผิดพลาดนี้
ฉันทำตามขั้นตอนต่อไปนี้และใช้งานได้สำหรับฉัน
rm -rf .git
git init
git add .
git commit -m"first message"
git remote add origin "LINK"
git push -u origin master
มันอาจเกิดขึ้นเมื่อคุณไม่มีไฟล์ใด ๆ ลองสร้างไฟล์ข้อความจากนั้นทำตามคำสั่งต่อไปนี้
git add .
git commit -m "first commit"
git push --set-upstream origin master
สำหรับฉันปัญหาคือฉันไม่ได้เพิ่มไฟล์ก่อนที่จะกระทำ
git add .
git commit -m "your msg"
ฉันสร้าง repo ที่ว่างเปล่าใน 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
ไม่แน่ใจว่าสิ่งนี้มีผลบังคับใช้หรือไม่ จากนั้นฉันก็ผลักไปที่รีโมตโดยใช้ --set-upstream ...
การสร้างสาขาใหม่ได้รับการแก้ไขสำหรับฉัน:
git checkout -b <nameOfNewBranch>
ตามที่คาดไว้ไม่จำเป็นต้องรวมเนื่องจากสาขาก่อนหน้ามีอยู่ในสาขาใหม่อย่างสมบูรณ์
git push origin feature22-fix
แต่feature22-fix
ไม่ได้ออกทั้งในและนอกพื้นที่ห่างไกลดังนั้นฉันต้องเช็คเอ้าท์สาขาในพื้นที่ก่อนแล้วจึงกด
หากคุณพยายามเริ่มต้นไดเรกทอรีด้วยที่เก็บ GitHub ที่มีอยู่คุณควรตรวจสอบให้แน่ใจว่าคุณยอมรับการเปลี่ยนแปลง
ลองสร้างไฟล์:
touch initial
git add initial
git commit -m "initial commit"
git push -u origin master
ที่จะวางไฟล์ชื่อเริ่มต้นที่คุณสามารถลบได้ในภายหลัง
หวังว่าคำตอบนี้จะช่วย! โชคดี!
คุณจำเป็นต้องให้กำลัง
เพียงแค่กด --force
ในกรณีของฉันมันเป็น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
และกระทำการและปัญหาได้รับการแก้ไขแล้ว
ทำสิ่งเหล่านี้
git rm --cached *
git add .
git commit -m"upload"
git push --set-upstream origin master
การเข้ารหัสที่มีความสุข!
ลองใช้คำสั่ง git นี้
git push origin master –f
git push origin master --force
ถ้าไม่มีคำตอบข้างต้นก็ใช้ได้และถ้าหากคุณทำบางสิ่งผิดพลาดไปssh-add
เมื่อไม่นานมานี้ ลอง
ssh-add -D
สำหรับผู้ใช้ sourcetree
ขั้นแรกให้คอมมิทเริ่มต้นหรือทำให้แน่ใจว่าคุณไม่มีการเปลี่ยนแปลงที่ไม่เป็นธรรมจากนั้นที่ด้านข้างของ sourcetree จะมี "REMOTES" คลิกขวาที่มันแล้วคลิก 'Push to origin' ไปแล้ว
สิ่งนี้เกิดขึ้นกับฉันเนื่องจากฉันมีแท็กที่เหมือนกับสาขาและฉันพยายามผลักสาขาให้ห่างไกล
ในกรณีของฉันปัญหาคือ (แปลก) ไม่มีสาขาที่เรียกว่าอาจารย์ ฉันเอาที่เก็บจาก Github
ฉันกำลังกดสาขาพิมพ์ 'evelop' ที่มีอยู่ซึ่งฉันยังไม่ได้ชำระเงินและฉันต้องการผลักสาขาที่เรียกว่า 'ซองจดหมาย' แทน ดังนั้นสาขาจะต้องมีอยู่ / เช็คเอาท์ที่สำเนาการทำงานในท้องถิ่นเพื่อผลักดันของหลักสูตรดังนั้นข้อผิดพลาดที่ไม่ให้พิมพ์ผิด