วิธีโคลนที่เก็บ git ด้วยการแก้ไข / เซ็ตการแก้ไขเฉพาะ


393

ฉันจะโคลนพื้นที่เก็บข้อมูลคอมไพล์ด้วยการแก้ไขเฉพาะบางอย่างที่ฉันมักทำใน Mercurial ได้อย่างไร:

hg clone -r 3 /path/to/repository

3
ไม่เฉพาะเจาะจงกับชุดการเปลี่ยนแปลงหรือการแก้ไข แต่การโคลนล่าสุดในสาขาที่เฉพาะเจาะจงอาจมีประสิทธิภาพเช่น git clone -b 10.1 https://github.com/MariaDB/server.git --depth=1 mariadb-server-src
MrMesees

สำเนาซ้ำที่เป็นไปได้ของการดาวน์โหลดแท็กเฉพาะด้วย Git
SlightlyCuban

คุณต้องการให้ประวัติเป็นแบบตื้นหรือเช่นมีเพียงการแก้ไข 3 ในตัวอย่างของคุณหรือเป็นของผู้ปกครองด้วยหรือไม่
sschuberth

หากพื้นที่เก็บข้อมูลที่มีปัญหาจะถูกโคลนจากภายในพื้นที่เก็บข้อมูลอื่นและคุณต้องการโคลน repo ภายในที่ sha ที่เฉพาะเจาะจงแล้ว submodules git ทำอย่างนั้นในทางอัตโนมัติ
J0hnG4lt

คำตอบ:


202

อัปเดต 2เนื่องจากGit 2.5.0คุณลักษณะที่อธิบายด้านล่างสามารถเปิดใช้งานในฝั่งเซิร์ฟเวอร์พร้อมตัวแปรการกำหนดค่าได้uploadpack.allowReachableSHA1InWantที่นี่คำขอคุณลักษณะ GitHubและGitHub ยอมรับการเปิดใช้งานคุณลักษณะนี้ ทราบว่าบางเซิร์ฟเวอร์ Git เปิดใช้งานตัวเลือกนี้โดยค่าเริ่มต้นเช่น Bitbucket เซิร์ฟเวอร์ที่เปิดใช้งานมันตั้งแต่รุ่น 5.5 ขึ้นไป ดูคำตอบนี้ใน Stackexchangeสำหรับตัวอย่างวิธีการเปิดใช้งานตัวเลือกการกำหนดค่า

อัปเดต 1สำหรับเวอร์ชัน Git 1.7 < v < 2.5ใช้ git clone และ git reset ดังอธิบายในคำตอบของ Vaibhav Bajpai

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

# make a new blank repository in the current directory
git init

# add a remote
git remote add origin url://to/source/repository

# fetch a commit (or branch or tag) of interest
# Note: the full history up to this commit will be retrieved unless 
#       you limit it with '--depth=...' or '--shallow-since=...'
git fetch origin <sha1-of-commit-of-interest>

# reset this repository's master branch to the commit of interest
git reset --hard FETCH_HEAD

32
ฉันไม่คิดว่าจะใช้git fetch origin <sha1>งานได้ ดูเหมือนว่าคุณจะต้องผ่านการอ้างอิงที่มีชื่อเช่นแท็กหรือชื่อสาขา ดูkerneltrap.org/mailarchive/git/2009/1/13/4707444
artur

48
@artur: คุณไม่คิดว่ามันใช้งานได้หรือคุณลองแล้วมันใช้งานไม่ได้?
CB Bailey

37
ด้วย git 1.4 ฉันพบว่าฉันสามารถใช้git fetch origin <SHA1>เพื่อสลับไปยังการแก้ไขใด ๆ ที่ฉันต้องการหลังจากดึงต้นแบบจากระยะไกลและดำเนินการreset --hardเพื่อยกตัวอย่างสาขาในท้องถิ่น ฉันไม่สามารถเรียกการแก้ไขแต่ละรายการได้โดยตรง ด้วย git 1.7 git fetch origin <SHA1>ไม่ทำงานตามที่รายงานโดย @artur คุณจำเป็นต้องใช้ตามด้วยgit checkout <SHA1> reset --hard
โจแมคมาฮอน

