Google มุ่งมั่นที่จะพัฒนาความเท่าเทียมทางเชื้อชาติสำหรับชุมชนคนผิวดำ มาดูกันว่า
หน้านี้ได้รับการแปลโดย Cloud Translation API
Switch to English

เวิร์กโฟลว์การควบคุมแหล่งที่มา

การทำงานกับรหัส Android ต้องใช้ Git (ระบบควบคุมเวอร์ชันโอเพ่นซอร์ส) และ Repo (เครื่องมือจัดการพื้นที่เก็บข้อมูลที่สร้างโดย Google ที่ทำงานบน Git) ดู เครื่องมือการควบคุมแหล่งที่มา สำหรับคำอธิบายของความสัมพันธ์ระหว่าง Repo และ Git และลิงก์ไปยังเอกสารประกอบการสนับสนุนสำหรับแต่ละเครื่องมือ

ไหล

การพัฒนา Android เกี่ยวข้องกับเวิร์กโฟลว์พื้นฐานดังต่อไปนี้:

  1. เริ่มหัวข้อสาขาใหม่โดยใช้ repo start
  2. แก้ไขไฟล์
  3. ขั้นตอนการเปลี่ยนแปลงโดยใช้ git add
  4. กระทำการเปลี่ยนแปลงโดยใช้ git commit
  5. อัปโหลดการเปลี่ยนแปลงไปยังเซิร์ฟเวอร์บทวิจารณ์โดยใช้การ repo upload ซ้ำ

งาน

การทำงานกับ Git และ Repo ในที่เก็บรหัส Android นั้นเป็นการดำเนินงานทั่วไปดังต่อไปนี้

คำสั่ง ลักษณะ
repo init เริ่มต้นลูกค้าใหม่
repo sync ซิงค์ไคลเอ็นต์กับที่เก็บ
repo start เริ่มสาขาใหม่
repo status แสดงสถานะของสาขาปัจจุบัน
repo upload อัปโหลดการเปลี่ยนแปลงไปยังเซิร์ฟเวอร์บทวิจารณ์
git add สเตจไฟล์
git commit คอมมิตไฟล์ staged
git branch แสดงให้เห็นถึงสาขาปัจจุบัน
git branch [branch] สร้างสาขาหัวข้อใหม่
git checkout [branch] สลับ HEAD ไปยังสาขาที่ระบุ
git merge [branch] ผสาน [branch] เข้ากับสาขาปัจจุบัน
git diff แสดงให้เห็นถึงความแตกต่างของการเปลี่ยนแปลงที่ไม่มีฉาก
git diff --cached แสดงความแตกต่างของการเปลี่ยนแปลงแบบฉาก
git log แสดงประวัติของสาขาปัจจุบัน
git log m/[codeline].. แสดงความมุ่งมั่นที่ไม่ได้ผลัก

สำหรับข้อมูลเกี่ยวกับการใช้ Repo เพื่อดาวน์โหลดซอร์สให้ดูที่การ ดาวน์โหลดซอร์ส และการ อ้างอิงคำสั่ง Repo

การซิงโครไนซ์ไคลเอนต์

ในการซิงโครไนซ์ไฟล์สำหรับโครงการที่มีอยู่ทั้งหมด:

repo sync

ในการซิงโครไนซ์ไฟล์สำหรับโครงการที่เลือก:

repo sync PROJECT0 PROJECT1 ... PROJECTN

กำลังสร้างสาขาหัวข้อ

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

ในการเริ่มหัวข้อสาขาโดยใช้ Repo ให้ไปที่โปรเจ็กต์และรัน:

repo start BRANCH_NAME .

ระยะเวลาต่อท้าย (.) หมายถึงโครงการในไดเรกทอรีการทำงานปัจจุบัน

วิธีตรวจสอบว่าสาขาใหม่ถูกสร้างขึ้น:

repo status .

ใช้หัวข้อสาขา

ในการกำหนดสาขาให้กับโครงการเฉพาะ:

repo start BRANCH_NAME PROJECT_NAME

สำหรับรายการโครงการทั้งหมดอ้างอิง android.googlesource.com หากคุณได้สำรวจไปยังไดเรกทอรีโครงการแล้วให้ใช้เครื่องหมายจุดเพื่อแสดงโครงการปัจจุบัน

