ทำงานในโครงการระยะไกลด้วย Eclipse ผ่าน SSH


192

ฉันมีกล่องดังต่อไปนี้:

  1. กล่อง Windows พร้อม Eclipse CDT
  2. กล่อง Linux สามารถเข้าถึงได้สำหรับฉันผ่าน SSH เท่านั้น

ทั้งคอมไพเลอร์และฮาร์ดแวร์ที่จำเป็นในการสร้างและเรียกใช้โครงการของฉันมีเฉพาะในเครื่อง B

ฉันต้องการทำงาน "โปร่งใส" จากกล่อง Windows ในโครงการนั้นโดยใช้ Eclipse CDT และสามารถสร้างรันและดีบักโครงการจากระยะไกลได้จากภายใน IDE

ฉันจะตั้งค่าอย่างไร:

  • อาคารจะทำงานอย่างไร วิธีแก้ปัญหาที่ง่ายกว่าการเขียน makefile โลคัลซึ่งrsyncโครงการจะเรียกใช้ makefile ระยะไกลเพื่อเริ่มต้นการสร้างจริงหรือไม่? Eclipse ที่มีการจัดการที่สร้างมีคุณสมบัติสำหรับการทำเช่นนั้น
  • การแก้ไขข้อบกพร่องจะทำงานอย่างไร
  • ควรทำดัชนีรหัส Eclipse CDT หรือไม่ ฉันต้องคัดลอกไฟล์ส่วนหัวที่จำเป็นทั้งหมดจากเครื่อง B ไปยังเครื่อง A และเพิ่มไฟล์เพื่อรวมเส้นทางด้วยตนเองหรือไม่

4
คอสคุณได้ใช้ RSE หรือไม่? ประสบการณ์ของคุณเป็นอย่างไร
Aleksandr Levchuk

2
ฉันจัดการที่จะทำ แต่: a) CDT มีปัญหาบางอย่างเกี่ยวกับการตระหนักถึงระบบไฟล์เสมือน (AFAIK นี่เป็นปัญหาชั่วคราวและจะหายไปเมื่อพวกเขาเขียนบางสิ่งไปยัง API ที่ใหม่กว่าพวกเขาอาจทำไปแล้วหรือไม่ IDK) และ b) ฉันต้องม้วนโซ่การรวบรวมของตัวเอง (ผ่าน makefile ที่กำหนดเอง) และ c) ไฟล์บันทึกการรบกวนที่ไม่พึงประสงค์ใช้เวลาประมาณ 2 ~ 3 วินาทีและสิ่งนี้รบกวน
Kos

1
ถ้าฉันต้องทำงานจากระยะไกลอีกครั้งในวันนี้ฉันอาจจะหมุนอีกครั้งด้วย RSE แต่ฉันอาจพบว่ามันเป็นไปได้มากกว่าที่จะทำให้มันเป็นโครงการในท้องถิ่นและม้วนระบบสร้างที่กำหนดเองตามเช่นrsyncฉัน กล่าวถึง
Kos

2
และน่าเสียดายที่ฉันไม่ได้จัดการตั้งค่าการดีบักแบบรีโมทหรือการสร้างดัชนีของส่วนหัวของห้องสมุดระยะไกล ฉันสงสัยว่าหลังสามารถทำได้ อดีต - ฉันคิดว่ามันเป็นไปได้ แต่ฉันไม่จำเป็นต้องขุดมัน
Kos

ฉันเข้าถึงเครื่องระยะไกลของฉันโดยการลงชื่อเข้าใช้เซิร์ฟเวอร์การเข้าสู่ระบบจากนั้นเข้าสู่ระบบจากเครื่องระยะไกลของฉัน ทั้งสองมีรหัสผ่านที่แตกต่างกัน มีวิธีการทำงานกับเครื่องระยะไกลใน Eclipse หรือไม่?
Arjun J Rao

คำตอบ:


219

