นี่คือวิธีที่คุณแบ่งปันงานของคุณบนที่เก็บระยะไกล git



แชร์งานในพื้นที่ของคุณกับทีมบนพื้นที่เก็บข้อมูลระยะไกลและเรียนรู้วิธีจัดการในขณะที่ติดตามการเปลี่ยนแปลงและซิงค์ข้อมูลอยู่เสมอ

ผลงานของคุณเพิ่มมูลค่ามากขึ้นเมื่อเผยแพร่และแบ่งปันกับคนทั้งโลก (หรือทีมของคุณ) !!!

เริ่มต้นใช้งาน

ไป อย่างที่คุณทราบเป็นเครื่องมือกำหนดเวอร์ชันที่ได้รับความนิยมมากที่สุดในปัจจุบัน เก็บ , ติดตาม และ รุ่น ชนิดใดก็ได้ ข้อมูล .
คุณสมบัติที่สำคัญบางประการของคอมไพล์คือ ความเร็ว , กระจาย ธรรมชาติ, ความปลอดภัย , ไม่เจ็บปวด การแตกแขนงและการรวมกัน พร้อมด้วย ร่วมมือกัน ทำงานร่วมกับผู้ร่วมให้ข้อมูลหลายคน

เริ่มต้นการสนทนาของเราจากที่นี่ให้เรามุ่งเน้นว่าคอมไพล์ช่วยคุณได้อย่างไร ร่วมมือ และแบ่งปันผลงานของคุณกับเพื่อนเพื่อให้ทุกคนสามารถทำงานกับรหัสเดียวกันได้พร้อมกันโดยไม่ทำให้ข้อมูลของกันและกันเสียหาย
นี่คือที่มาของแนวคิด ที่เก็บระยะไกล เข้ามาในภาพ
ฉันคิดว่าคุณมีความเชี่ยวชาญในศิลปะของ จากคุณ ไดเร็กทอรีการทำงาน (ระบบไฟล์) ไปยังไฟล์ พื้นที่จัดแสดง และส่งมันไปยังไฟล์ ที่เก็บในเครื่อง (ฐานข้อมูล).

สิ่งนี้เป็นแรงบันดาลใจให้เราผลักดันข้อมูลของเราไปสู่ระดับถัดไป“ ที่เก็บระยะไกล” เพื่อเผยแพร่บนที่เก็บระยะไกล

ข้อมูลของฉันยังไม่ถูกเก็บไว้ในฐานข้อมูล git ใช่หรือไม่

ใช่แล้ว! อย่างไรก็ตามตามที่ระบุไว้ในแผนภาพด้านล่างข้อมูลของคุณยังอยู่ในไฟล์ ฐานข้อมูลท้องถิ่น หลังจากที่คุณ กระทำ และยังไม่แชร์กับเพื่อนร่วมงานของคุณ
สถาปัตยกรรม 4 ชั้น
บทความนี้เติมเต็มช่องว่างระหว่างการหยิบข้อมูลของเราจากไฟล์ ที่เก็บในเครื่อง และนำไปยังเลเยอร์ถัดไปที่เรียกว่า ที่เก็บระยะไกล .





ที่เก็บระยะไกลคืออะไร

ฐานข้อมูลที่รวบรวมข้อมูลที่เก็บไว้ในตำแหน่งที่สามารถ แชร์ กับเพื่อนร่วมทีมของคุณด้วยการให้ เข้าไป .
โฮสต์บนไฟล์ เมฆ หรือบน เซิร์ฟเวอร์ (ในเครื่องหรือระยะไกล) บนอินเทอร์เน็ตหรือเครือข่ายท้องถิ่นของคุณ
ที่เก็บระยะไกลก็เหมือนกับที่เก็บ git ในเครื่องของคุณยกเว้นว่าโดยทั่วไปแล้วจะประกาศเป็นที่เก็บเปล่าดังนั้นเพื่อไม่ให้มีสำเนาที่ใช้งานได้เหมือนที่เก็บในเครื่องของคุณ
สิ่งนี้ทำเพื่อ จำกัด การเปลี่ยนแปลงโดยตรงที่ทำบนที่เก็บระยะไกล

