ฉันต้องการทราบว่ามีวิธีง่ายๆในการพุชที่เก็บ GIT ไปยังการใช้งานจริง (บนเซิร์ฟเวอร์ FTP) หรือไม่? ขอบคุณ
ฉันต้องการทราบว่ามีวิธีง่ายๆในการพุชที่เก็บ GIT ไปยังการใช้งานจริง (บนเซิร์ฟเวอร์ FTP) หรือไม่? ขอบคุณ
คำตอบ:
เครื่องมือบางอย่างที่เพิ่งเพิ่มลงในGit wiki :
git-ftpโดยRené Moser เป็นเชลล์สคริปต์อย่างง่ายสำหรับทำ FTP ด้วยวิธี Git ใช้ git-ftp.sh เพื่ออัปโหลดเฉพาะไฟล์ที่ติดตาม Git ไปยังเซิร์ฟเวอร์ FTP ซึ่งมีการเปลี่ยนแปลงตั้งแต่การอัปโหลดครั้งล่าสุด ช่วยประหยัดเวลาและแบนด์วิดธ์ แม้ว่าคุณจะเล่นกับสาขาที่แตกต่างกัน git-ftp.sh ก็รู้ว่าไฟล์ใดแตกต่างกัน ไม่มีไคลเอนต์ FTP ธรรมดาสามารถทำได้
git-ftpโดย Edward Z. Yang เป็นสคริปต์ง่ายๆที่เขียนด้วย python สำหรับการอัปโหลดไฟล์ในที่เก็บ Git ผ่าน FTP โดยจะถ่ายโอนไฟล์ใหม่และลบไฟล์เก่าเท่านั้น
หากคุณชอบ GUI ให้ใช้ SourceTree คุณสามารถตั้งค่า Custom Action ที่ใช้ git-ftp ดังกล่าวข้างต้นได้อย่างง่ายดาย คำอธิบายสั้น ๆ เกี่ยวกับการตั้งค่า (สำหรับ Mac) ที่Push a Git repository ไปยัง FTP
ฉันพบว่าPHPloyเป็นเครื่องมือที่ยอดเยี่ยมสำหรับการส่ง Git ของคุณไปยังเซิร์ฟเวอร์ระยะไกลผ่าน FTP ทำงานจากบรรทัดคำสั่งและเขียนด้วย PHP (และตรวจพบการเปลี่ยนแปลงในโมดูลย่อย)
https://github.com/banago/PHPloy
git commit ...
phploy -s staging
phploy -s production
ทำ!
(ข้อจำกัดความรับผิดชอบ: หลังจากใช้งานไประยะหนึ่งตอนนี้ฉันได้สนับสนุนการแก้ไขโค้ดและการปรับปรุงบางอย่างทำให้เข้ากันได้กับ Windows)
หากคุณใช้ Mac และมี Transmit ฉันขอแนะนำสคริปต์ git-tranmit ต่อไปนี้ ( https://gist.github.com/379750 ) ใช้ DockSend เพื่อส่งเฉพาะไฟล์ที่อัปเดตล่าสุด หากคุณไม่คุ้นเคยกับ DockSend โปรดดูที่http://www.panic.com/blog/2010/11/15-secrets-of-transmit/ http://www.panic.com/blog/2010/11/15-secrets-of-transmit/
ติดตั้ง:
นั่นไม่ใช่สิ่งที่มีไว้เพื่อพูดอย่างเคร่งครัด แต่ถ้าแหล่งที่มาของคุณเป็นสิ่งที่ไม่จำเป็นต้องรวบรวมหรือการประมวลผลกล่าวว่าเว็บไซต์ประกอบด้วยทั้งหมดของไฟล์ HTML และ JavaScript และชอบที่คุณอาจมีโคลนของ repo บนเว็บเซิร์ฟเวอร์และการใช้งานของคุณgit pull
จากเซิร์ฟเวอร์ที่จะให้มันขึ้น -to-date หมายเหตุฉันจะกำหนดค่าเว็บเซิร์ฟเวอร์ของคุณเพื่อซ่อนไดเรกทอรี git และสิ่งนั้น และนั่นเป็นเพียงจุดเริ่มต้นของปัญหาด้านความปลอดภัย
หากคุณมีการคอมไพล์หรือประมวลผลประเภทใด ๆ คุณควรเริ่มดูAnt , Maven , BuildR , SBTและอื่น ๆ
คุณสามารถใช้Deployhq.comได้สิ่งเดียวที่คุณต้องทำคือตั้งค่าที่เก็บและบัญชี FTP ของคุณ
ขณะนี้ระบบควบคุมเวอร์ชันต่อไปนี้:
Git, Subversion, Mercurial
ด้วยพื้นที่เก็บข้อมูลที่โฮสต์
นี่คือสคริปต์ใน PHP เพื่ออัปโหลด git-diff ไปยังเซิร์ฟเวอร์ FTP โดยอัตโนมัติ:
ฟรีสำหรับโครงการเดียวและได้ผลดีมาก
มีสคริปต์ Ruby อยู่ที่นี่ - Ruby git-deploy ผ่าน FTP หรือ SSHซึ่งอัปโหลดเฉพาะไฟล์ที่เปลี่ยนแปลงใน git repo ผ่าน FTP หรือ SSH
ตามที่กล่าวไว้ในคำตอบอื่นนี่คือสคริปต์ Python git-ftp.pyซึ่งทำสิ่งที่คล้ายกัน
และนี่ก็เป็นรุ่นเชลล์สคริปต์ของGit-FTP
นอกจากนี้ยังมีโปรเจ็กต์ Ruby gem ที่เรียกว่าgit-deployซึ่งให้คุณตั้งค่าการปรับใช้แบบกำหนดเองผ่าน git remote โดยใช้ไฟล์git push
คำสั่งในลักษณะเดียวกับบริการ Heroku และ Azure สำหรับวิธีนี้คุณอาจต้องเขียนวิธีการที่กำหนดเองเพื่อปรับใช้ผ่าน FTP และฉันคิดว่าคุณมีสิทธิ์เข้าถึง SSH ไปยังเซิร์ฟเวอร์การผลิตของคุณ
หากคุณกำลังใส่โค้ดในการใช้งานจริงขอแนะนำให้ใช้ "ตัวติดตั้ง" เช่นแพ็กเกจ RPM เพื่อติดตั้งโค้ดของคุณ ด้วยวิธีนี้จะมีการประทับเวอร์ชันและคุณจะสามารถใช้ประโยชน์จากแพ็คเกจโปรแกรมติดตั้งเพื่อรองรับการอัปเดตรหัสการผลิตได้ Git ไม่ได้ออกแบบมาเพื่อรองรับการติดตั้งการใช้งานจริงมันมีจุดประสงค์เพื่อติดตามการเปลี่ยนแปลงของโค้ดเอง
ไม่ว่าในกรณีใดก็ตามด้วย. RPM (หรือ EXE หรืออะไรก็ได้) ที่สร้างขึ้นคุณสามารถ FTP ไปยังระบบการผลิตและติดตั้งได้เหมือนกับแพ็คเกจอื่น ๆ
เพิ่มเป็นรีโมตจากนั้นคุณสามารถพุชได้ แต่การกดรหัสนั้นไม่เพียงพอจำเป็นต้องรวมเข้ากับโครงสร้างการทำงาน วิธีที่ง่ายที่สุดคือไปอีกทางหนึ่งมีต้นไม้ที่ใช้งานได้บนเซิร์ฟเวอร์แล้วดึงและรวมเข้าด้วยกัน
ฉันดิ้นรนมากเพื่อหาสิ่งนี้ ฉันได้หาวิธีง่ายๆในการทำสิ่งนี้จากแหล่งต่างๆ ( git-ftpINSTALL , git-ftpUPLOAD , git-ftpIssue , git-ftpPUSH ) คุณสามารถอ่านเพื่ออ้างอิงได้ แต่ไม่จำเป็นเพราะฉันได้กล่าวถึงกระบวนการทีละขั้นตอนด้านล่าง
สิ่งแรกแรก: ติดตั้ง git และ curl โดยใช้ brew บน MAC OS
brew install git
brew install curl --with-ssl --with-libssh2
brew install git-ftp
รันคำสั่งต่อไปนี้:
git clone https://github.com/git-ftp/git-ftp.git
cd git-ftp
git tag # see available tags
git checkout <tag> # checkout the latest tag by replacing <tag>
sudo make install
การอัปเดตโดยใช้ git
git pull
git tag # see available tags
git checkout <tag> # checkout the latest tag by replacing <tag>
sudo make install
ติดตั้ง
git config git-ftp.url YourFtpServerName.Net
git config git-ftp.user FtpUserName
git config git-ftp.password YourPassword
อัปโหลดไฟล์ทั้งหมด
git ftp init
หรือถ้าไฟล์นั้นมีอยู่แล้ว
git ftp catchup
ทำงานและปรับใช้
echo "Hello StackOverflow" >> index.txt
git commit application/libraries/index.txt -m "I love StackOverflow"
git ftp push
หากมีข้อผิดพลาด: pathspec 'index.txt' ไม่ตรงกับไฟล์ใด ๆ (s) ที่รู้จักกันในคอมไพล์ หมายความว่าไฟล์ยังไม่ได้รับการจัดเตรียมดังนั้นให้เพิ่มไฟล์แล้วลองคอมมิต
git add application/libraries/index.txt
git commit application/libraries/index.txt -m "I love StackOverflow"
หวังว่านี่จะช่วยได้
คุณสามารถลอง FTPloy ...
"พุชการเปลี่ยนแปลงไปยัง GitHub หรือ Bitbucket"
"ปรับใช้การเปลี่ยนแปลงโดยอัตโนมัติกับเซิร์ฟเวอร์ของคุณ"
คุณมีโครงการฟรี 1 โครงการที่จะทดลองใช้ ตอนนี้ฉันใช้สำหรับเว็บไซต์ php ขนาดเล็กและทำงานได้ดีทีเดียว ข้อบกพร่องบางอย่างในไซต์ แต่เป็นโครงการที่ใช้งานอยู่ดังนั้นอย่างน้อยพวกเขาก็กำลังดำเนินการอยู่
ตรวจสอบhttps://gitftp-deploy.com/หากคุณใช้ MacOS และคุณชอบ GUI
เป็นแอปพลิเคชั่นเล็ก ๆ ที่ดีที่ใช้ Git เพื่อติดตามการเปลี่ยนแปลงและอัปโหลดเฉพาะไฟล์ที่เปลี่ยนแปลงด้วย FTP
มีประโยชน์อย่างยิ่งหากคุณไม่ชอบจ่ายค่าธรรมเนียมรายเดือนสำหรับโครงการขนาดเล็กหลายสิบโครงการกับทีมงานขนาดเล็ก