ลองใช้Remote System Explorer (RSE) เป็นชุดของปลั๊กอินที่จะทำสิ่งที่คุณต้องการ

RSE อาจรวมอยู่ในการติดตั้ง Eclipse ปัจจุบันของคุณแล้ว ในการเช็คอิน Eclipse Indigo ให้ไปที่หน้าต่าง > เปิดเปอร์สเปคทีฟ > อื่น ๆ ...และเลือกRemote System Explorerจากไดอะล็อกOpen Perspectiveเพื่อเปิดเปอร์สเปคทีฟ RSE

ในการสร้างโครงการระยะไกล SSH จากเปอร์สเปคทีฟ RSE ใน Eclipse:

  1. กำหนดการเชื่อมต่อใหม่และเลือก SSH เท่านั้นจากหน้าจอเลือกประเภทระบบระยะไกลในกล่องโต้ตอบการเชื่อมต่อใหม่
  2. ป้อนข้อมูลการเชื่อมต่อจากนั้นเลือกเสร็จสิ้น
  3. เชื่อมต่อกับโฮสต์ใหม่ (สมมติว่ามีการติดตั้งคีย์ SSH แล้ว)
  4. เมื่อเชื่อมต่อแล้วเจาะลึกลงในไฟล์ Sftpของโฮสต์ให้เลือกโฟลเดอร์และเลือกสร้างโครงการระยะไกลจากเมนูบริบทของรายการ (รอขณะที่โครงการระยะไกลถูกสร้างขึ้น)

หากทำอย่างถูกต้องตอนนี้ควรมีโครงการรีโมตใหม่ที่สามารถเข้าถึงได้จาก Project Explorer และมุมมองอื่นภายใน eclipse ด้วยการตั้งค่าการเชื่อมต่อ SSH อย่างถูกต้องรหัสผ่านสามารถทำให้เป็นส่วนหนึ่งของกระบวนการรับรองความถูกต้อง SSH ปกติ ตอนนี้โครงการระยะไกลที่มี Eclipse ผ่าน SSH ได้ถูกสร้างขึ้นแล้ว


2
RSE ยังคงเป็นเรื่องยาก ความคิดที่ดีที่สุดจาก RSE คือให้ Eclipse ทำทุกอย่างผ่านการเชื่อมต่อ SSH แต่คุณลักษณะนั้นยังไม่ทำงาน คุณสมบัติการทำงานนั้นเกี่ยวข้องกับเซิร์ฟเวอร์บางตัวที่คุณต้องติดตั้งบนกล่อง Linux
อีวอน

2
พวก RSE ชอบที่จะรับรายงานบั๊ก / ปรับปรุง
Aaron Digulla

2
@Aaron - ฉันเคยลองวิธีแก้ปัญหา rsync นั้นมาก่อนจาก Makefile ซึ่งโดยทั่วไปแล้วจะแทนที่ลำดับคีย์ของคุณด้วย Ctrl + B หนึ่งชุด ปัญหาคือว่าด้วยวิธีนี้ฉันไม่สามารถเรียกใช้หรือดีบักจาก Eclipse RSE ดูเหมือนจะเป็นเครื่องมือที่ดีในการทำงาน @Ioan คุณสามารถอธิบายเพิ่มเติมเกี่ยวกับสิ่งที่ไม่ทำงานหรือไม่ ดูเหมือนว่าวิกิ RSE จะแสดงรายการระบบไฟล์ SSH และการดีบักแบบรีโมทเป็นคุณสมบัติปัจจุบัน ... หรือฉันจะลองใช้วันจันทร์นี้
Kos

3
@AaronDigulla สวัสดีทางออกมันเจ๋ง แต่ฉันพบว่าเมื่อฉันสร้างโครงการระยะไกล Eclipse พยายามรวบรวมมันในเครื่อง มีอยู่แล้วเพื่อให้มันรวบรวมและเรียกใช้ในเครื่องระยะไกล?
shaoyl85