6
การดึงโดย SHA-1 จะทำงานกับโปรโตคอล http และ rsync เท่านั้น ดูkerneltrap.org/mailarchive/git/2009/1/14/4716044/...
CharlesB

23
คำตอบนี้ล้าสมัยแล้ว สิ่งนี้ไม่สามารถใช้ได้กับ git 1.7 หรือ git 1.8 ไม่ได้กับ https: // หรือโปรโตคอล ssh ("ไม่สามารถหาการอ้างอิงระยะไกลได้ df44398762393c67af487edeb0831ad9579df4aa" - มันไม่ใช่การอ้างอิง, มันเป็นการกระทำ)
Paŭlo Ebermann

839
$ git clone $URL
$ cd $PROJECT_NAME
$ git reset --hard $SHA1

หากต้องการกลับไปที่การกระทำล่าสุด

$ git pull

13
มันจะทำงานได้ก็ต่อเมื่อคอมมิชชันนั้นอยู่ในสาขาหลัก แต่ถ้าไม่ใช่มันจะทำให้การอ้างอิงในท้องถิ่นสับสน ทำไม git ทำการรีเซ็ทและไม่ใช่ git checkout ในตอนแรก?
Joky

72
นี่ไม่ใช่ตัวเลือกที่ดีสำหรับ repos ขนาดใหญ่เนื่องจากดึงทุกอย่าง
ไม่ระบุตัวตน

1
โซลูชันนี้ควรอยู่ด้านบน ไม่มีใครสนใจว่ามัน "ไม่เหมาะสม" มันเป็นสิ่งที่ OP ร้องขอ โดยเฉพาะ: "ฉันจะโคลนที่เก็บ git ด้วยการแก้ไขที่เฉพาะเจาะจง" ได้อย่างไร?
Florian Segginger

20
@ FlorianSegginger หากฉันต้องการโคลนการแก้ไขเฉพาะอาจเป็นไปได้ว่าฉันไม่ต้องการที่จะโคลนทุกอย่าง แต่เพียงแค่การแก้ไขนั้น สำหรับฉันนั่นเป็นคำถามที่ถาม โซลูชันนี้ตอบคำถามที่แตกต่าง: "ฉันจะดูการแก้ไขที่เฉพาะเจาะจงใน repo ของฉันได้อย่างไร" การดึงข้อมูลซื้อคืนทั้งหมดนั้นเป็นสิ่งที่ผู้คนมากมายที่นี่ต้องการหลีกเลี่ยง
Renato

1
ไม่ได้ตอบคำถามจริง IMHO เนื่องจากความสามารถในการระบุการแก้ไขในระหว่างการโคลนยังทำให้ฉันสามารถใช้--depthซึ่งเป็นสิ่งสำคัญมากสำหรับ repos ขนาดใหญ่ วิธีนี้ต้องใช้การดึงวัตถุทั้งหมดแล้วรีเซ็ตเป็นรุ่นก่อนหน้า ใช้เวลามากและสิ้นเปลืองแบนด์วิดท์เครือข่าย
void.pointer

54

การโคลนที่เก็บ git นั้นจะเป็นการโคลนพื้นที่เก็บข้อมูลทั้งหมด: ไม่มีวิธีที่จะเลือกการแก้ไขเพียงครั้งเดียวในการโคลน แต่เมื่อคุณทำคุณสามารถชำระเงินเฉพาะการแก้ไขโดยการทำgit clonecheckout <rev>


4
ฉันไม่ต้องการโคลนการแก้ไขเพียงครั้งเดียว ฉันแค่ต้องการระบุขีด จำกัด ของการโคลนนิ่ง คำอื่น ๆ ฉันต้องการโคลนทุกอย่างตามที่ระบุ
จอห์น