ที่เก็บเปล่า แนวคิดเป็นข้อได้เปรียบเพิ่มเติมสำหรับที่เก็บระยะไกลเพื่อเก็บไว้ มีการป้องกัน และใช้เพื่อจุดประสงค์เดียวในการแบ่งปันรหัสระหว่างสมาชิกในทีม
สิ่งนี้ทำได้โดยการประกาศที่เก็บระยะไกลเป็นแบบเปล่าโดยใช้ปุ่ม '--แค่'ตั้งค่าสถานะในเวลาเริ่มต้นเป็นที่เก็บ git
การทำเช่นนั้น repo ของคุณจะถูกสร้างขึ้นด้วยข้อมูลเมตาของ git หรือกล่าวอีกนัยหนึ่งคือ git วัตถุที่เก็บไว้ในไดเร็กทอรี '.git' ที่ซ่อนอยู่เพียงอย่างเดียวและไม่มีสำเนาที่ใช้งานได้สำหรับทุกคนที่จะเพิ่มข้อมูลได้โดยตรง
คำสั่ง:เริ่มต้น git -bare

ด้วยเหตุนี้การก้าวไปข้างหน้าเราจะเห็นวิธีอื่น ๆ ในการจัดการ repo ระยะไกลและเราจะซิงค์งานในพื้นที่ของเรากับรีโมตได้อย่างไร



สร้างที่เก็บระยะไกล

ก่อนอื่นคุณต้องตัดสินใจเกี่ยวกับสถานที่ที่คุณต้องการวาง repo ระยะไกลของคุณ
มีที่เก็บ git บนคลาวด์ที่เป็นที่นิยมอยู่ไม่น้อยเช่น - GitLab , BitBucket , GitHub , บังคับ และ CloudForge เพื่อชื่อไม่กี่
ในโพสต์นี้ฉันกำลังพิจารณา GitHub เนื่องจากเป็นสถานที่ที่ฉันเริ่มเก็บที่เก็บ git เป็นครั้งแรก ในการเริ่มต้นสิ่งที่คุณต้องทำคือลงชื่อเข้าใช้บัญชี GitHub จากนั้น สร้างที่เก็บใหม่ สิ่งนี้จะสร้าง URL ที่ชี้ไปที่ repo ระยะไกลนี้


Git รองรับโปรโตคอล ssh, git, http และ https เพื่อระบุ URL ที่เก็บ

หรือคุณสามารถวางโครงการของคุณไว้ที่อื่นได้เช่นกันพูดว่า a เซิร์ฟเวอร์ลินุกซ์ ทำตามคำสั่งด้านล่าง -
ซีดี $ HOME
mkdir remote_repo
cd remote_repo
เริ่มต้น git -bare

แนบรีโมทเข้ากับเครื่องในพื้นที่ของคุณ

การแนบรีโมตเข้ากับสำเนาการทำงานของคุณเพียงแค่สร้างไฟล์ ตัวจัดการการอ้างอิงตัวชี้ สำหรับรีโมทหรือเรียกง่ายๆว่า“ ตัวจัดการระยะไกล '.
ข้ามไปที่โครงการของฉันที่ฉันต้องการเผยแพร่ -cd learnRemotes
ไวยากรณ์:git remote add
คำสั่ง:git remote add origin https://github.com/divyabhushan/learnRemotes.git

“ แหล่งกำเนิด คือ ค่าเริ่มต้น ชื่ออ้างอิงสำหรับตัวจัดการระยะไกล” (ชื่อระยะไกลต้องเป็นชื่อที่เกี่ยวข้อง)
มาดูกันว่าได้ผลหรือไม่โดยใช้คำสั่ง:git remote

มันทำ :)

พิมพ์ URL ระยะไกลพร้อมกับชื่อ:
git ระยะไกล -v

ทำได้ดี! คุณพร้อมที่จะสร้างการเชื่อมต่อกับที่เก็บระยะไกลจากไดเร็กทอรีการทำงานภายในเครื่องของคุณ

ถึงเวลาเผยแพร่

ไวยากรณ์:git push - ทั้งหมด - แท็ก[-u | - ตั้งค่าต้นน้ำ]
คำสั่ง:git push origin master