1
การจัดทำดัชนี C / C ++ ทำงานไม่ถูกต้องกับ RSE ตัวทำดัชนีบ่นเกี่ยวกับสัญลักษณ์ที่หายไป มันทำงานได้ดีเมื่อโครงการและไฟล์ต้นฉบับถูกเก็บไว้ในเครื่อง แต่ด้วย RSE มันไม่ทำงาน ความคิดใด ๆ
Black_Zero

12

วิธีที่ง่ายที่สุดในการรัน Eclipse CDT บน Linux Box และใช้ X11-Forwarding หรือซอฟต์แวร์เดสก์ท็อประยะไกลเช่น VNC

แน่นอนว่าสิ่งนี้เป็นไปได้เฉพาะเมื่อคุณมี Eclipse บนกล่อง Linux และการเชื่อมต่อเครือข่ายของคุณไปยังกล่องนั้นเร็วพอ

ข้อดีคือเนื่องจากทุกอย่างเป็นแบบท้องถิ่นคุณจะไม่มีปัญหาในการซิงโครไนซ์และคุณจะไม่ได้รับปัญหาข้ามแพลตฟอร์มที่น่าอึดอัดใจ

หากคุณไม่มี eclipse บนกล่องคุณสามารถนึกถึงการแชร์ไดเรกทอรีการทำงานของ linux ผ่าน SMB (หรือ SSHFS) และเข้าถึงจากเครื่อง windows ของคุณ แต่นั่นต้องมีการตั้งค่าค่อนข้างมาก

ทั้งสองจะดีกว่ามีสำเนาสองชุดโดยเฉพาะเมื่อข้ามแพลตฟอร์ม


1
ฉันกลัวว่ากล่อง linux จะไม่มี X11 :)
คอส

2
@Kos คุณต้องใช้เซิร์ฟเวอร์ X11 ในการทำงานตามที่คุณต้องการไม่ว่าจะเป็น Linux ในเครื่องเสมือนหรือเซิร์ฟเวอร์ X11 สำหรับ Windows - และ Eclipse เพื่อให้ทำงานบนเซิร์ฟเวอร์ Linux ssh อนุญาตให้ทำการ tunneling ข้อมูลเครือข่าย - คุณจะพบการบีบอัด + "-c blowfish" เพื่อช่วยประสบการณ์
Thorbjørn Ravn Andersen

เพื่อชี้แจง - คุณหมายถึงสิ่งที่เรียกว่า "headless Eclipse" บนเครื่องรีโมตหรือไม่ (ถ้าให้มันมีจาวา :)) ฉันกำลังมองหาโซลูชันฝั่งไคลเอ็นต์ที่มีขนาดเล็ก แต่การตั้งค่าบนเครื่องระยะไกลอาจเป็นตัวเลือกได้เช่นกัน
Kos

7
@Kos: ไม่ X11 ทำงานเช่นนี้: คุณมีลูกค้าและเซิร์ฟเวอร์ เซิร์ฟเวอร์เป็นที่ที่มอนิเตอร์เชื่อมต่ออยู่ มันจะแสดงผลและการแสดงผลทั้งหมด ไคลเอ็นต์ (Eclipse ในกรณีนี้) เพิ่งส่งคำสั่งการแสดงผลไปยังเซิร์ฟเวอร์ ดังนั้นคุณต้องติดตั้ง X11 บน Windows และรัน Eclipse บนกล่อง Linux ของคุณ สิ่งที่คุณต้องทำบน Linux คือตั้งค่าDISPLAYตัวแปรเพื่อให้ Eclipse รู้ว่าเซิร์ฟเวอร์อยู่ที่ใด
Aaron Digulla

5
เครือข่ายจะต้องรวดเร็วแม้ว่าเซิร์ฟเวอร์ของคุณและหรือ Eclipse จะทำงานช้ามาก
mattalxndr

6