6
คุณทำอย่างนั้นไม่ได้ git cloneคว้าพื้นที่เก็บข้อมูลทั้งหมด เมื่อคุณมีแล้วคุณสามารถเช็คเอาต์การแก้ไขที่เฉพาะเจาะจง

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

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

1
"ไม่มีทางเลือกการแก้ไขเพียงครั้งเดียวในการโคลน" - ใช่มี:git clone --single-branch ...
morxa

33

หากต้องการโคลนการคอมมิทเฉพาะเจาะจงเพียงอันเดียวในการใช้แท็กสาขาหรือแท็กเฉพาะ:

git clone --depth=1 --branch NAME https://github.com/your/repo.git

น่าเสียดายที่NAMEสามารถเป็นชื่อสาขาหรือชื่อแท็กได้ (ไม่ใช่การมอบหมาย SHA)

งดการ--depthตั้งค่าสถานะเพื่อดาวน์โหลดประวัติทั้งหมดจากนั้นชำระเงินที่สาขาหรือแท็ก:

git clone --branch NAME https://github.com/your/repo.git

สิ่งนี้ใช้ได้กับ git รุ่นล่าสุด (ฉันใช้กับเวอร์ชัน2.18.0)


แต่ไม่ได้อยู่ในเวอร์ชันที่เก่ากว่า 2.17.1
RzR

4
สิ่งนี้ต้องการ upvotes มากขึ้น นี่ดีกว่าคำตอบที่ล้าสมัยอื่น ๆ
Étienne

32

หากคุณหมายถึงคุณต้องการดึงข้อมูลทุกอย่างตั้งแต่ต้นจนถึงจุดเฉพาะคำตอบของ Charles Bailey นั้นสมบูรณ์แบบ หากคุณต้องการย้อนกลับและดึงส่วนย่อยของประวัติย้อนกลับไปจากวันที่ปัจจุบันคุณสามารถใช้โดยgit clone --depth [N] ที่ N คือจำนวนของ revs ของประวัติที่คุณต้องการ อย่างไรก็ตาม:

--ความลึก

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


4
Git เวอร์ชั่นใหม่มีการปรับปรุงโคลนนิ่งตื้นขึ้นและคุณสามารถดึงและดันจากมันได้
orion78fr

26

เพื่อสรุปสิ่งต่าง ๆ (git v. 1.7.2.1):

  1. ทำสิ่งgit cloneที่คุณต้องการให้ repo เป็นประจำ(ทำให้ทุกอย่างทันสมัย ​​- ฉันรู้ไม่ใช่สิ่งที่ต้องการเราไปถึงที่นั่น)
  2. git checkout <sha1 rev> ของการหมุนรอบที่คุณต้องการ
  3. git reset --hard
  4. git checkout -b master

6
ขั้นตอนที่ 3 และ 4 ทำอะไร
BrainSlugs83

ขั้นตอนที่ 4 ไม่ได้ผลสำหรับฉัน แต่ถึงขั้นตอนที่ 3 ทำการหลอกลวง - ขอบคุณ
Gene Bo

@ BrainSlugs83: ขั้นตอนที่ 4 สร้างสาขาท้องถิ่นเรียกmasterและสลับไปที่สาขานั้น
LarsH

3
@ ฟิล: ทำไมgit reset --hard? เอกสารสำหรับการพูดว่า "รีเซ็ตดัชนีและแผนผังการทำงานการเปลี่ยนแปลงใด ๆ กับไฟล์ที่ถูกติดตามในแผนผังการทำงานตั้งแต่ <commit> [ซึ่งเป็นค่าเริ่มต้นไปที่ HEAD ซึ่งขณะนี้<sha1 rev>] ถูกทิ้ง" แต่ ณ จุดนี้เราไม่ได้ทำการเปลี่ยนแปลงใด ๆ ตั้งแต่การโคลนดังนั้นวัตถุประสงค์คืออะไร มันตัดทอนสาขาปัจจุบันที่<sha1 rev>หรือไม่
LarsH

19