คุณอ่านสิ่งนี้เป็น “ ผลักดันความแตกต่างของการคอมมิตไปยังต้นทางจากผู้เชี่ยวชาญในพื้นที่” .

หากคุณตรวจสอบบัญชี GitHub ของคุณการกระทำ (ข้อมูล) ในพื้นที่ของคุณจะต้องแสดงที่นั่น -



ติดตามสาขา

ดังนั้นคุณได้เผยแพร่งานของคุณบนที่เก็บระยะไกลเรียบร้อยแล้ว
อย่างไรก็ตามสิ่งสำคัญคือคุณต้องตั้งค่าสาขาในพื้นที่ของคุณเป็น ติดตาม การเปลี่ยนแปลงในสาขาระยะไกลโดยอัตโนมัติ
ใช้ '- ตั้งค่าต้นน้ำหรือ-ยู'ตั้งค่าสถานะพร้อมกับคำสั่ง' git push '
คำสั่ง:git push -u ต้นแบบต้นทาง

สาขารหัสสี


มาสร้างคอมมิตใหม่ในสาขา 'หลัก' และตรวจสอบว่าคอมไพล์ตรวจพบได้อย่างไร -
คำสั่ง:สถานะคอมไพล์


แสดงสาขาการติดตามในโหมด verbose
คำสั่ง:สาขา git -vv


ดังนั้นทุกครั้งจึงมีความแตกต่างในการคอมมิตระหว่างพื้นที่เก็บข้อมูลในเครื่องและพื้นที่เก็บข้อมูลระยะไกลในสาขาที่ติดตาม Git จะแจ้งให้คุณทราบ
ไม่เจ๋งเลย !!!

คนอื่นจะเชื่อมต่อกับรีโมทของคุณได้อย่างไร?

มันคือเค้กชิ้นหนึ่งเมื่อคุณ โคลน ที่เก็บระยะไกล !!!

ดังนั้นการโคลนนิ่งจากที่เก็บระยะไกลจะทำ 2 สิ่งแรกของคุณ การอ้างอิงระยะไกล จะถูกเพิ่มโดยอัตโนมัติและค่าเริ่มต้นที่สอง สาขา ถูกตั้งค่าเป็น ติดตาม สาขาห่างไกล โดยอัตโนมัติ

ขั้นตอนที่ 1: โคลน repo ระยะไกลของคุณเป็นผู้ใช้อื่น -
คำสั่ง:git clone https://github.com/divyabhushan/learnRemotes.git ผู้พัฒนา 2
นักพัฒนาซีดี 2

ขั้นตอนที่ 2: แสดงรีโมทและ url
คำสั่ง:git ระยะไกล -v


ขั้นที่ 3: แสดงรายการติดตามสาขา
คำสั่ง:สาขา git -vv


ความสนุกเริ่มต้นขึ้นเมื่อ 'developer2' เริ่มงานของตัวเองและกดไปที่รีโมต

คุณสามารถเชื่อมต่อและมีส่วนร่วมกับ รีโมทมากกว่าหนึ่งตัว ที่เก็บจาก โครงการเดียว .

ดูสาขาระยะไกล

คำสั่ง:สาขา git -r


ใช้ตัวเลือก '-a' เพื่อพิมพ์ทั้งสาขาในพื้นที่และสาขาระยะไกลลองใช้ใน repo ในพื้นที่ของคุณหลังจากสร้างสาขาในพื้นที่เพียงไม่กี่สาขา

ผู้อื่นมีส่วนร่วมกับรีโมตของคุณอย่างไร?

ตั้งค่าเริ่มต้น
Developer2 ตัดสินใจที่จะเปลี่ยนแปลงสองสิ่งเช่น:
ถึง. สร้าง 'คุณลักษณะ' ใหม่จากการกระทำล่าสุดในสาขา 'master' และสร้างไฟล์ คอมมิตใหม่ ในสาขา 'คุณลักษณะ'
คำสั่ง:
git checkout -b คุณลักษณะ
echo 'การปรับปรุงคุณสมบัติ'> feature.txt
คอมไพล์เพิ่ม && คอมมิต git -m 'การปรับปรุงคุณสมบัติ'