ฉันอยู่ในจุดเดียวกันตัวเอง (หรือเป็น), FWIW ฉันสิ้นสุดการตรวจสอบการแชร์แซมบ้าบนโฮสต์ Linux และการแก้ไขที่ใช้ร่วมกันบนเครื่อง Windows ด้วย notepad ++ จากนั้นฉันก็คอมไพล์บนกล่อง Linux ผ่าน PuTTY (เราไม่ได้รับอนุญาตให้อัปเดตเครื่องมือแก้ไขรุ่น y / o สิบรุ่นบนโฮสต์ Linux และไม่มี Java ดังนั้นฉันจึงยกเลิกการส่งต่อ X11)

ตอนนี้ ... ฉันรัน Linux ที่ทันสมัยใน VM บนโฮสต์ Windows ของฉันเพิ่มเครื่องมือทั้งหมดที่ฉันต้องการ (เช่น CDT) ไปยัง VM จากนั้นฉันเช็คเอาต์และสร้างในคุก chroot ที่คล้ายกับ RTE

มันเป็นทางออกที่น่าเบื่อ แต่ฉันคิดว่าฉันจะโยนมันลงไปในส่วนผสม


3

โซลูชันของฉันคล้ายกับ SAMBA ยกเว้นการใช้ sshfs เมานต์เซิร์ฟเวอร์ระยะไกลของฉันด้วย sshfs เปิดโครงการ makefile ของฉันบนเครื่องระยะไกล ไปจากที่นั่น

ดูเหมือนว่าฉันสามารถเรียกใช้ส่วนหน้า GUI เพื่อ Mercurial ด้วยวิธีนี้เช่นกัน

การสร้างรหัสระยะไกลของฉันทำได้ง่ายเพียง: ssh address remote_make_command

ฉันกำลังมองหาวิธีที่ดีในการแก้ไขข้อบกพร่อง อาจเป็นไปได้ผ่าน gdbserver?


2

ฉันมีปัญหาเดียวกันเมื่อ 2 ปีที่แล้วและฉันแก้ไขมันด้วยวิธีต่อไปนี้:

1) ฉันสร้างโครงการด้วย makefiles ซึ่งไม่ได้รับการจัดการโดย eclipse 2) ฉันใช้การเชื่อมต่อ SAMBA เพื่อแก้ไขไฟล์ภายใน Eclipse 3) การสร้างโครงการ: Eclipse เรียกใช้ "local" กับ makefile ซึ่งเปิดการเชื่อมต่อ SSH กับ Linux เจ้าภาพ ในบรรทัดคำสั่ง SSH คุณสามารถกำหนดพารามิเตอร์ที่จะดำเนินการบนโฮสต์ Linux ฉันใช้สำหรับพารามิเตอร์นั้นคือเชลล์สคริปต์ makeit.sh ซึ่งเรียกใช้ "จริง" บนโฮสต์ Linux เป้าหมายที่แตกต่างกันสำหรับการสร้างที่คุณสามารถกำหนดได้ด้วยพารามิเตอร์จากโลคอล makefile -> makeit.sh -> makefile บนโฮสต์ลินุกซ์


ดี แต่ไม่สามารถเรียกว่า "โปร่งใส" - ไม่อนุญาตให้ทำการดีบักอย่างน้อยที่สุด นอกจากนี้ยังอาจใช้ RSync แทน Samba (ซึ่งเป็นสิ่งที่ฉันมีก่อนที่จะโพสต์คำถามเดิมของฉัน)
Kos

2

ฉันพยายามssh -Xแต่มันก็ช้าเหลือทน

ฉันลองใช้ RSE ด้วย แต่มันก็ไม่สนับสนุนการสร้างโครงการด้วย Makefile ( ฉันได้รับแจ้งว่ามีการเปลี่ยนแปลงตั้งแต่ฉันโพสต์คำตอบของฉันแต่ฉันไม่ได้ลองเลย)

ฉันอ่านว่า NX นั้นเร็วกว่าการส่งต่อ X11 แต่ฉันไม่สามารถใช้งานได้