TL; DR - เพียงแค่สร้างแท็กในแหล่งเก็บข้อมูลต่อต้านการคอมมิทที่คุณต้องการโคลนและใช้แท็กในคำสั่งดึงข้อมูล คุณสามารถลบแท็กจาก repo ดั้งเดิมในภายหลังเพื่อล้าง

ในปี 2014 และดูเหมือนว่าคำตอบที่ได้รับการยอมรับของ Charles Baile จากปี 2010 นั้นล้าสมัยไปแล้วในตอนนี้และคำตอบอื่น ๆ ส่วนใหญ่ (ทั้งหมด?) เกี่ยวข้องกับการโคลนนิ่งซึ่งหลายคนหวังว่าจะหลีกเลี่ยง

โซลูชันต่อไปนี้บรรลุสิ่งที่ OP และคนอื่น ๆ กำลังมองหาซึ่งเป็นวิธีการสร้างสำเนาของที่เก็บรวมถึงประวัติ แต่ขึ้นอยู่กับการกระทำที่แน่นอน

นี่คือคำสั่งที่ฉันใช้กับ git เวอร์ชัน 2.1.2 เพื่อโคลน repo ในพื้นที่ (เช่นที่เก็บในไดเรกทอรีอื่น) จนถึงจุดหนึ่ง:

# in the source repository, create a tag against the commit you want to check out
git tag -m "Temporary tag" tmptag <sha1>

# create a new directory and change into that directory
cd somewhere_else;mkdir newdir;cd newdir

# ...and create a new repository
git init

# add the source repository as a remote (this can be a URL or a directory)
git remote add origin /path/to/original/repo

# fetch the tag, which will include the entire repo and history up to that point
git fetch origin refs/tags/tmptag

# reset the head of the repository
git reset --hard FETCH_HEAD

# you can now change back to the original repository and remove the temporary tag
cd original_repo
git tag -d tmptag

หวังว่าโซลูชันนี้จะทำงานต่อไปอีกไม่กี่ปี! :-)


2
นี่เป็นความคิดที่ดีที่คุณเป็นเจ้าของ repo ไม่แน่ใจว่ามันทำงานร่วมกับ repos สาธารณะที่คุณไม่ได้ดูแลหรือไม่
34419

18

คุณสามารถใช้งานได้ง่าย git checkout <commit hash>

ในลำดับนี้

bash git clone [URLTORepository] git checkout [commithash]

กระทำแฮดูเหมือนว่า "45ef55ac20ce2389c9180658fdba35f4a663d204"


เหมือนก่อนหน้านี้ - ทำไมเช็คเอาต์หลังจากคุณโคลน เมื่อคุณโคลนคุณมีประวัติทั้งหมดใน repo ท้องถิ่น ทำไมคำตอบนี้มี upvotes มากเกินไป
Dmitry Perfilyev

2

ใช้ 2 จากคำตอบข้างต้น ( วิธีโคลนที่เก็บ git ด้วยการแก้ไข / เซ็ตการแก้ไขที่เฉพาะเจาะจงและวิธีการโคลนที่เก็บ git ด้วยการแก้ไข / เซ็ตการแก้ไขที่เฉพาะเจาะจง? ) ช่วยให้ฉันได้ข้อสรุป หากคุณต้องการโคลนนิ่งจนถึงจุดแล้วจุดนั้นต้องเป็นแท็ก / สาขาไม่ใช่แค่ SHA หรือ FETCH_HEAD สับสน หลังจากตั้งค่าการดึงข้อมูล Git หากคุณใช้สาขาหรือชื่อแท็กคุณจะได้รับการตอบกลับหากคุณใช้ SHA-1 เพียงอย่างเดียวคุณจะไม่ได้รับการตอบกลับ
นี่คือสิ่งที่ฉันทำ: - สร้างโคลนการทำงานเต็มรูปแบบของ repo เต็มจากแหล่งกำเนิดที่แท้จริง

cd <path to create repo>
git clone git@<our gitlab server>:ui-developers/ui.git 

จากนั้นสร้างสาขาท้องถิ่น ณ จุดที่น่าสนใจ

