คำถามติดแท็ก git

ใช้แท็กนี้สำหรับคำถามเกี่ยวกับ Git ซึ่งเป็นระบบควบคุมเวอร์ชันแจกจ่ายแบบโอเพนซอร์สฟรีที่เกี่ยวข้องกับการใช้ Git สำหรับหัวข้อต่างๆเช่นการส่งมอบอย่างต่อเนื่องการตรวจสอบการสร้างโครงสร้างพื้นฐาน SDLC เป็นต้น

4
จะใส่รหัสผ่าน ansible-vault ได้ที่ไหน
เราวางแผนที่จะใช้ตู้เซฟนิรภัยในโครงการของเราเพื่อป้องกันการรั่วไหลของรหัสผ่านหรือกุญแจในคอมไพล์ แนวคิดคือการใส่ข้อมูลที่ละเอียดอ่อนทั้งหมดของเราลงในไฟล์ธรรมดาจากนั้นเข้ารหัสไฟล์นี้ด้วย ansible-vault โดยใช้รหัสผ่านก่อนที่จะพุชเข้าคอมไพล์ ในการถอดรหัสไฟล์เราจะต้องส่งรหัสผ่านห้องนิรภัยไปยัง Ansible ฉันคิดว่ามีความเป็นไปได้ 3 อย่าง: เก็บไว้ในตัวแปรสภาพแวดล้อมของเซิร์ฟเวอร์ ส่งเป็นตัวเลือกไปยังคำสั่ง ansible-playbook เก็บไว้ในไฟล์ที่ไม่ใช่เวอร์ชัน มีตัวเลือกอื่น ๆ หรือไม่ซึ่งเป็นวิธีที่ดีที่สุด (และปลอดภัย) ในการจัดเก็บรหัสผ่าน ansible-vault เอกสารประกอบวิธีปฏิบัติที่ดีที่สุดของ ansible ไม่ได้พูดอะไรเกี่ยวกับเรื่องนี้

4
วิธีกำจัดการพัฒนาสาขาเพื่อให้การไหลของ Git ง่ายขึ้น
ในโครงการพัฒนาอย่างต่อเนื่องเว็บ (ไม่ใช่สินค้า) ขณะนี้เรามียุทธศาสตร์ต่อไปนี้แยกตามประมาณในการไหลเวียนของคอมไพล์ : พัฒนาสาขา: รุ่นที่ใช้งานล่าสุด สาขาหลัก: รุ่นที่จะวางจำหน่าย / รุ่นที่วางจำหน่าย ฟีเจอร์ต่าง ๆ : ฟีเจอร์ในการพัฒนา กิ่งก้านของโปรแกรมแก้ไขด่วน: การแก้ไขข้อบกพร่องเร่งด่วนในรุ่นที่วางจำหน่าย ปริญญาโทจะอ่านเพียงการปรับปรุงผ่านการร้องขอดึงจากการพัฒนาหรือสาขาแก้ไขด่วน การอัปเดตแต่ละครั้งจะส่งผลให้ตัวเลือกการวางจำหน่ายถูกสร้างและปรับใช้กับระบบการจัดเตรียม ผู้สมัครที่วางจำหน่ายจะถูกนำไปใช้กับการผลิตหลังจากการอนุมัติด้วยตนเอง สาขาคุณลักษณะถูกสร้างขึ้นตามการพัฒนาหรือจากการคอมมิทล่าสุดที่รวมเข้ากับมาสเตอร์ คำขอดึงจากสาขาคุณลักษณะเพื่อการพัฒนาถูกสร้างขึ้นปรับใช้กับระบบทดสอบฟรีที่ดำเนินการทดสอบการรวมและการทดสอบการยอมรับ (อัตโนมัติ & คู่มือ) เมื่อทดสอบและตรวจสอบเรียบร้อยแล้ว PR จะถูกรวมเข้าด้วยกันเพื่อที่จะกลายเป็นส่วนหนึ่งของการเปิดตัวครั้งต่อไป (เช่นผสานจากการพัฒนาไปสู่การควบคุมหลัก) เป้าหมายของฉัน ฉันต้องการทำให้สิ่งนี้ง่ายขึ้นและกำจัดสาขาที่กำลังพัฒนา สาขาที่พัฒนาแล้วส่วนใหญ่มีเหตุผลทางประวัติศาสตร์และเนื่องจากมันเป็นรุ่นที่ผ่านการทดสอบมาอย่างยาวนานฉันคิดว่ามันไม่จำเป็นที่จะต้องแยกมันออกจากมาสเตอร์ การนำออกจะทำให้ขั้นตอนการวางจำหน่ายง่ายขึ้นเพราะจะไม่มีการผสานเพิ่มเติมอีกต่อไป ฉันมีข้อ จำกัด ดังต่อไปนี้: กำหนดวางจำหน่ายและไม่ควรทำแบบอัตโนมัติทั้งหมด ในขณะที่สาขาฟีเจอร์มักมีอายุสั้น แต่บางช่วงก็ยังคงไม่ได้รับการบำรุงเป็นเวลาหลายสัปดาห์ (เช่นการออกแบบใหม่) แต่ต้องมีการทดสอบเช่นกัน บางครั้งควรปล่อยคุณลักษณะเดียวนอกรุ่นปกติอย่างมีประสิทธิภาพเปลี่ยนเป็นโปรแกรมแก้ไขด่วน ด้วยกลยุทธ์ปัจจุบันฉันสามารถรีบูทฟีเจอร์และรวมเข้ากับมาสเตอร์โดยตรง มันก็เกิดขึ้นที่เราจำเป็นต้องระงับคุณสมบัติหลังจากการทดสอบการยอมรับกับระบบภายนอกเกี่ยวกับการแสดงละครล้มเหลว ที่ฉันไม่แน่ใจเกี่ยวกับการเปลี่ยนแปลง: ขณะนี้ฉันกำลังสร้างคำขอดึงสำหรับการทดสอบและผสานความมุ่งมั่นสำหรับการเปิดตัว ฉันสามารถรวมสิ่งนี้ได้ไหม วิธีจัดการกับโปรแกรมแก้ไขด่วนเมื่อต้นแบบอยู่ข้างหน้าของรุ่นล่าสุด ฉันควรสร้างและปรับใช้การวางจำหน่ายโดยตรงจากสาขาโปรแกรมแก้ไขด่วนหรือไม่ มีวิธีที่เหมาะสมในการจัดการกับคุณสมบัติที่ควรแยกออกจากการวางจำหน่ายหลังจากที่รวมกันแล้วหรือไม่ สาขาที่พัฒนาแยกต่างหากเป็นข้อได้เปรียบสำหรับกรณีเหล่านี้หรือไม่? …