ในที่สุดฉันพบว่าเซิร์ฟเวอร์ของฉันรองรับX2Go (ลิงก์มีคำแนะนำในการติดตั้งหากคุณไม่ได้ใช้) ตอนนี้ฉันต้อง:

  • ดาวน์โหลดและแกะ Eclipse บนเซิร์ฟเวอร์
  • ติดตั้ง X2Go บนเครื่องของฉัน ( sudo apt-get install x2goclientบน Ubuntu)
  • กำหนดค่าการเชื่อมต่อ (โฮสต์ล็อกอินอัตโนมัติด้วยคีย์ ssh เลือกเพื่อรัน Eclipse)

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



0

ปัจจุบันคำตอบนี้ใช้ได้กับการใช้คอมพิวเตอร์ Linux สองเครื่องเท่านั้น (หรืออาจใช้งานบน Mac ได้เช่นกัน - ไม่ได้ทดสอบบน Mac] (ซิงค์จากคอมพิวเตอร์หนึ่งไปอีกเครื่องหนึ่ง) เพราะฉันเขียนสคริปต์การซิงโครไนซ์นี้ใน bash มันเป็นเพียงแค่เสื้อคลุมรอบ ๆgitดังนั้นอย่าลังเลที่จะนำไปแปลงเป็นโซลูชัน Python ข้ามแพลตฟอร์มหรืออะไรก็ได้ตามที่คุณต้องการ


สิ่งนี้ไม่ได้ตอบคำถามของ OP โดยตรง แต่ใกล้ฉันรับประกันได้ว่าจะตอบคำถามของคนอื่น ๆ ที่ลงจอดในหน้านี้ (รวมจริง ๆ แล้วฉันมาที่นี่ก่อนที่จะเขียนวิธีแก้ปัญหาของตัวเอง) ดังนั้นฉันจึง กำลังโพสต์ไว้ที่นี่แล้ว

ฉันต้องการ:

  1. พัฒนารหัสโดยใช้ IDE ที่มีประสิทธิภาพเช่น Eclipse บนคอมพิวเตอร์ Linux ที่มีน้ำหนักเบา
  2. สร้างรหัสนั้นผ่าน ssh บนคอมพิวเตอร์ Linux อื่นที่มีประสิทธิภาพมากกว่า (จากบรรทัดคำสั่งไม่ใช่จากภายใน Eclipse)

ลองเรียกคอมพิวเตอร์เครื่องแรกที่ฉันเขียนรหัส "PC1" (คอมพิวเตอร์ส่วนตัว 1) และคอมพิวเตอร์เครื่องที่สองที่ฉันสร้างรหัส "PC2" ฉันต้องการเครื่องมือในการซิงโครไนซ์จาก PC1 กับ PC2 ได้อย่างง่ายดาย ฉันพยายามrsyncแต่มันช้ามากสำหรับ repos ขนาดใหญ่และใช้แบนด์วิดธ์และข้อมูลจำนวนมาก

ดังนั้นฉันจะทำอย่างไร ฉันควรใช้เวิร์กโฟลว์ใด หากคุณมีคำถามนี้ด้วยนี่คือขั้นตอนการทำงานที่ฉันตัดสินใจ ฉันเขียนสคริปต์ทุบตีเพื่อทำให้กระบวนการเป็นgitไปโดยอัตโนมัติโดยใช้เพื่อผลักดันการเปลี่ยนแปลงจาก PC1 ไปยัง PC2 โดยอัตโนมัติผ่านที่เก็บข้อมูลระยะไกลเช่น Github จนถึงตอนนี้มันใช้งานได้ดีมากและฉันก็พอใจกับมันมาก มันไกลเร็วกว่าrsyncน่าเชื่อถือมากกว่าในความเห็นของฉันเพราะพีซีแต่ละเครื่องรักษา repo git ที่ใช้งานได้และใช้แบนด์วิดท์น้อยกว่าในการซิงค์ทั้งหมดดังนั้นจึงสามารถทำได้ง่ายกว่าโทรศัพท์มือถือฮอตสปอตโดยไม่ต้องใช้ข้อมูลมากมาย