git checkout 2050c8829c67f04b0db81e6247bb589c950afb14
git checkout -b origin_point

จากนั้นสร้าง repo เปล่าใหม่ของฉันพร้อมกับสำเนาโลคัลเป็นจุดเริ่มต้น

cd <path to create repo>
mkdir reduced-repo
cd reduced-repo
git init
git remote add local_copy <path to create repo>/ui
git fetch local_copy origin_point

ณ จุดนี้ฉันได้รับคำตอบนี้ ฉันสังเกตว่าเพราะถ้าคุณใช้ SHA-1 แทนสาขาด้านบนไม่มีอะไรเกิดขึ้นดังนั้นการตอบสนองหมายความว่ามันใช้งานได้

/ var / www / html / ui-hacking $ git เรียกข้อมูล local_copy origin_point
รีโมต: การนับวัตถุ: 45493 เสร็จแล้ว
รีโมต: บีบอัดวัตถุ: 100% (15928/15928) เสร็จแล้ว
ระยะไกล: ทั้งหมด 45493 (เดลต้า 27508) นำกลับมาใช้ใหม่ 45387 (เดลต้า 27463)
รับวัตถุ: 100% (45493/45493), 53.64 MiB | เสร็จแล้ว 50.59 MiB / s
แก้ไขเดลตา: 100% (27508/27508) เสร็จแล้ว
จาก / var / www / html / ui
 * branch origin_point -> FETCH_HEAD
 * [สาขาใหม่] origin_point -> origin / origin_point

ตอนนี้ในกรณีของฉันฉันต้องนำมันกลับไปใช้กับ gitlab เพื่อเป็น repo ใหม่ฉันก็เลยทำ

git remote add origin git@<our gitlab server>:ui-developers/new-ui.git

ซึ่งหมายความว่าฉันสามารถสร้าง repo ของฉันได้จาก origin_point โดยใช้git --git-dir=../ui/.git format-patch -k -1 --stdout <sha1> | git am -3 -kเชอร์รี่เลือกจากระยะไกลจากนั้นใช้git push originเพื่ออัปโหลดล็อตทั้งหมดกลับไปที่บ้านใหม่

หวังว่าจะช่วยใครซักคน


คุณช่วยอธิบายความหมายของคำว่า "FETCH_HEAD ทำให้สับสน" ได้ไหม? และคุณgit fetch local_copy origin_pointแตกต่างจาก JamesG git fetch origin refs/tags/tmptagอย่างไร?
not2qubit

git fetch local_copy origin_pointปล่อยให้คุณอยู่ในสถานะที่มีที่ว่างเปล่าไดเรกทอรีเท่านั้นที่มีreduced-repo .gitมีบางอย่างที่ขาดหายไปจากคำแนะนำเหล่านี้คือ ...
ตุลาคม 24

2

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

$ git init
$ git remote add <remote_url>
$ git fetch --all

ตอนนี้คุณสามารถดูได้ทั้งหมด & คอมมิชชัน

$ git branch -a
$ git log remotes/origin/master <-- or any other branch

ในที่สุดคุณก็รู้ว่า SHA1 ของความมุ่งมั่นที่ต้องการ

git reset --hard <sha1>

1

ฉันใช้ตัวอย่างนี้กับ GNU ทำเพื่อปิดแท็กการแก้ไขสาขาหรือแฮช

มันถูกทดสอบใน git เวอร์ชั่น 2.17.1

${dir}:
    mkdir -p ${@D}
    git clone --recursive --depth 1 --branch ${revison} ${url} ${@} \
 || git clone --recursive --branch ${revison} ${url} ${@} \
 || git clone ${url} ${@}
    cd ${@} && git reset --hard ${revison}
    ls $@





0

git clone https://github.com/ORGANIZATION/repository.git (โคลนที่เก็บ)

cd repository (navigate to the repository)

git fetch origin 2600f4f928773d79164964137d514b85400b09b2

git checkout FETCH_HEAD


