สมมติว่าฉันมี 5 ข้อผูกพันในท้องถิ่น ฉันต้องการเพียงแค่ 2 ของพวกเขาไปที่ repo ส่วนกลาง (ใช้เวิร์กโฟลว์สไตล์ SVN) ฉันจะทำสิ่งนี้ได้อย่างไร
สิ่งนี้ไม่ทำงาน:
git checkout HEAD~3 #set head to three commits ago
git push #attempt push from that head
ที่จบลงด้วยการผลักดันทั้ง 5 กระทำในท้องถิ่น
ฉันคิดว่าฉันสามารถทำการ git reset เพื่อเลิกทำการคอมมิชชันของฉันตามด้วย git stash แล้ว git push - แต่ฉันได้รับข้อความที่เขียนและการจัดระเบียบไฟล์แล้วและฉันไม่ต้องการทำซ้ำ
ฉันรู้สึกว่าธงบางอันผ่านไปเพื่อผลักหรือรีเซ็ตจะได้ผล
ถ้ามันช่วยได้นี่คือคอมไพล์ของฉัน
[ramanujan:~/myrepo/.git]$cat config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = ssh://server/git/myrepo.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
master~3
คุณไม่จำเป็นต้องใช้ การอ้างอิงถึงการกระทำที่ "ถึง" ที่ต้องการนั้นมีผลบังคับใช้อย่างเท่าเทียมกันเช่นHEAD~3
หรือHEAD~~~
หรือ SHA ที่เฉพาะเจาะจงหรือแท็กที่กำหนดป้ายกำกับไว้