ข. สร้าง สาขา 'feature2' ที่แตกต่างจากการคอมมิตรุ่นเก่าในสาขา 'master'
คำสั่ง:
git checkout -b feature2 95651fb
echo 'เพิ่ม feature2'> feature2.txt
คอมไพล์เพิ่ม && คอมมิตคอมมิต -m 'การเพิ่มฟีเจอร์ 2 การเปลี่ยนแปลง'

ลองนึกภาพสาขาในเครื่อง developer2 พร้อมกับข้อมูลการติดตาม:

อย่างที่คุณต้องสังเกตเห็นว่าสาขาใหม่ไม่ได้ถูกตั้งค่าเพื่อติดตามสาขาระยะไกล

ผลักดันการเปลี่ยนแปลงเป็นระยะไกล
ก่อนอื่นให้ฉันดันสาขา 'คุณลักษณะ' ไปยังระยะไกลโดยใช้แฟล็ก '–set-upstream หรือ -u'
คำสั่ง:คุณลักษณะจุดเริ่มต้นของ git push -u




สาขาใหม่จะถูกสร้างขึ้นบนรีโมทหากยังไม่มี !!!

ในขณะนี้ให้แสดงรายการสาขาระยะไกลด้วยคำสั่ง: 'git branch -r'




อีกวิธีในการติดตามสาขาระยะไกล
นอกจากนี้เรามาตั้งค่าสาขา 'feature2' ให้ชี้ไปที่สาขา 'คุณลักษณะ' เดียวกันบนรีโมท
คำสั่ง:สาขา git - set-upstream-to = origin / feature feature2



สาขารหัสสี


เคล็ดลับสั้น ๆ : คุณสามารถละชื่อสาขาในพื้นที่ได้หากคุณอยู่ในสาขานั้นอยู่แล้วหรือกล่าวอีกนัยหนึ่งคือสาขาในพื้นที่ได้รับการชำระเงินแล้ว

แสดงรายการสาขาในโหมด verbose อีกครั้งคำสั่ง:สาขา git -vv



ข้อสังเกตทั้งสาขาในพื้นที่ 'คุณลักษณะ' และ 'คุณลักษณะ 2' ชี้ไปที่ 'คุณลักษณะ' สาขาระยะไกลเดียวกัน

ซิงค์กับรีโมทอยู่เสมอ - ดึงดึงและดัน

ลองพิจารณาส่วนที่ สาขาห่างไกล คุณกำลังติดตามได้รับการอัปเดตแล้วจะเป็นอย่างไร
ง่ายๆ ‘สถานะคอมไพล์‘หรือ‘git ชำระเงิน‘หรือแม้แต่‘สาขา git -vvคำสั่งเตือนเราด้วยความไม่ตรงกัน -