ติดตั้ง:

  1. ติดตั้งสคริปต์บน PC1 (วิธีนี้ถือว่า ~ / bin อยู่ใน $ PATH ของคุณ):

    git clone https://github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles.git
    cd eRCaGuy_dotfiles/useful_scripts
    mkdir -p ~/bin
    ln -s "${PWD}/sync_git_repo_from_pc1_to_pc2.sh" ~/bin/sync_git_repo_from_pc1_to_pc2
    cd ..
    cp -i .sync_git_repo ~/.sync_git_repo
  2. ตอนนี้แก้ไขไฟล์ "~ / .sync_git_repo" ที่คุณเพิ่งคัดลอกด้านบนและอัปเดตพารามิเตอร์ให้เหมาะกับกรณีของคุณ นี่คือพารามิเตอร์ที่มี:

    # The git repo root directory on PC2 where you are syncing your files TO; this dir must *already exist* 
    # and you must have *already `git clone`d* a copy of your git repo into it!
    # - Do NOT use variables such as `$HOME`. Be explicit instead. This is because the variable expansion will 
    #   happen on the local machine when what we need is the variable expansion from the remote machine. Being 
    #   explicit instead just avoids this problem.
    PC2_GIT_REPO_TARGET_DIR="/home/gabriel/dev/eRCaGuy_dotfiles" # explicitly type this out; don't use variables
    
    PC2_SSH_USERNAME="my_username" # explicitly type this out; don't use variables
    PC2_SSH_HOST="my_hostname"     # explicitly type this out; don't use variables
  3. คอมไพล์ repo ของคุณที่คุณต้องการซิงค์ทั้งบน PC1 และ PC2

  4. ตรวจสอบให้แน่ใจว่าปุ่ม ssh ของคุณได้รับการตั้งค่าทั้งหมดเพื่อให้สามารถผลักและดึงไปยัง repo ระยะไกลจากทั้ง PC1 และ PC2 นี่คือลิงค์ที่มีประโยชน์:
    1. https://help.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh
    2. https://help.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent
  5. ตรวจสอบให้แน่ใจว่าคีย์ ssh ของคุณได้รับการตั้งค่าทั้งหมดเป็น ssh จาก PC1 ถึง PC2
  6. ตอนนี้cdในไดเรกทอรีใด ๆ ภายใน git repo บน PC1 และเรียกใช้:

    sync_git_repo_from_pc1_to_pc2
  7. แค่นั้นแหละ! ประมาณ 30 วินาทีหลังจากนั้นทุกอย่างจะถูกซิงค์อย่างน่าอัศจรรย์จาก PC1 ถึง PC2 และมันจะทำการพิมพ์เอาต์พุตตลอดเวลาเพื่อบอกคุณว่ากำลังทำอะไรอยู่และที่ใดที่มันทำบนดิสก์ของคุณและบนคอมพิวเตอร์เครื่องใด ก็ปลอดภัยเช่นกันเพราะมันไม่ได้เขียนทับหรือลบสิ่งที่ไม่มีข้อผูกมัด มันสำรองไว้ก่อนแทน! อ่านเพิ่มเติมด้านล่างสำหรับวิธีการทำงาน