1
Git clean / smudge filter สำหรับความลับของห้องนิรภัย
ฉันกำลังพยายามตั้งค่าตัวกรอง clean / smudgeใน git ให้มีการเข้ารหัสและถอดรหัสไฟล์ที่มีความลับโดยอัตโนมัติผ่านคำสั่งansible-vault ความผิดปกติของคำสั่ง ansible-vault คือมันไม่ใช่ idempotent (มันสร้างไบนารีที่แตกต่างกันในแต่ละครั้งที่เรียกใช้กับข้อมูลเดียวกัน) ฉันเริ่มต้นด้วยการดำเนินงานข้อเสนอแนะในหน้าบล็อกนี้ น่าเสียดายที่มันไม่ทำงานอย่างถูกต้องเนื่องจากเมื่อใดก็ตามที่มีการเรียกรอยเปื้อน (ไม่ว่าจะเป็นเช็คเอาต์ git หรือเพียงแค่สถานะ git) ไฟล์ลับดูเหมือนว่าแก้ไขสำหรับ git แม้ว่ามันจะไม่ ดังนั้นฉันสงสัยว่า git จะเปรียบเทียบไบนารี่ที่เขามีในดัชนีกับไฟล์ปัจจุบันที่กรองแล้วหรือไม่และฉันพยายามสร้างสคริปต์เหล่านั้นดังนี้: #!/bin/sh -x # clean filter, it is invoked with %f if [ ! -r "$HOME/.vault_password" ]; then exit 1 fi tmp=`mktemp` cat > $tmp # get the …