'Developer2' ต้องอัปเดตการอ้างอิงและวัตถุในเครื่องก่อน (' git ดึงข้อมูล ‘) จากนั้นผสานการเปลี่ยนแปลงระยะไกลและภายในเครื่อง (‘ git merge ’)
ที่น่าสนใจคือคุณสามารถแทนที่สองคำสั่งนี้ได้ด้วยคำสั่ง 'git pull' เพียงคำสั่งเดียว
ไวยากรณ์:ไป ดึง

- สำหรับสาขาที่ไม่ได้ติดตาม
ไวยากรณ์: git pull [:]
คำสั่ง:git pull origin คุณลักษณะ: คุณลักษณะ 2

- สำหรับสาขาที่ติดตาม
ไวยากรณ์: git pull
คำสั่ง:git ดึง




=> ในทางปฏิบัติอาจมีความขัดแย้งเกิดขึ้นในขั้นตอนนี้เมื่อคุณดึงจากระยะไกลเพื่อความเรียบง่ายฉันได้สร้างการเปลี่ยนแปลงการกระทำที่ไม่มีข้อขัดแย้ง

หลังจาก 'developer2' ดึง (ดึงและผสาน) การเปลี่ยนแปลงล่าสุดจากระยะไกลจะต้องเผยแพร่ผลงานของเขาเอง -
คำสั่ง:git push origin HEAD: คุณลักษณะ
หมายเหตุ: 'คุณลักษณะ' สาขาต้นน้ำไม่ตรงกับชื่อ 'feature2' ของสาขาท้องถิ่นคุณต้องระบุอย่างชัดเจน



การแจ้งเตือน : 'HEAD' เป็นการคอมมิตล่าสุดในสาขา 'feature2' ในพื้นที่

เมื่อใดควรใช้ 'git fetch'
ในบางครั้งที่คุณจำเป็นต้องอัปเดตไฟล์ หัวอ้างอิง โดยไม่ต้องดาวน์โหลด (ดึง) จากรีโมท
หรือเมื่อมีการแก้ไข / ลบสาขาระยะไกลเมื่ออัปเดตคุณจะต้องเรียกใช้คำสั่งดึงข้อมูลด้วยปุ่ม '--พรุน‘ตัวเลือก.
ตามแนวทางปฏิบัติที่ดีที่สุดคุณต้องเรียกใช้คำสั่ง 'git fetch' ทุกครั้งที่คุณเริ่มทำงานกับ repo ในพื้นที่ของคุณ

การจัดการระยะไกล

สุดท้ายคุณต้องทำงานดูแลทำความสะอาดบางอย่างเช่นการเปลี่ยนชื่อหรือลบรีโมทและกิ่งไม้
สิ่งเหล่านี้มีความสำคัญพอ ๆ กับคำสั่งก่อนหน้านี้

เปลี่ยนชื่อรีโมท

ไวยากรณ์:git การเปลี่ยนชื่อระยะไกล
คำสั่ง:git ระยะไกลเปลี่ยนชื่อ snv_repo svn
ตัวอย่างเช่นพิจารณาผู้จัดการโครงการที่เกี่ยวข้องกับ 3 โครงการ -


รูปแบบการเขียนโปรแกรมตาม pojo คืออะไร

ลบการอ้างอิงระยะไกล

สมมติว่าคุณไม่ได้ซิงค์กับที่เก็บระยะไกลอีกต่อไปคุณมีแนวโน้มที่จะลบการอ้างอิงตัวชี้ไปยังที่เก็บข้อมูลนั้น
อย่างไรก็ตามสิ่งนี้จะไม่ส่งผลกระทบต่อพื้นที่เก็บข้อมูลระยะไกลและงานอื่น ๆ

ไวยากรณ์:git remote ลบ
คำสั่ง:git remote ลบ proj1


จะเป็นอย่างไรหากคุณตั้งค่าสาขาในพื้นที่ให้ติดตามสาขาจากที่เก็บ 'proj1' ที่ถูกลบ
ของคุณ สาขาในพื้นที่ (และด้วยเหตุนี้การทำงาน) คือ ปลอดภัย และยังคงมีอยู่เพียงแค่ การอ้างอิงการติดตามระยะไกล และ การกำหนดค่า การตั้งค่าจะเป็น ลบอัตโนมัติ

ลบสาขาระยะไกล

พูดว่าคุณ โดยบังเอิญ ผลักดันไฟล์ ส่วนตัว งานหยาบบน สาขาไปยังรีโมท แต่ยังไม่ต้องการให้คนอื่นตรวจสอบ -
ลบสาขา 'unfinishedWork' จากรีโมต 'svn’-
คำสั่ง:สาขา git -vv# ระบุสาขาติดตามระยะไกล



ไวยากรณ์:git push - ลบ
คำสั่ง:git push - ลบ svn ที่ยังไม่เสร็จ


คดเคี้ยว

ด้วยเหตุนี้เราจึงมาถึงจุดสิ้นสุดของบทความนี้ หากคุณพบสิ่งนี้“ บทช่วยสอน ” เกี่ยวข้อง ตรวจสอบไฟล์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ซึ่งมีเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก หลักสูตรการฝึกอบรม Edureka DevOps Certification ช่วยให้ผู้เรียนมีความเชี่ยวชาญในกระบวนการและเครื่องมือ DevOps ต่างๆเช่น Puppet, Jenkins, Nagios และ GIT สำหรับการทำหลายขั้นตอนใน SDLC โดยอัตโนมัติ