2
ดึงข้อมูลหลังจากที่คุณโคลน เมื่อคุณโคลนคุณมีประวัติทั้งหมดใน repo ท้องถิ่น ทำไมคำตอบนี้มี upvotes สองตัว
madhairsilence

0
# clone special tag/branch without history
git clone  --branch=<tag/branch> --depth=1 <repository>


# clone special revision with minimal histories
git clone --branch <branch> <repository> --shallow-since=yyyy-MM-ddTHH:mm:ss  # get the commit time
cd <dir>
git reset --hard <revision> 

คุณไม่สามารถแก้ไขได้หากไม่มีประวัติหากไม่ได้ตั้งค่าไว้uploadpack.allowReachableSHA1InWant=trueที่ฝั่งเซิร์ฟเวอร์ในขณะที่คุณสามารถสร้างแท็กสำหรับมันและโคลนแท็กพิเศษแทน


-3

มันง่ายมาก คุณเพียงแค่ต้องตั้งค่าอัปสตรีมสำหรับสาขาปัจจุบัน

$ git clone repo
$ git checkout -b newbranch
$ git branch --set-upstream-to=origin/branch newbranch
$ git pull

นั่นคือทั้งหมดที่


-4
git clone -o <sha1-of-the-commit> <repository-url> <local-dir-name>

gitใช้คำoriginแทนรู้จักกันแพร่หลายrevision

ต่อไปนี้เป็นตัวอย่างจากคู่มือ $ git help clone

--origin <name>, -o <name>
    Instead of using the remote name origin to keep track of the upstream repository, use <name>.

4
ไม่รู้เลยว่าทำไมคุณถึงถูกลดระดับลงที่นี่ นี่เป็นสิ่งที่ฉันหวังว่าจะเห็นสำหรับกรณีการใช้งานของฉัน: การรับเคอร์เนลรุ่นใดรุ่นหนึ่งจากรุ่นที่พวกเขาไม่มีความรู้สึกที่ดีในการติดแท็กเป็นรุ่น (ดูเหมือนจะเป็นปัญหากับคน RPi) โดยไม่ต้อง ดาวน์โหลดประวัติหลายกิกะไบต์ทั้งหมดของ Linux บังเอิญมันทำงานได้รักษา
Fordi

1
--depth=1ไม่ได้กล่าวถึงในคำตอบดังนั้นทำไมคุณถึงบอกว่าคำตอบนี้ใช้ได้ถ้าคุณเพิ่มสิ่งอื่น ๆ ที่ไม่ได้กล่าวถึงที่นี่ ฉันมีความสุขที่ได้ผลสำหรับคุณ แต่คำตอบนี้ทำให้เข้าใจผิดและไม่ตอบคำถามแม้ในบางส่วน ดังนั้น downvotes
Emil Styrke

5
@ ฟอร์ด: ไม่ใช้คำตอบคำต่อคำนี้ทำให้คุณได้ต้นไม้เดียวกับที่คุณได้รับจากวานิลลาgit clone <url> <local_dir_name>เพียงลองด้วยตัวคุณเอง ความแตกต่างเพียงอย่างเดียวคือรีโมต (แสดงโดยใช้git remote) จะถูกเรียกว่าลำดับ sha1 ที่เป็นความลับแทนชื่อ "ต้นกำเนิด" ที่เป็นประเพณี ในคำอื่น ๆ ที่<sha1-of-the-commit>กล่าวถึงในคำตอบนี้ไม่มีการแบกใด ๆ ที่มีการแก้ไขเรียกจากเซิร์ฟเวอร์หรือสาขาที่จะเช็คเอาท์
Emil Styrke

6
@ ฟอร์ด: ฉันเพิ่งทำgit clone -o 896066ee1cf4d653057dac4e952f49c96ad16fa7 https://github.com/torvalds/linux.git linux --depth=1ไป นี้จะช่วยให้ฉันแก้ไข8a28d674และไม่ได้ 896066eeตามที่คุณและคำตอบการเรียกร้องนี้
Emil Styrke

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