นี่คือกระบวนการที่สคริปต์นี้ใช้ (เช่น: สิ่งที่มันทำจริง ๆ )

  1. จาก PC1: ตรวจสอบเพื่อดูว่าการเปลี่ยนแปลงที่ไม่ได้รับการยอมรับนั้นอยู่ใน PC1 หรือไม่ ถ้าเป็นเช่นนั้นจะส่งไปยังการกระทำชั่วคราวในสาขาปัจจุบัน จากนั้นแรงจะผลักดันพวกเขาไปยังสาขา SYNC ระยะไกล จากนั้นก็ไม่ผิดพลาดเป็นการกระทำชั่วคราวที่เพิ่งทำในสาขาท้องถิ่นจากนั้นจะทำให้ repit git ในพื้นที่กลับมาเหมือนเดิมโดยการจัดเตรียมไฟล์ใด ๆ ถัดไปเป็นrsyncสำเนาของสคริปต์ไปยัง PC2 และมีการsshเรียกให้บอก PC2 ให้เรียกใช้สคริปต์ด้วยตัวเลือกพิเศษเพื่อทำสิ่งต่างๆใน PC2
  2. นี่คือสิ่งที่ PC2 ไม่: มันcds เข้าไปใน repo และตรวจสอบเพื่อดูว่าท้องถิ่นเปลี่ยนแปลงปราศจากข้อผูกมัดอยู่ หากเป็นเช่นนั้นจะสร้างสาขาสำรองใหม่แยกออกจากสาขาปัจจุบัน (ชื่อตัวอย่าง: my_branch_SYNC_BAK_20200220-0028hrs-15sec<- สังเกตว่า YYYYMMDD-HHMMhrs - SSsec) และกระทำการเปลี่ยนแปลงใด ๆ ที่ไม่จำเป็นต่อสาขานั้นด้วยข้อความคอมมิทเช่นDO BACKUP OF ALL การเปลี่ยนแปลงที่ไม่ได้รับการยินยอมบน PC2 (เป้าหมาย PC / เครื่องสร้าง). ตอนนี้มันตรวจสอบสาขา SYNC และดึงมันออกมาจากที่เก็บระยะไกลหากยังไม่ได้อยู่บนเครื่องโลคอล จากนั้นจะดึงข้อมูลการเปลี่ยนแปลงล่าสุดของที่เก็บระยะไกลและทำการฮาร์ดรีเซ็ตเพื่อบังคับให้ที่เก็บข้อมูล SYNC ในพื้นที่ให้ตรงกับที่เก็บข้อมูลระยะไกลของ SYNC คุณอาจเรียกสิ่งนี้ว่า "hard pull" อย่างไรก็ตามมันปลอดภัยเนื่องจากเราสำรองข้อมูลการเปลี่ยนแปลงที่ไม่มีข้อผูกมัดที่เรามีในเครื่อง PC2 แล้วดังนั้นจึงไม่มีอะไรหายไป!
  3. แค่นั้นแหละ! ตอนนี้คุณได้สร้างสำเนาที่สมบูรณ์แบบจาก PC1 ไปยัง PC2 โดยไม่ต้องรับรองไดเรกทอรีการทำงานที่สะอาดเนื่องจากสคริปต์จัดการการส่งข้อมูลอัตโนมัติและสิ่งต่าง ๆ ให้คุณ! มันรวดเร็วและทำงานได้ดีมากบนที่เก็บขนาดใหญ่ ตอนนี้คุณมีกลไกง่าย ๆ ในการใช้IDE ใด ๆ ที่คุณเลือกบนเครื่องหนึ่งในขณะที่สร้างหรือทดสอบบนเครื่องอื่นได้อย่างง่ายดายผ่านฮอตสปอตไร้สายจากโทรศัพท์มือถือของคุณหากจำเป็นแม้ว่าพื้นที่เก็บข้อมูลจะมีหลายสิบกิกะไบต์ และทรัพยากร จำกัด

แหล่งข้อมูล:

  1. โครงการทั้งหมด: https://github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles
    1. ดูลิงค์และการอ้างอิงอื่น ๆ อีกมากมายในซอร์สโค้ดเองภายในโครงการนี้
  2. วิธีทำ "hard pull" ตามที่ฉันเรียกว่า: ฉันจะบังคับ "git pull" เพื่อเขียนทับไฟล์โลคัลได้อย่างไร

ที่เกี่ยวข้อง:

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