นี่คือคำสั่ง git-pull ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
git-pull - ดึงข้อมูลจากและรวมเข้ากับที่เก็บอื่นหรือสาขาในพื้นที่
เรื่องย่อ
คอมไพล์ ดึง [ตัวเลือก] [ [ ...]]
DESCRIPTION
รวมการเปลี่ยนแปลงจากที่เก็บระยะไกลเข้ากับสาขาปัจจุบัน ในค่าเริ่มต้น
โหมด git pull เป็นชวเลขสำหรับการดึง git ตามด้วย git merge FETCH_HEAD
อย่างแม่นยำมากขึ้น, คอมไพล์ ดึง ทำงาน คอมไพล์ นำมา ด้วยพารามิเตอร์และการโทรที่กำหนด คอมไพล์ ผสาน ไปยัง
รวมส่วนหัวของสาขาที่ดึงมาเข้ากับสาขาปัจจุบัน ด้วย --rebase มันทำงาน คอมไพล์
รีเบส แทน คอมไพล์ ผสาน.
ควรเป็นชื่อของที่เก็บระยะไกลที่ส่งผ่านไปยัง git-ดึงข้อมูล(1)
สามารถตั้งชื่อผู้อ้างอิงระยะไกลได้ตามต้องการ (เช่น ชื่อของแท็ก) หรือแม้แต่ a
การรวบรวมผู้อ้างอิงที่มีสาขาการติดตามระยะไกลที่เกี่ยวข้อง (เช่น
refs/heads/*:refs/remotes/origin/*) แต่โดยปกติแล้วจะเป็นชื่อของสาขาในรีโมต
กรุ
ค่าเริ่มต้นสำหรับ และ ถูกอ่านจาก "ระยะไกล" และ "ผสาน"
การกำหนดค่าสำหรับสาขาปัจจุบันตามที่ตั้งค่าโดย git-สาขา(1) --ติดตาม.
สมมติว่ามีประวัติต่อไปนี้และสาขาปัจจุบันคือ "มาสเตอร์":
A---B---C ต้นแบบเกี่ยวกับแหล่งกำเนิด
/
D---E---F---G มาสเตอร์
^
ต้นทาง/ต้นแบบในที่เก็บของคุณ
จากนั้น "git pull" จะดึงและเล่นซ้ำการเปลี่ยนแปลงจากรีโมตมาสเตอร์แบรนช์ตั้งแต่มัน
แยกจากมาสเตอร์ท้องถิ่น (เช่น E) จนถึงการคอมมิชชันปัจจุบัน (C) ที่ด้านบนของมาสเตอร์และ
บันทึกผลลัพธ์ในการคอมมิตใหม่พร้อมกับชื่อของทั้งสองพาเรนต์คอมมิทและ log
ข้อความจากผู้ใช้ที่อธิบายการเปลี่ยนแปลง
A---B---C กำเนิด/มาสเตอร์
-
D---E---F---G---H มาสเตอร์
ดู git-ผสาน(1) สำหรับรายละเอียด รวมถึงวิธีการนำเสนอและจัดการข้อขัดแย้ง
ใน Git 1.7.0 หรือใหม่กว่า หากต้องการยกเลิกการผสานที่ขัดแย้งกัน ให้ใช้ git reset --merge การเตือน: ใน
Git เวอร์ชันเก่ากำลังทำงานอยู่ คอมไพล์ ดึง กับการเปลี่ยนแปลงที่ไม่ผูกมัดคือท้อแท้: ในขณะที่
เป็นไปได้ก็ปล่อยให้คุณอยู่ในสภาพที่ยากจะถอยออกมาในกรณีของ
ขัดกัน
หากการเปลี่ยนแปลงระยะไกลใด ๆ ทับซ้อนกับการเปลี่ยนแปลงที่ไม่มีข้อผูกมัดในเครื่อง การผสานจะเป็น
ถูกยกเลิกโดยอัตโนมัติและต้นไม้งานไม่ถูกแตะต้อง โดยทั่วไปแล้วเป็นการดีที่สุดที่จะหาท้องถิ่นใด ๆ
การเปลี่ยนแปลงการทำงานก่อนดึงหรือซ่อนไว้ด้วย git ซ่อน(1)
OPTIONS
-q, --เงียบ
สิ่งนี้ถูกส่งผ่านไปยังทั้ง git-fetch พื้นฐานเพื่อ squelch การรายงานระหว่างการถ่ายโอน
และ git-merge พื้นฐานเพื่อ squelch เอาต์พุตระหว่างการผสาน
-v, --เวอร์โบส
ผ่าน --verbose เพื่อ git-fetch และ git-merge
--[no-]recurse-submodules[=ใช่|ตามต้องการ|ไม่]
ตัวเลือกนี้ควบคุมว่าควรดึงข้อมูลการคอมมิตใหม่ของโมดูลย่อยที่มีประชากรทั้งหมดด้วยหรือไม่
(ดู git-config.php(1) และ gitmodules(5)). ที่อาจจำเป็นเพื่อให้ได้ข้อมูลที่จำเป็น
สำหรับการรวม submodule กระทำ คุณลักษณะ Git ที่เรียนรู้ใน 1.7.3 สังเกตว่าผลลัพธ์
ของการรวมจะไม่ถูกเช็คเอาท์ในโมดูลย่อย "git submodule update" จะต้องเป็น
เรียกภายหลังเพื่อนำแผนผังงานถึงวันที่มีผลการผสาน
Options ที่เกี่ยวข้อง ไปยัง การผสม
--กระทำ --ไม่กระทำ
ทำการผสานและส่งมอบผลลัพธ์ สามารถใช้ตัวเลือกนี้เพื่อแทนที่
--ไม่มีข้อผูกมัด
ด้วย --no-commit ทำการผสาน แต่แสร้งทำเป็นว่าการผสานล้มเหลวและไม่มีการคอมมิตอัตโนมัติ
เพื่อให้ผู้ใช้มีโอกาสตรวจสอบและปรับแต่งผลการรวมเพิ่มเติมก่อน
มุ่งมั่น
--แก้ไข, -e, --ไม่แก้ไข
เรียกใช้ตัวแก้ไขก่อนที่จะทำการผสานทางกลที่สำเร็จเพื่อแก้ไข . เพิ่มเติม
ข้อความผสานที่สร้างขึ้นโดยอัตโนมัติ เพื่อให้ผู้ใช้สามารถอธิบายและให้เหตุผลในการผสาน NS
--no-edit option สามารถใช้เพื่อยอมรับข้อความที่สร้างขึ้นโดยอัตโนมัติ (โดยทั่วไปคือ
ท้อแท้)
สคริปต์ที่เก่ากว่าอาจขึ้นอยู่กับพฤติกรรมในอดีตที่ไม่อนุญาตให้ผู้ใช้แก้ไข
ข้อความบันทึกการรวม พวกเขาจะเห็นตัวแก้ไขเปิดขึ้นเมื่อเรียกใช้ git merge เพื่อทำ
ง่ายกว่าที่จะปรับสคริปต์ดังกล่าวให้เข้ากับพฤติกรรมที่อัปเดต ตัวแปรสภาพแวดล้อม
GIT_MERGE_AUTOEDIT สามารถตั้งค่าเป็น no ที่จุดเริ่มต้นได้
--ฟ
เมื่อการผสานแก้ไขเป็นการกรอไปข้างหน้า ให้อัปเดตตัวชี้สาขาเท่านั้นโดยไม่ต้อง
การสร้างการรวมคอมมิต นี่เป็นพฤติกรรมเริ่มต้น
--no-ff
สร้างการคอมมิตการผสาน แม้ว่าการผสานจะแก้ไขเป็นการกรอไปข้างหน้า นี้เป็น
ลักษณะการทำงานเริ่มต้นเมื่อรวมแท็กที่มีคำอธิบายประกอบ (และอาจมีการเซ็นชื่อ)
--ff-เท่านั้น
ปฏิเสธที่จะรวมและออกด้วยสถานะที่ไม่ใช่ศูนย์ เว้นแต่ว่า HEAD ปัจจุบันมีอยู่แล้ว
ข้อมูลล่าสุดหรือการรวมสามารถแก้ไขได้อย่างรวดเร็ว
--log[= ], --no-log
นอกจากชื่อสาขาแล้ว ให้เติมข้อความบันทึกด้วยคำอธิบายหนึ่งบรรทัดจาก
ที่มากที่สุด การกระทำจริงที่กำลังถูกรวมเข้าด้วยกัน ดูสิ่งนี้ด้วย git-fmt-ผสานผงชูรส(1)
ด้วย --no-log จะไม่แสดงรายการคำอธิบายหนึ่งบรรทัดจากการคอมมิตจริงที่จะถูกรวมเข้าด้วยกัน
--stat, -n, --no-stat
แสดง diffstat ที่ส่วนท้ายของการผสาน ดิฟสแตทยังถูกควบคุมโดย
ตัวเลือกการกำหนดค่า merge.stat
ด้วย -n หรือ --no-stat จะไม่แสดง diffstat เมื่อสิ้นสุดการรวม
--สควอช --ไม่-สควอช
สร้างแผนภูมิการทำงานและสถานะดัชนีราวกับว่ามีการผสานจริงเกิดขึ้น (ยกเว้น
รวมข้อมูล) แต่อย่าทำการคอมมิต ย้าย HEAD หรือบันทึกจริงๆ
$GIT_DIR/MERGE_HEAD (เพื่อให้คำสั่ง git commit ถัดไปสร้างการรวมคอมมิต)
สิ่งนี้ช่วยให้คุณสร้างการคอมมิตเดียวที่ด้านบนของสาขาปัจจุบันที่มีผลเป็น
เช่นเดียวกับการรวมสาขาอื่น (หรือมากกว่าในกรณีของปลาหมึก)
ด้วย --no-squash ทำการผสานและส่งผลลัพธ์ สามารถใช้ตัวเลือกนี้เพื่อ
แทนที่ --สควอช
-NS , --กลยุทธ์=
ใช้กลยุทธ์การรวมที่กำหนด สามารถจัดหาได้มากกว่าหนึ่งครั้งเพื่อระบุใน
ลำดับที่พวกเขาควรจะลอง หากไม่มีตัวเลือก -s รายการกลยุทธ์ที่มีอยู่แล้วคือ
ใช้แทน (คอมไพล์ ผสาน-เรียกซ้ำ เมื่อรวมหัวเดียว คอมไพล์ ผสานปลาหมึก
มิฉะนั้น).
-NS , --กลยุทธ์-ตัวเลือก=
ส่งผ่านตัวเลือกเฉพาะกลยุทธ์การผสานไปยังกลยุทธ์การผสาน
--verify-ลายเซ็น, --no-verify-ลายเซ็น
ตรวจสอบว่าการคอมมิตที่รวมเข้าด้วยกันมีลายเซ็น GPG ที่ดีและเชื่อถือได้และยกเลิก
การรวมในกรณีที่ไม่ได้
--สรุป --ไม่-สรุป
คำพ้องความหมายกับ --stat และ --no-stat; สิ่งเหล่านี้เลิกใช้แล้วและจะถูกลบออกใน
อนาคต.
-r, --rebase[=false|จริง|รักษา]
เมื่อเป็นจริง ให้รีเบสสาขาปัจจุบันที่ด้านบนของสาขาต้นน้ำหลังจากการดึงข้อมูล ถ้า
มีสาขาการติดตามระยะไกลที่สอดคล้องกับสาขาต้นน้ำและ
upstream branch ถูก rebased ใหม่ตั้งแต่ดึงล่าสุด rebase จะใช้ข้อมูลนั้นเพื่อ
หลีกเลี่ยงการปรับฐานการเปลี่ยนแปลงที่ไม่ใช่ในเครื่อง
เมื่อตั้งค่าให้คงไว้ ให้ทำการรีเบสด้วยตัวเลือก --preserve-merges ที่ส่งผ่านไปยัง git rebase ดังนั้น
การรวมที่สร้างขึ้นภายในเครื่องจะไม่ถูกทำให้แบน
เมื่อเป็นเท็จ ให้รวมสาขาปัจจุบันเข้ากับสาขาต้นน้ำ
ดู pull.rebase สาขา .rebase และ branch.autoSetupRebase ใน git-config.php(1) ถ้า
คุณต้องการให้ git pull ใช้ --rebase เสมอแทนการรวม
หมายเหตุ
นี่เป็นโอกาสที่ เป็นอันตราย โหมดการทำงาน มันเขียนประวัติศาสตร์ซึ่งไม่
ไม่เป็นลางดีเมื่อคุณเผยแพร่ประวัติศาสตร์นั้นไปแล้ว ทำ ไม่ ใช้ตัวเลือกนี้
เว้นแต่คุณจะอ่าน คอมไพล์รีเบส(1) อย่างระมัดระวัง
--no-rebase
แทนที่ก่อนหน้านี้ --rebase
Options ที่เกี่ยวข้อง ไปยัง กำลังเรียก
--ทั้งหมด
ดึงรีโมททั้งหมด
-a, --ผนวก
ผนวกชื่อผู้อ้างอิงและชื่ออ็อบเจ็กต์ของการอ้างอิงที่ดึงมาต่อท้ายเนื้อหาที่มีอยู่ของ
.git/FETCH_HEAD. หากไม่มีตัวเลือกนี้ ข้อมูลเก่าใน .git/FETCH_HEAD จะถูกเขียนทับ
--ความลึก=
จำกัดการดึงข้อมูลตามจำนวนที่กำหนดจากส่วนปลายของแต่ละรีโมตแบรนช์
ประวัติศาสตร์. หากดึงไปที่a ตื้น พื้นที่เก็บข้อมูลที่สร้างโดย git clone ด้วย --deep=
ตัวเลือก (ดู git-โคลน(1)) ให้ลึกหรือย่นประวัติให้สั้นลงถึงจำนวนที่กำหนด
กระทำ แท็กสำหรับการกระทำที่ลึกซึ้งจะไม่ถูกดึงออกมา
--ไม่ตื้น
หากที่เก็บซอร์สเสร็จสมบูรณ์ ให้แปลงที่เก็บแบบตื้นเป็นที่เก็บที่สมบูรณ์
ลบข้อจำกัดทั้งหมดที่กำหนดโดยที่เก็บแบบตื้น
หากแหล่งเก็บข้อมูลตื้น ให้ดึงข้อมูลให้มากที่สุดเพื่อให้กระแส
ที่เก็บมีประวัติเดียวกันกับที่เก็บต้นทาง
--update-ตื้น
โดยค่าเริ่มต้นเมื่อดึงข้อมูลจากที่เก็บแบบตื้น การดึงข้อมูล git จะปฏิเสธการอ้างอิงนั้น
ต้องอัปเดต .git/shallow ตัวเลือกนี้จะอัปเดต .git/shallow และยอมรับการอ้างอิงดังกล่าว
-f, --แรง
เมื่อ คอมไพล์ นำมา ใช้กับ : refspec มันปฏิเสธที่จะอัปเดต
สาขาในพื้นที่ เว้นแต่สาขาระยะไกล มันเรียกเป็นทายาท
ของ . ตัวเลือกนี้จะแทนที่การตรวจสอบ
-k, --เก็บ
เก็บแพ็คที่ดาวน์โหลดไว้
--no-แท็ก
โดยค่าเริ่มต้น แท็กที่ชี้ไปที่อ็อบเจ็กต์ที่ดาวน์โหลดจากที่เก็บระยะไกล
จะถูกดึงและเก็บไว้ในเครื่อง ตัวเลือกนี้ปิดใช้งานแท็กอัตโนมัตินี้ที่ตามมา NS
พฤติกรรมเริ่มต้นสำหรับรีโมตอาจถูกระบุด้วยรีโมต การตั้งค่า .tagOpt
ดู git-config.php(1)
-u, --update-head-ตกลง
ตามค่าเริ่มต้น คอมไพล์ นำมา ปฏิเสธที่จะปรับปรุงหัวซึ่งสอดคล้องกับปัจจุบัน
สาขา. แฟล็กนี้ปิดใช้งานการตรวจสอบ นี่เป็นเพียงการใช้ภายในสำหรับ คอมไพล์ ดึง
ที่จะสื่อสารกับ คอมไพล์ นำมาและเว้นแต่คุณจะติดตั้ง Porcelain ของคุณเอง
ไม่ควรที่จะใช้มัน
--upload-pack
เมื่อได้รับ และพื้นที่เก็บข้อมูลที่จะดึงข้อมูลจะถูกจัดการโดย คอมไพล์ ดึงแพ็ค,
--exec= ถูกส่งไปยังคำสั่งเพื่อระบุเส้นทางที่ไม่ใช่ค่าเริ่มต้นสำหรับ
คำสั่งทำงานที่ปลายอีกด้านหนึ่ง
--ความคืบหน้า
สถานะความคืบหน้าจะถูกรายงานในสตรีมข้อผิดพลาดมาตรฐานโดยค่าเริ่มต้นเมื่อเป็น
แนบกับเทอร์มินัล เว้นแต่จะระบุ -q แฟล็กนี้บังคับสถานะความคืบหน้าแม้กระทั่ง
หากกระแสข้อผิดพลาดมาตรฐานไม่ได้ส่งตรงไปยังเทอร์มินัล
ที่เก็บ "ระยะไกล" ที่เป็นแหล่งที่มาของการดำเนินการดึงข้อมูลหรือดึง นี้
พารามิเตอร์สามารถเป็นได้ทั้ง URL (ดูหัวข้อ GIT URLS ด้านล่าง) หรือชื่อของรีโมท
(ดูส่วน REMOTES ด้านล่าง)
ระบุการอ้างอิงที่จะดึงข้อมูลและการอ้างอิงในเครื่องที่จะอัพเดต เมื่อไม่มี NS
ปรากฏบนบรรทัดคำสั่ง การอ้างอิงที่จะดึงข้อมูลจะถูกอ่านจากระยะไกล .fetch
ตัวแปรแทน (ดู git-ดึงข้อมูล(พ.ศ. 1)).
รูปแบบของ a พารามิเตอร์เป็นทางเลือกบวก + ตามด้วยแหล่งอ้างอิง
, ตามด้วยโคลอน :, ตามด้วย ref . ปลายทาง . ลำไส้ใหญ่สามารถ
ละเว้นเมื่อ มันว่างเปล่า.
แท็ก หมายถึง เหมือนกับ refs/tags/ :refs/tags/ ; มันร้องขอการดึง
ทุกอย่างขึ้นอยู่กับแท็กที่กำหนด
ผู้อ้างอิงระยะไกลที่ตรงกับ ถูกดึงออกมาและถ้า ไม่ใช่สตริงว่าง the
ผู้อ้างอิงท้องถิ่นที่ตรงกับมันถูกส่งต่ออย่างรวดเร็วโดยใช้ . หากตัวเลือกบวก + คือ
ใช้แล้ว ผู้อ้างอิงในพื้นที่จะได้รับการอัปเดตแม้ว่าจะไม่ส่งผลให้มีการอัปเดตแบบกรอไปข้างหน้า
หมายเหตุ
เมื่อสาขาระยะไกลที่คุณต้องการดึงข้อมูลเป็นที่รู้จักว่ามีการกรอกลับและตั้งค่าใหม่
เป็นประจำคาดว่าทิปใหม่จะไม่สืบเชื้อสายมาจากเดิม
เคล็ดลับ (ตามที่เก็บไว้ในสาขาการติดตามระยะไกลของคุณในครั้งสุดท้ายที่คุณดึงข้อมูล) คุณ
ต้องการใช้เครื่องหมาย + เพื่อระบุว่าจำเป็นต้องมีการอัปเดตแบบไม่กรอไปข้างหน้า
สำหรับสาขาดังกล่าว ไม่มีทางกำหนดหรือประกาศว่าสาขาจะเป็น
ทำให้มีอยู่ในที่เก็บที่มีพฤติกรรมนี้ ผู้ใช้ที่ดึงเพียงแค่ต้อง
รู้ว่านี่คือรูปแบบการใช้งานที่คาดไว้สำหรับสาขา
หมายเหตุ
มีความแตกต่างระหว่างการแสดงรายการหลายรายการ โดยตรงบน คอมไพล์ ดึง
บรรทัดคำสั่งและมีรีโมตหลายตัว .fetch รายการใน your
การกำหนดค่าสำหรับ และวิ่ง คอมไพล์ ดึง ไม่มีคำสั่งใดๆ
ชัดเจน พารามิเตอร์ ระบุไว้อย่างชัดเจนในบรรทัดคำสั่ง
จะถูกรวมเข้ากับสาขาปัจจุบันเสมอหลังจากการดึงข้อมูล กล่าวอีกนัยหนึ่งถ้าคุณ
แสดงรายการผู้อ้างอิงระยะไกลมากกว่าหนึ่งคน คอมไพล์ ดึง จะสร้างการรวมปลาหมึก อีกด้านหนึ่ง
มือถ้าคุณไม่ระบุอย่างชัดเจน พารามิเตอร์บนบรรทัดคำสั่ง คอมไพล์
ดึง จะดึงทั้งหมด มันพบในระยะไกล .fetch
การกำหนดค่าและรวมเฉพาะครั้งแรก พบสาขาปัจจุบัน
นี่เป็นเพราะว่าการสร้าง Octopus จากผู้อ้างอิงระยะไกลนั้นไม่ค่อยได้ทำในขณะที่ยังคงรักษา
ติดตามหัวระยะไกลหลายตัวในครั้งเดียวโดยดึงข้อมูลมากกว่าหนึ่งตัวบ่อยครั้ง
มีประโยชน์
GIT URL
โดยทั่วไป URL มีข้อมูลเกี่ยวกับโปรโตคอลการขนส่ง ที่อยู่ของ
เซิร์ฟเวอร์ระยะไกล และพาธไปยังที่เก็บ ขึ้นอยู่กับโปรโตคอลการขนส่งบางส่วน
ของข้อมูลนี้อาจขาดหายไป
Git รองรับโปรโตคอล ssh, git, http และ https (นอกจากนี้ยังสามารถใช้ ftp และ ftps ได้
สำหรับการดึงข้อมูลและ rsync สามารถใช้สำหรับการดึงข้อมูลและผลัก แต่สิ่งเหล่านี้ไม่มีประสิทธิภาพและ
เลิกใช้; ห้ามใช้)
การขนส่งดั้งเดิม (เช่น git:// URL) ไม่รับรองความถูกต้องและควรใช้กับ
ข้อควรระวังในเครือข่ายที่ไม่ปลอดภัย
ไวยากรณ์ต่อไปนี้อาจใช้กับพวกเขา:
· ssh://[user@]host.xz[:พอร์ต]/path/to/repo.git/
· git://host.xz[:พอร์ต]/path/to/repo.git/
· http[s]://host.xz[:พอร์ต]/path/to/repo.git/
· ftp[s]://host.xz[:พอร์ต]/path/to/repo.git/
· rsync://host.xz/path/to/repo.git/
ไวยากรณ์ที่เหมือน scp ทางเลือกอาจใช้กับโปรโตคอล ssh:
· [user@]host.xz:path/to/repo.git/
ไวยากรณ์นี้จะจำได้ก็ต่อเมื่อไม่มีเครื่องหมายทับก่อนโคลอนแรก สิ่งนี้ช่วยได้
แยกความแตกต่างของเส้นทางท้องถิ่นที่มีเครื่องหมายทวิภาค ตัวอย่างเช่น เส้นทางท้องถิ่น foo:bar สามารถ
ถูกระบุเป็นพาธสัมบูรณ์หรือ ./foo:bar เพื่อหลีกเลี่ยงการตีความผิดว่าเป็น ssh url
โปรโตคอล ssh และ git รองรับการขยายชื่อผู้ใช้เพิ่มเติม:
· ssh://[user@]host.xz[:พอร์ต]/~[ผู้ใช้]/path/to/repo.git/
· git://host.xz[:พอร์ต]/~[ผู้ใช้]/path/to/repo.git/
· [user@]host.xz:/~[ผู้ใช้]/path/to/repo.git/
สำหรับที่เก็บข้อมูลในเครื่อง ซึ่ง Git รองรับโดยกำเนิด ไวยากรณ์ต่อไปนี้อาจเป็น
ใช้:
· /path/to/repo.git/
· ไฟล์:///path/to/repo.git/
วากยสัมพันธ์ทั้งสองนี้ส่วนใหญ่เทียบเท่ากัน ยกเว้นเมื่อทำการโคลน เมื่ออดีตหมายถึง
--ตัวเลือกท้องถิ่น ดู git-โคลน(1) สำหรับรายละเอียด
เมื่อ Git ไม่ทราบวิธีจัดการกับโปรโตคอลการขนส่งบางอย่าง มันจะพยายามใช้
ระยะไกล- ผู้ช่วยระยะไกลหากมีอยู่ หากต้องการขอความช่วยเหลือจากระยะไกลอย่างชัดเจน
อาจใช้ไวยากรณ์ต่อไปนี้:
· ::
ที่ไหน อาจเป็นพาธ เซิร์ฟเวอร์และพาธ หรือสตริงเหมือน URL โดยพลการ
รู้จักโดยผู้ช่วยระยะไกลเฉพาะที่ถูกเรียก ดู gitremote ตัวช่วย(1) สำหรับ
รายละเอียด
หากมีที่เก็บระยะไกลที่มีชื่อคล้ายกันจำนวนมาก และคุณต้องการใช้a
รูปแบบที่แตกต่างกันสำหรับพวกเขา (เพื่อให้ URL ที่คุณใช้จะถูกเขียนใหม่เป็น URL ที่
งาน) คุณสามารถสร้างส่วนกำหนดค่าของแบบฟอร์ม:
[url " "]
แทน =
ตัวอย่างเช่นด้วยสิ่งนี้:
[url "git://git.host.xz/"]
แทน = host.xz:/path/to/
แทน = งาน:
URL เช่น "work:repo.git" หรือ "host.xz:/path/to/repo.git" จะถูกเขียนใหม่ในทุกกรณี
บริบทที่ใช้ URL เป็น "git://git.host.xz/repo.git"
หากคุณต้องการเขียน URL ใหม่สำหรับการพุชเท่านั้น คุณสามารถสร้างส่วนการกำหนดค่าของ
รูปแบบ:
[url " "]
ดันแทน =
ตัวอย่างเช่นด้วยสิ่งนี้:
[url "ssh://example.org/"]
pushInsteadOf = git://example.org/
URL เช่น "git://example.org/path/to/repo.git" จะถูกเขียนใหม่เป็น
"ssh://example.org/path/to/repo.git" สำหรับการพุช แต่การดึงจะยังคงใช้ต้นฉบับ
URL
รีโมท
สามารถใช้ชื่ออย่างใดอย่างหนึ่งต่อไปนี้แทน URL as การโต้แย้ง:
· รีโมตในไฟล์กำหนดค่า Git: $GIT_DIR/config,
· ไฟล์ในไดเร็กทอรี $GIT_DIR/remotes หรือ
· ไฟล์ในไดเร็กทอรี $GIT_DIR/branches
สิ่งเหล่านี้ยังอนุญาตให้คุณละเว้น refspec จากบรรทัดคำสั่งเพราะแต่ละอัน
มี refspec ที่ git จะใช้เป็นค่าเริ่มต้น
ที่มีชื่อ รีโมท in องค์ประกอบ ไฟล์
คุณสามารถเลือกที่จะระบุชื่อของรีโมตที่คุณได้กำหนดค่าไว้ก่อนหน้านี้โดยใช้
git-ระยะไกล(1) git-config.php(1) หรือแม้แต่การแก้ไขไฟล์ $GIT_DIR/config ด้วยตนเอง URL
ของรีโมตนี้จะใช้เพื่อเข้าถึงที่เก็บ refspec ของรีโมตนี้จะเป็น
ใช้โดยค่าเริ่มต้นเมื่อคุณไม่ได้ระบุ refspec บนบรรทัดคำสั่ง รายการใน
ไฟล์ config จะปรากฏดังนี้:
[ระยะไกล " "]
url =
pushurl =
ดัน =
เรียก =
NS ใช้สำหรับดันเท่านั้น เป็นทางเลือกและค่าเริ่มต้นเป็น .
ที่มีชื่อ ไฟล์ in $GIT_DIR/รีโมท
คุณสามารถเลือกที่จะระบุชื่อไฟล์ใน $GIT_DIR/remotes URL ในไฟล์นี้
จะถูกใช้เพื่อเข้าถึงที่เก็บ refspec ในไฟล์นี้จะถูกใช้เป็นค่าเริ่มต้น
เมื่อคุณไม่ได้ระบุ refspec ในบรรทัดคำสั่ง ไฟล์นี้ควรมีดังต่อไปนี้
รูปแบบ:
URL: หนึ่งในรูปแบบ URL ด้านบน
ดัน:
ดึง:
ดัน: เส้นถูกใช้โดย คอมไพล์ ดัน และ Pull: ใช้เส้นโดย คอมไพล์ ดึง and คอมไพล์ นำมา.
Multiple Push: and Pull: อาจมีการระบุเส้นสำหรับการแมปสาขาเพิ่มเติม
ที่มีชื่อ ไฟล์ in $GIT_DIR/สาขา
คุณสามารถเลือกที่จะระบุชื่อไฟล์ใน $GIT_DIR/สาขา URL ในไฟล์นี้
จะถูกใช้เพื่อเข้าถึงที่เก็บ ไฟล์นี้ควรมีรูปแบบดังต่อไปนี้:
#
ต้องระบุ; # เป็นทางเลือก
git จะใช้หนึ่งใน refspecs ต่อไปนี้ ทั้งนี้ขึ้นอยู่กับการดำเนินการ ถ้าคุณไม่
ให้หนึ่งในบรรทัดคำสั่ง เป็นชื่อไฟล์ใน $GIT_DIR/branches
และ ค่าเริ่มต้นเป็นต้นแบบ
git fetch ใช้:
กรรมการ/หัวหน้า/ :refs/heads/
git push ใช้:
HEAD:อ้างอิง/หัว/
ผสาน กลยุทธ์
กลไกการผสาน (คำสั่ง git merge และ git pull) ช่วยให้แบ็กเอนด์ ผสาน กลยุทธ์
ให้เลือกด้วยตัวเลือก -s กลยุทธ์บางอย่างสามารถใช้ตัวเลือกของตนเองได้ ซึ่งสามารถ
ผ่านการให้ -X อาร์กิวเมนต์เพื่อ git merge และ/หรือ git pull
แก้ไข
สิ่งนี้สามารถแก้ไขได้เพียงสองหัว (เช่นสาขาปัจจุบันและสาขาอื่นที่คุณดึง
จาก) โดยใช้อัลกอริธึมการรวม 3 ทาง พยายามตรวจจับการผสานแบบกากบาทอย่างระมัดระวัง
ความคลุมเครือและถือว่าโดยทั่วไปปลอดภัยและรวดเร็ว
ซ้ำ
วิธีนี้สามารถแก้ไขได้เพียงสองหัวโดยใช้อัลกอริธึมการรวม 3 ทาง เมื่อมีมากกว่า
บรรพบุรุษร่วมกันหนึ่งเดียวที่ใช้สำหรับการผสาน 3 ทาง จะสร้างต้นไม้ผสานของ
บรรพบุรุษร่วมกันและใช้สิ่งนั้นเป็นแผนผังอ้างอิงสำหรับการผสาน 3 ทาง นี้มี
ถูกรายงานว่าส่งผลให้เกิดข้อขัดแย้งในการผสานน้อยลงโดยไม่ทำให้เกิดการผสานโดยการทดสอบ
เสร็จสิ้นในการผสานจริงที่นำมาจากประวัติการพัฒนาเคอร์เนล Linux 2.6
นอกจากนี้ยังสามารถตรวจจับและจัดการการผสานที่เกี่ยวข้องกับการเปลี่ยนชื่อ นี่คือค่าเริ่มต้น
ผสานกลยุทธ์เมื่อดึงหรือรวมสาขาเดียว
เทศกาล ซ้ำ กลยุทธ์สามารถใช้ตัวเลือกต่อไปนี้:
แบก
ตัวเลือกนี้บังคับให้ hunks ที่ขัดแย้งกันได้รับการแก้ไขอัตโนมัติโดยชอบ ของเรา
รุ่น การเปลี่ยนแปลงจากต้นไม้อื่นที่ไม่ขัดแย้งกับเราคือ
สะท้อนถึงผลการรวม สำหรับไฟล์ไบนารี เนื้อหาทั้งหมดจะถูกถ่าย
จากด้านข้างของเรา
สิ่งนี้ไม่ควรสับสนกับ แบก กลยุทธ์การผสานซึ่งไม่ได้ดู
ในสิ่งที่ต้นไม้อื่นมีอยู่เลย มันละทิ้งทุกอย่างที่ต้นไม้ต้นอื่นทำ
ภาษณ์ ของเรา ประวัติศาสตร์มีทุกสิ่งที่เกิดขึ้นในนั้น
ของพวกเขา
นี่คือสิ่งที่ตรงกันข้ามกับ แบก.
ความอดทน
ด้วยตัวเลือกนี้ ผสาน-เรียกซ้ำ ใช้เวลาเพิ่มขึ้นเล็กน้อยเพื่อหลีกเลี่ยงการ mismerges
ที่บางครั้งเกิดขึ้นเนื่องจากเส้นจับคู่ที่ไม่สำคัญ (เช่น วงเล็บปีกกาจากความแตกต่าง
ฟังก์ชั่น). ใช้สิ่งนี้เมื่อกิ่งที่จะรวมแยกกันอย่างดุเดือด ดูสิ่งนี้ด้วย
git-diff(1) --ความอดทน.
diff-algorithm=[ความอดทน|น้อยที่สุด|ฮิสโตแกรม|ไมเยอร์]
บอก ผสาน-เรียกซ้ำ เพื่อใช้อัลกอริธึมที่แตกต่างซึ่งสามารถช่วยหลีกเลี่ยงได้
mismerges ที่เกิดขึ้นเนื่องจากเส้นการจับคู่ที่ไม่สำคัญ (เช่น วงเล็บปีกกาจาก
ฟังก์ชั่นที่แตกต่าง) ดูสิ่งนี้ด้วย git-diff(1) --diff-อัลกอริทึม
ละเว้นช่องว่างการเปลี่ยนแปลง, ละเว้นช่องว่างทั้งหมด, ละเว้น-อวกาศ-at-eol
ถือว่าเส้นที่มีการเปลี่ยนช่องว่างประเภทที่ระบุไม่เปลี่ยนแปลงสำหรับ
เห็นแก่การรวมสามทาง การเปลี่ยนแปลงช่องว่างผสมกับการเปลี่ยนแปลงอื่นๆ ในบรรทัด
ไม่ถูกละเลย ดูสิ่งนี้ด้วย git-diff(1) -b, -w และ --ignore-space-at-eol
· ถ้า ของพวกเขา เวอร์ชันแนะนำการเปลี่ยนแปลงช่องว่างในบรรทัดเท่านั้น ของเรา รุ่นคือ
ใช้แล้ว;
· ถ้า ของเรา รุ่นแนะนำการเปลี่ยนแปลงช่องว่างแต่ ของพวกเขา รุ่นรวมถึงa
การเปลี่ยนแปลงที่สำคัญ, ของพวกเขา ใช้เวอร์ชัน
· มิฉะนั้น การผสานจะดำเนินการตามปกติ
ทำให้ปกติ
การดำเนินการนี้จะทำการเช็คเอาท์และเช็คอินเสมือนของทั้งสามขั้นตอนของไฟล์เมื่อ
การแก้ไขการรวมสามทาง ตัวเลือกนี้มีไว้สำหรับใช้เมื่อรวมสาขา
ด้วยตัวกรองสะอาดที่แตกต่างกันหรือกฎการทำให้เป็นมาตรฐานที่สิ้นสุดบรรทัด ดู "การผสาน
สาขาที่มีลักษณะการเช็คอิน/เช็คเอาต์ต่างกัน" ใน แอตทริบิวต์(5) สำหรับ
รายละเอียด
ไม่สร้างมาตรฐานใหม่
ปิดใช้งานตัวเลือกการปรับค่าปกติ สิ่งนี้จะแทนที่ merge.renormalize
ตัวแปรการกำหนดค่า
เปลี่ยนชื่อ-threshold=
ควบคุมเกณฑ์ความคล้ายคลึงกันที่ใช้สำหรับการตรวจหาการเปลี่ยนชื่อ ดูสิ่งนี้ด้วย git-diff(1)
-NS.
ทรีย่อย[= ]
ตัวเลือกนี้เป็นรูปแบบขั้นสูงของ ทรีย่อย กลยุทธ์ที่กลยุทธ์ทำให้
เดาว่าต้องย้ายต้นไม้สองต้นมารวมกันอย่างไรเมื่อรวมกัน
แต่เส้นทางที่ระบุจะถูกนำหน้า (หรือถอดออกจากจุดเริ่มต้น) เพื่อสร้าง
รูปร่างของต้นไม้สองต้นให้เข้าคู่กัน
ปลาหมึกยักษ์
สิ่งนี้แก้ไขกรณีที่มีมากกว่าสองหัว แต่ปฏิเสธที่จะทำการรวมที่ซับซ้อนนั้น
ต้องการความละเอียดแบบ manual มีวัตถุประสงค์หลักเพื่อใช้สำหรับการรวมสาขาหัวข้อ
หัวกัน. นี่คือกลยุทธ์การรวมเริ่มต้นเมื่อดึงหรือรวมมากกว่า
หนึ่งสาขา
แบก
สิ่งนี้จะแก้ไขหัวจำนวนเท่าใดก็ได้ แต่ต้นไม้ผลลัพธ์ของการผสานจะเป็นเช่นนั้นเสมอ
ของหัวหน้าสาขาปัจจุบัน โดยไม่สนใจการเปลี่ยนแปลงทั้งหมดจากสาขาอื่นทั้งหมดอย่างมีประสิทธิภาพ
มีไว้เพื่อใช้แทนที่ประวัติศาสตร์การพัฒนาเก่าของสาขาย่อย บันทึก
ว่าสิ่งนี้แตกต่างจากตัวเลือก -Xours ถึง ซ้ำ กลยุทธ์การรวม
ทรีย่อย
นี่คือกลยุทธ์แบบเรียกซ้ำที่แก้ไขแล้ว เมื่อรวมต้นไม้ A และ B ถ้า B สอดคล้องกับ
ทรีย่อยของ A, B จะถูกปรับให้เข้ากับโครงสร้างต้นไม้ของ A ก่อน แทนที่จะเป็น
การอ่านต้นไม้ในระดับเดียวกัน การปรับนี้ทำกับคนทั่วไปเช่นกัน
ต้นไม้บรรพบุรุษ
ด้วยกลยุทธ์ที่ใช้การผสาน 3 ทาง (รวมถึงค่าเริ่มต้น ซ้ำ) หากมีการเปลี่ยนแปลง
จะทำทั้งสองสาขา แต่ภายหลังกลับคืนมาที่กิ่งใดกิ่งหนึ่ง การเปลี่ยนแปลงนั้นจะเป็น
นำเสนอในผลรวม; บางคนพบว่าพฤติกรรมนี้ทำให้เกิดความสับสน เกิดขึ้นเพราะ
เฉพาะส่วนหัวและฐานที่ผสานเท่านั้นที่จะถูกพิจารณาเมื่อทำการผสาน ไม่ใช่
ความมุ่งมั่นของแต่ละบุคคล อัลกอริทึมการผสานจึงถือว่าการเปลี่ยนแปลงที่ย้อนกลับเป็น no
เปลี่ยนเลยและแทนที่เวอร์ชันที่เปลี่ยนแปลงแทน
เริ่มต้น พฤติกรรม
บ่อยครั้งที่ผู้คนใช้ git pull โดยไม่ให้พารามิเตอร์ใด ๆ ตามประเพณีนี้จะได้รับ
เทียบเท่ากับการพูดว่า git pull origin แต่เมื่อตั้งค่าสาขา .remote คือ
นำเสนอขณะอยู่ที่สาขา ค่านั้นถูกใช้แทนจุดเริ่มต้น
เพื่อกำหนดว่าจะใช้ URL ใดในการดึงข้อมูล ค่าของการกำหนดค่า
ระยะไกล. .url จะได้รับการพิจารณาและหากไม่มีตัวแปรดังกล่าว ค่าใน URL:
` บรรทัดใน `$GIT_DIR/remotes/ ใช้ไฟล์.
เพื่อกำหนดสาขาระยะไกลที่จะดึงข้อมูล (และเลือกที่จะจัดเก็บใน
สาขาการติดตามระยะไกล) เมื่อรันคำสั่งโดยไม่มีพารามิเตอร์ refspec ใด ๆ บน
บรรทัดคำสั่ง ค่าของตัวแปรคอนฟิกูเรชันระยะไกล .fetch ได้รับการปรึกษา
และถ้าไม่มี $GIT_DIR/remotes/ ไฟล์ได้รับคำปรึกษาและ `ดึง: `
มีการใช้เส้น นอกจากรูปแบบ refspec ที่อธิบายไว้ในส่วน OPTIONS แล้ว คุณ
สามารถมี globbing refspec ที่มีลักษณะดังนี้:
refs/heads/*:refs/remotes/origin/*
refspec globbing ต้องมี RHS ที่ไม่ว่างเปล่า (เช่นต้องเก็บสิ่งที่ดึงมาใน
สาขาการติดตามระยะไกล) และ LHS และ RHS ต้องลงท้ายด้วย /* ข้างต้นระบุว่า
สาขาระยะไกลทั้งหมดถูกติดตามโดยใช้สาขาการติดตามระยะไกลใน refs/remotes/origin/
ลำดับชั้นภายใต้ชื่อเดียวกัน
กฎในการพิจารณาว่ารีโมตสาขาใดที่จะผสานหลังจากการดึงข้อมูลนั้นเกี่ยวข้องเล็กน้อยใน
เพื่อไม่ให้ทำลายความเข้ากันได้ย้อนหลัง
หากมีการระบุ refspecs ที่ชัดเจนในบรรทัดคำสั่งของ git pull ทั้งหมดจะถูกรวมเข้าด้วยกัน
เมื่อไม่มีการกำหนด refspec บนบรรทัดคำสั่ง git pull จะใช้ refspec จาก the
การกำหนดค่าหรือ $GIT_DIR/remotes/ . ในกรณีดังกล่าว จะใช้กฎต่อไปนี้:
1. ถ้าสาขา. .merge การกำหนดค่าสำหรับสาขาปัจจุบัน มีอยู่ นั่นคือ
ชื่อของสาขาที่ไซต์ระยะไกลที่รวมเข้าด้วยกัน
2. ถ้า refspec เป็น globbing จะไม่มีการรวมสิ่งใด
3. มิฉะนั้น สาขาระยะไกลของ refspec แรกจะถูกรวมเข้าด้วยกัน
ตัวอย่าง
· อัปเดตสาขาการติดตามระยะไกลสำหรับพื้นที่เก็บข้อมูลที่คุณคัดลอกมา จากนั้นรวมเข้าด้วยกัน
ของพวกเขาในสาขาปัจจุบันของคุณ:
$ git pull, git pull กำเนิด
โดยปกติสาขาที่ผสานเป็น HEAD ของที่เก็บระยะไกล แต่ตัวเลือกคือ
กำหนดโดยสาขา .remote และสาขา .รวมตัวเลือก; ดู คอมไพล์-
การตั้งค่า(1) สำหรับรายละเอียด
· รวมสาขาปัจจุบันสาขาระยะไกลต่อไป:
$ git pull origin ต่อไป
สิ่งนี้จะทำให้สำเนาของ next ชั่วคราวใน FETCH_HEAD แต่ไม่ได้อัปเดตใดๆ
สาขาการติดตามระยะไกล การใช้สาขาการติดตามระยะไกล สามารถทำได้เช่นเดียวกันโดย
เรียกดึงและผสาน:
$ git ดึงต้นทาง
$ git ผสานกำเนิด/ถัดไป
หากคุณพยายามดึงซึ่งส่งผลให้เกิดความขัดแย้งที่ซับซ้อนและต้องการเริ่มต้นใหม่ คุณ
ฟื้นได้ด้วย คอมไพล์ ตั้งใหม่.
ใช้ git-pull ออนไลน์โดยใช้บริการ onworks.net