3
รับการแก้ไขเพียงครั้งเดียวจาก Git
การมีประวัติการแก้ไขแบบ Git อย่างเต็มรูปแบบมีประโยชน์มากมายซึ่งเป็นส่วนหนึ่งของกระบวนการพัฒนา แต่ผลิตภัณฑ์ของเราคือซอร์สโค้ดเราใช้ภาษาสคริปต์ที่ไม่จำเป็นต้องรวบรวมหรือประมวลผลจากนั้นประวัติ Git จะกลายเป็นภาระในการปรับใช้ - ในตัวอย่างของเราเราปรับใช้สภาพแวดล้อมเสมือนที่สะอาดหลังจากการเปลี่ยนแปลงทุกครั้ง เครื่องเดียว มีบางวิธีในการลดปริมาณของประวัติเช่นโคลนตื้น ๆ ที่มีประสิทธิภาพขึ้นอยู่กับความลึกของการแก้ไขในสาขาทำการดึงข้อมูลแทนการโคลนนิ่ง แต่จากนั้นคุณยังได้รับประวัติจากการแก้ไขและกลับ repo หนึ่งครั้งจากนั้นดึงเมื่อจำเป็น แต่สิ่งนี้สิ้นเปลืองในแง่ของพื้นที่ดิสก์และมีแนวโน้มที่จะเชื่อถือได้น้อยลง มีวิธีรับการแก้ไขเดียวจาก Git โดยที่ไม่มีประวัติหรือไม่?
14 git 

3
คุณบังคับใช้พฤติกรรมคอมไพล์รวมถึงภายใน (โดยเฉพาะบน Windows) ได้อย่างไร
ฉันกำลังชี้ไปที่การย้ายร้านค้า NET นี้จาก svn ไป git และได้ระบุปัญหาเสริมบางอย่างที่ฉันต้องการมีวิธีแก้ไขก่อนที่เราจะสลับสวิตช์ สิ่งที่ฉันถามโดยเฉพาะในคำถามนี้คือการบังคับใช้การสิ้นสุดบรรทัด โดยค่าเริ่มต้น git สำหรับ Windows จะติดตั้งด้วย 'checkout crlf, commit lf' ซึ่งจะไม่ทำงานกับแหล่งที่มาซึ่งเป็นจำนวนมาก (เท่าที่ฉันทราบ) โดยเฉพาะประกอบด้วยจุดสิ้นสุด crlf ฉันไม่รู้ว่าฉันเชื่อถือคนตาบอดที่ได้รับ dev ใด ๆ เพื่อกำหนดค่านี้อย่างถูกต้องแม้จะได้รับคำแนะนำดังนั้นฉันจึงพิจารณาหนึ่ง (หรือทั้งสองอย่าง) ต่อไปนี้ แต่ก็อยากรู้อยากเห็นถ้าใครที่นี่ไปเส้นทางอื่น เบ็ดกระทำก่อนหน้าที่ตรวจสอบการสิ้นสุดบรรทัด lf ใด ๆ (หรืออาจสิ้นสุดการสิ้นสุดบรรทัด lf ทั้งหมด) และปฏิเสธในเหตุการณ์นั้น สคริปต์การติดตั้งถูกแจกจ่ายไปยัง devs ที่เติมการตั้งค่าส่วนกลางด้วย 'ตามที่เป็นอยู่ตามที่เป็น' ป.ล. ขณะที่เขียนสิ่งนี้เกิดขึ้นกับฉันว่าการแปลงเริ่มต้นจาก svn เป็น git สามารถกระทำวิธีการเริ่มต้นและตราบใดที่ผู้คนติดอยู่กับค่าเริ่มต้นที่จะราบรื่นเช่นกัน เคยเป็น dev ใช้ …
13 git  scm  windows 

2
เป็นไปได้หรือไม่ที่จะปรับใช้อัตโนมัติกับทุกการกระทำในสาขาเฉพาะโดยใช้ Travis CI และ GitHub
ฉันต้องการปรับใช้ไฟล์โดยใช้ Travis CI และใช้งานได้กับการติดแท็ก เมื่อส่งข้อมูลไปที่สาขาจะมีคำเตือน: การข้ามการปรับใช้กับผู้ให้บริการการเผยแพร่เนื่องจากไม่ใช่การติดแท็ก มีวิธีใดบ้างที่จะนำไปใช้กับการส่งข้อมูลแบบแยกย่อยโดยใช้ Travis CI? เพื่อชี้แจงมันจะทำงานเมื่อฉันแท็กการกระทำ แต่ฉันต้องการที่จะปรับใช้ไฟล์ในแต่ละการกระทำสำหรับสาขาที่กำหนด

