GitHub สำหรับ "ซิงค์" ของ Windows ทำอะไรได้บ้าง


87

ด้วย GitHub สำหรับ Windows คุณสามารถ "เผยแพร่" สาขาจากนั้น "ซิงค์" สาขานั้นกับ GitHub

ใส่คำอธิบายภาพที่นี่

โดยพื้นฐานแล้วการซิงค์เป็นgit pullและgit push? หรือมีอะไรมากกว่านั้น? หากฉันต้องการทำขั้นตอนเดียวกับ "การซิงค์" จากบรรทัดคำสั่งฉันควรทำอย่างไร

(ไม่ใช่โอเพ่นซอร์สหรือฉันแค่อ่าน)

คำตอบ:


52

ซิงค์ไม่แล้วหากมีการเปลี่ยนแปลงในท้องถิ่นก็ไม่git pull --rebasegit push

จากที่นี่: http://haacked.com/archive/2012/05/21/introducing-github-for-windows.aspx#87318


2
จะเกิดอะไรขึ้นหากมีข้อขัดแย้งระหว่างขั้นตอนการปรับฐานใหม่
Svante

26
@Svante มันล้มเหลวและเสนอที่จะเปิดเปลือกเพื่อให้คุณจัดการกับความยุ่งเหยิง ฉันมาที่หน้านี้ได้อย่างไร :-)
Andiih

8
ยังมีอยู่จริงไหม ฉันเพิ่งทำการซิงค์และจบลงด้วยการรวมคอมมิตซึ่งไม่ควรเกิดขึ้นหากโฟลว์คือ: git pull --rebase; git push
Micah Zoltu

คำอธิบายใด ๆ สำหรับความคิดเห็นของ @Michas Caldwell ฉันเชื่อว่าเขาพูดถูก?
benchuk

สามารถยืนยันการกดปุ่มซิงค์เพียงแค่ตอนนี้ได้git pullมากกว่าgit pull --rebaseดังนั้นการสร้างเพิ่มอีกสาขาผสาน 'ต้นแบบ' ของ ...กระทำ
ลีโอ

42

เนื่องจากคำตอบข้างต้นเป็นเวลากว่าสองปีที่แล้วคำตอบที่อัปเดตสำหรับคำถามนี้คือเนื่องจากข้อบกพร่องบางอย่างกับrebaseปุ่ม "ซิงค์" จึงไม่ทำงานgit pull --rebaseอีกต่อไป แต่git pullจะรวมเข้าด้วยกันหากมีข้อขัดแย้งตามบันทึกประจำรุ่นนี้(ดูรุ่น 1.3.0)

ลิงก์ด้านบนไม่สามารถใช้ได้ในขณะนี้ นี่คือบันทึกรุ่นใหม่


2
ที่จริงไม่จริงอย่างสมบูรณ์ เฉพาะในกรณีที่ rebase ไม่ทำงานจะพยายามทำการผสาน
Joris Meys

ลิงก์บันทึกประจำรุ่นเสีย
skolima

2
@JorisMeys ฉันไม่แน่ใจว่าคำพูดของคุณเป็นความจริง จากประสบการณ์ของฉันหากมีการกระทำใด ๆก่อนหน้าของฉันบนรีโมตมันจะสร้างคอมมิตการผสานแม้ว่าจะสามารถทำรีเบสได้ก็ตาม
Jerad Rose

@JeradRose เมื่อฉันเขียนความคิดเห็นของฉันเราอยู่ที่ Github Desktop v. 2.x และตอนนี้เราอยู่ที่ 3.3 :-) แต่คุณพูดถูกฉันสังเกตเห็นสิ่งเดียวกัน
Joris Meys

17

"การซิงค์" เป็นการดำเนินการใด ๆ ที่จำเป็นเพื่อให้สาขาในพื้นที่ของคุณตรงกับสาขาระยะไกลของคุณ หากสาขาในพื้นที่ของคุณยอมรับว่าสาขาระยะไกลของคุณไม่ได้ "ซิงค์" จะผลักสาขาของคุณ หากสาขาระยะไกลอยู่ข้างหน้าสาขาในพื้นที่ของคุณ "การซิงค์" จะดึงออกมาก่อน (โดยเฉพาะgit pull --rebaseตามที่ได้อธิบายโดยฟิล Haack) "ซิงค์" เป็นเพียงทางลัดในการทำให้ท้องถิ่นและระยะไกลสะท้อนซึ่งกันและกัน

จากไซต์ GitHub :

The sync button turns the complex workflow of pulling and pushing into a single operation. It notifies you when there are new changes to pull down and lets you quickly share local changes.


มันไม่เพียงแค่ดึง - มันทำ "git pull --rebase" ซึ่งเป็นความแตกต่างที่สำคัญ นอกจากนี้คำสั่งที่คุณมีไม่ถูกต้องดึงก่อนผลัก
Andiih

2
@Andiih ภาษาของฉันเป็นภาษาทั่วไปและไม่ใช่รายการสั่งซื้อของการดำเนินการ คำสั่งซื้อเป็นนัย - สังเกตว่าฉันพูดว่า "ถ้าสาขาห่างไกลอยู่ข้างหน้าสาขาในพื้นที่ของคุณ" คำอธิบายของฉันเป็นคำพูดโดยตรงจากเว็บไซต์ GitHub ไม่ว่าคำตอบของ Matt Rix จะละเอียดกว่าและสมควรถูกทำเครื่องหมายว่าเป็นคำตอบ ฉันได้ทำการแก้ไขเล็กน้อยเพื่อชี้แจงความสับสนในคำตอบของฉัน
redhotvengeance

การซิงค์ github ยังดึงข้อมูลการเปลี่ยนแปลงต้นน้ำนอกเหนือจากที่มา คือฉันมี repo f9rked และมีโคลนท้องถิ่นของส้อมสิ่งที่ฉันต้องการจริงๆคือการเปลี่ยนแปลงจากต้นน้ำไม่ใช่แค่ที่มา
AaronLS

1
@AaronLS GitHub สำหรับ Windows originที่ถูกสร้างขึ้นเพียงเพื่อที่จะทำงานด้วยรีโมทหนึ่งเดียวในขณะนี้คือ ในการทำงานกับรีโมทหลายตัวคุณจะต้องใช้บรรทัดคำสั่ง ดูข้อมูลที่เกี่ยวข้องได้ที่นี่ภายใต้ "รีโมต Git หลายรายการและรีโมทที่ไม่ใช่ GitHub"
redhotvengeance

4

เพื่อเพิ่มคำตอบของ @ ethanyang ,

ตามนามแฝงที่กำหนดไว้ใน gitconfig

[alias]
...
sync = !git pull && git push

4
แค่อยากรู้อยากเห็นอะไร! หมายถึงในบรรทัดข้างต้น?
Scott Romack

@ScottRomack หมายความว่าถือว่าเป็นคำสั่งเชลล์: stackoverflow.com/questions/21083933/…
Nicolas Holthaus

GitHub Desktop มีนามแฝงนี้อยู่แล้วหรือไม่? ถ้าเป็นเช่นนั้น config นี้อยู่ที่ไหน .gitconfigฉันไม่เห็นนามแฝงนี้ในโลกของฉัน หรือนี่เป็นเพียงการลบล้างของคุณเอง?
เจมส์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.