วิธีเปลี่ยนเป็นสาขาอื่นในสภาพแวดล้อมการทำงานในพื้นที่ของคุณ

git checkout BRANCH_NAME

วิธีดูรายการสาขาที่มีอยู่:

git branch

หรือ

repo branches

คำสั่งทั้งสองส่งคืนรายการของสาขาที่มีอยู่ด้วยชื่อของสาขาปัจจุบันที่นำหน้าด้วยเครื่องหมายดอกจัน (*)

การจัดเตรียมไฟล์

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

ไปที่ขั้นตอนการเปลี่ยนแปลง:

git add

คำสั่งนี้ยอมรับอาร์กิวเมนต์สำหรับไฟล์หรือไดเรกทอรีภายในไดเรกทอรีโครงการ แม้จะมีชื่อ แต่ git add ไม่เพียง แต่เพิ่มไฟล์ในที่เก็บ Git เท่านั้น นอกจากนี้ยังสามารถใช้เพื่อแก้ไขไฟล์และการลบสเตจได้

การดูสถานะลูกค้า

ในการแสดงรายการสถานะของไฟล์:

repo status

หากต้องการดูการแก้ไขที่ไม่มีข้อผูกมัด (การแก้ไขในระบบที่ ไม่ได้ ทำเครื่องหมายไว้สำหรับการส่ง):

repo diff

หากต้องการดูการแก้ไขที่กระทำ (การแก้ไขที่ อยู่ที่ทำเครื่องหมายไว้ สำหรับการยืนยัน) ตรวจสอบให้แน่ใจว่าคุณอยู่ในไดเรกทอรีโครงการจากนั้นเรียกใช้ git diff กับอาร์กิวเมนต์ที่ cached :

cd ~/WORKING_DIRECTORY/PROJECT
git diff --cached

กระทำการเปลี่ยนแปลง

การ กระทำ เป็นหน่วยพื้นฐานของการควบคุมการแก้ไขใน Git และประกอบด้วยภาพรวมของโครงสร้างไดเรกทอรีและเนื้อหาไฟล์สำหรับโครงการทั้งหมด วิธีสร้างคอมมิทใน Git:

git commit

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

การอัปโหลดการเปลี่ยนแปลงไปยัง Gerrit

อัปเดตเป็นรุ่นล่าสุดจากนั้นอัปโหลดการเปลี่ยนแปลง:

repo sync
repo upload

คำสั่งเหล่านี้ส่งคืนรายการการเปลี่ยนแปลงที่คุณกำหนดและแจ้งให้คุณเลือกสาขาที่จะอัปโหลดไปยังเซิร์ฟเวอร์การตรวจทาน หากมีสาขาเดียวคุณจะเห็นพรอมต์ y/n อย่างง่าย

การแก้ไขข้อขัดแย้งในการซิงค์

หากคำสั่ง repo sync ส่งคืนข้อขัดแย้งของการซิงค์:

  1. ดูไฟล์ที่ถูก unmerged (รหัสสถานะ = U)
  2. แก้ไขขอบเขตความขัดแย้งตามความจำเป็น
  3. เปลี่ยนเป็นไดเรกทอรีโครงการที่เกี่ยวข้อง เพิ่มและส่งไฟล์ที่ได้รับผลกระทบจากนั้นรีบูตการเปลี่ยนแปลง:
    git add .
    git commit
    git rebase --continue
    
  4. หลังจากการรีบูตเสร็จสิ้นให้เริ่มการซิงค์ทั้งหมดอีกครั้ง:
    repo sync PROJECT0 PROJECT1 ... PROJECTN
    

ทำความสะอาดลูกค้า

หลังจากผสานการเปลี่ยนแปลงกับ Gerrit แล้วให้อัปเดตไดเรกทอรีทำงานในพื้นที่ของคุณจากนั้นใช้ repo prune เพื่อลบสาขาหัวข้อเก่า:

repo sync
repo prune

การลบลูกค้า

เนื่องจากข้อมูลสถานะทั้งหมดถูกเก็บไว้ในไคลเอนต์ของคุณคุณจะต้องลบไดเรกทอรีออกจากระบบไฟล์ของคุณ:

rm -rf WORKING_DIRECTORY

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