4
วิธีการโครงสร้าง DevOps รหัสที่เกี่ยวข้องและกำหนดค่าในที่เก็บรหัส?
เรากำลังเติบโตในฐานะ บริษัท ผลิตภัณฑ์ของเรากำลังขยายตัวและกิจกรรมที่เกี่ยวข้องกับ DevOps และความพยายามของเราก็เพิ่มขึ้นเช่นกัน - เราได้เปลี่ยนจาก Bamboo เป็นเจนกินส์ที่ยืดหยุ่นและสามารถกำหนดค่าได้มากขึ้นโดยใช้ท่อส่งและปลั๊กอินอื่น ๆ เปลี่ยนเป็น Ansible และเริ่มใช้ Docker ที่นี่และที่นั่นภายใน ทุกสิ่งเหล่านี้ต้องการการเขียนโค้ดหรือการกำหนดค่าในระดับหนึ่ง - สคริปต์และการกำหนดค่า Ansible, สคริปต์ Groovy Jenkins, Dockerfiles และ YAML configs สำหรับตอนนี้เราได้สร้างแยกต่างหาก "ปฏิบัติการ" พื้นที่เก็บข้อมูลกับไดเรกทอรีระดับสูงสำหรับjenkins, ansible, dockerและother(ซึ่งเป็นชื่อที่น่ากลัว แต่สำหรับตอนนี้ทุกสิ่ง "อื่น ๆ" DevOps อัตโนมัติจะมี) วิธีการของเราไม่ถูกต้องและอาจไม่ขยายตัว แต่แนวทางปฏิบัติที่ดีที่สุดและคำแนะนำในการเก็บรหัสที่เกี่ยวข้องกับ DevOps ในที่เก็บรหัสหรือที่เก็บคืออะไร

2
ดูเหมือนว่า Git จะรู้จักคุณสมบัติ http.sslcainfo จาก. gitconfig แต่ไม่สนใจในการประมวลผลหรือไม่ SEC_E_UNTRUSTED_ROOT
ทั้งหมดฉันมีห่วงโซ่ใบรับรองที่ใช้งานได้ (ทดสอบได้กับ OpenSSL) แต่อย่างใดฉันไม่สามารถจัดการเพื่อบอก Git ให้โหลดใบรับรองเหล่านี้ได้ ฉันจะได้รับเหมือนกัน "ผู้มีอำนาจรากที่ไม่น่าเชื่อถือ" ข้อผิดพลาด (SEC_E_UNTRUSTED_ROOT) อิสระว่าจุดที่กำหนดค่าคอมไพล์ของฉันไปยังไฟล์หรือห่วงโซ่ใบรับรองปลอมที่มีอยู่ สำหรับรายละเอียดโปรดตรวจสอบภาพหน้าจอที่แนบมา การตั้งค่าที่ฉันใช้.gitconfigเป็นไฟล์ปลอม: sslCAInfo = C:/tmp/foobar.crt หรือสำหรับไฟล์จริงที่ทำงานกับ OpenSSL: sslCAInfo = C:/tmp/ca-bundle.crt ทรานสคริปต์คอนโซล: C:\tmp>openssl version OpenSSL 0.9.8h 28 May 2008 C:\tmp>git --version git version 2.12.2.windows.2 C:\tmp>git config --list http.sslverify=true http.sslcainfo=C:/tmp/ca-bundle.crt C:\tmp>dir 24.04.2017 13:45 10.875 ca-bundle.crt c:\tmp>openssl s_client -state -connect https://mygithost:443 -CAfile …
10 git  windows  ssl 

2
Git & Jenkins: รับสีเขียวล่าสุดในสาขา
เราเพิ่งเริ่มที่จะผลักดันให้ CI-CD และเป็นขั้นตอนทารกเราจะลองอัปเดตสแต็คที่มีการพัฒนาสีเขียวล่าสุดทุกๆสองชั่วโมง ฉันค่อนข้างใหม่สำหรับ Git / Bitbucket และไม่สามารถหาวิธีการตรวจสอบให้แน่ใจว่าการชำระเงินที่ Jenkins ทำให้ได้รับการยืนยันครั้งล่าสุดจะถูกทำเครื่องหมายสีเขียวโดย Jenkins มากกว่าเพียงแค่ "การกระทำครั้งสุดท้าย" เป็นคำสั่งแบบครอบคลุม เราได้ติดตั้งปลั๊กอินตัวแจ้งสถานะการสร้างสถานะของ Bitbucket ดังนั้น Bitbucket จะติดตามว่าการกระทำใดเป็นสีเขียวหลังจากที่หน่วยทดสอบของเราทำงาน มีวิธีที่จะใช้ประโยชน์จากข้อมูลนี้เพื่อให้แน่ใจว่าได้เลือกการกระทำที่ถูกต้องหรือไม่?
10 jenkins  git  bitbucket  bcbsn 

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