บรรทัดใดในบรรทัดเหล่านี้ที่ถูกต้อง
git checkout 'another_branch'
หรือ
git checkout origin 'another_branch'
หรือ
git checkout origin/'another_branch'
git checkout 'another_branch'
หรือ
git checkout origin 'another_branch'
หรือ
git checkout origin/'another_branch'
คำตอบ:
หากanother_branch
มีอยู่แล้วในพื้นที่และคุณไม่ได้อยู่ในสาขานี้ให้git checkout another_branch
เปลี่ยนเป็นสาขา
ถ้าanother_branch
ไม่ได้อยู่ แต่origin/another_branch
ไม่แล้วเทียบเท่ากับgit checkout another_branch
git checkout -b another_branch origin/another_branch; git branch -u origin/another_branch
ที่จะสร้างanother_branch
จากorigin/another_branch
ชุดเป็นต้นน้ำของorigin/another_branch
another_branch
หากไม่มีอยู่git checkout another_branch
จะส่งคืนข้อผิดพลาด
git checkout origin another_branch
ส่งคืนข้อผิดพลาดในกรณีส่วนใหญ่ ถ้าorigin
เป็นการแก้ไขและanother_branch
เป็นไฟล์มันจะตรวจสอบไฟล์ของการแก้ไขนั้น แต่ส่วนใหญ่อาจไม่ใช่สิ่งที่คุณคาดหวัง origin
ส่วนใหญ่จะใช้ในgit fetch
, git pull
และgit push
เป็นระยะไกลนามแฝงของ URL ที่เก็บระยะไกล
git checkout origin/another_branch
สำเร็จถ้าorigin/another_branch
มีอยู่ มันนำไปสู่การอยู่ในสถานะ HEAD เดี่ยวไม่ใช่ในสาขาใด ๆ หากคุณทำคอมมิชชันใหม่คอมมิชชันใหม่จะไม่สามารถเข้าถึงได้จากสาขาที่มีอยู่และจะไม่มีการอัปเดตสาขาใด ๆ
อัปเดต :
ในฐานะที่เป็น 2.23.0 ได้รับการปล่อยตัวด้วยเรายังสามารถใช้git switch
ในการสร้างและสลับสาขา
หากfoo
มีอยู่ให้ลองเปลี่ยนเป็นfoo
:
git switch foo
หากfoo
ไม่มีอยู่และorigin/foo
มีอยู่พยายามสร้างfoo
จากorigin/foo
นั้นเปลี่ยนเป็นfoo
:
git switch -c foo origin/foo
# or simply
git switch foo
โดยทั่วไปหากfoo
ไม่มีอยู่ให้ลองสร้างfoo
จากการอ้างอิงหรือการคอมมิชชันที่รู้จักแล้วสลับไปที่foo
:
git switch -c foo <ref>
git switch -c foo <commit>
หากเรารักษาที่เก็บใน Gitlab และ Github ในเวลาเดียวกันที่เก็บในเครื่องอาจมีรีโมทสองตัวเช่นorigin
Gitlab และgithub
Github ในกรณีนี้ที่เก็บได้และorigin/foo
จะบ่นเพราะมันไม่ได้เป็นที่รู้จักกันจากการที่เตะ, หรือการสร้าง เราจำเป็นต้องระบุด้วยหรือตามความต้องการ ถ้าเราต้องการสร้างสาขาจากทั้งสองรีโมตเราควรใช้ชื่อที่แตกต่างสำหรับสาขาใหม่:github/foo
git switch foo
fatal: invalid reference: foo
origin/foo
github/foo
foo
git switch -c foo origin/foo
git switch -c foo github/foo
git switch -c gitlab_foo origin/foo
git switch -c github_foo github/foo
หากfoo
มีอยู่ให้ลองสร้าง / force-create foo
จาก (หรือรีเซ็ตfoo
เป็น) อ้างอิงที่รู้จักหรือยอมรับแล้วเปลี่ยนเป็นfoo
:
git switch -C foo <ref>
git switch -C foo <commit>
ซึ่งเทียบเท่ากับ:
git switch foo
git reset [<ref>|<commit>] --hard
ลองเปลี่ยนไปใช้ HEAD ที่แยกออกมาของการอ้างอิงที่รู้จักหรือการกระทำ:
git switch -d <ref>
git switch -d <commit>
หากคุณต้องการสร้างสาขา แต่ไม่สามารถเปลี่ยนได้ให้ใช้git branch
แทน พยายามที่จะสร้างสาขาจากการอ้างอิงหรือกระทำ:
git branch foo <ref>
git branch foo <commit>
git checkout
คำสั่งทำสิ่งต่าง ๆ มากเกินไปในความคิดของฉัน นั่นเป็นเหตุผลที่มีโหมดการทำงานมากมายที่นี่ หากสิ่งเดียวที่git checkout
ทำคือสลับสาขาคำตอบนั้นง่าย แต่ก็สามารถสร้างสาขาและแม้แต่แยกไฟล์จากคอมมิทเฉพาะโดยไม่สลับสาขา
git switch
เพื่อเปลี่ยนเป็นสาขาได้แล้ว
git checkout
แทนเวอร์ชันเก่าซึ่งใช้งานได้ในเวอร์ชันที่ทันสมัย
สลับไปยังสาขาอื่นในคอมไพล์ คำตอบที่ตรงไปตรงมา
git-checkout - สลับสาขาหรือเรียกคืนไฟล์ทรีที่ใช้งานได้
git fetch origin <----this will fetch the branch
git checkout branch_name <--- Switching the branch
ก่อนที่จะเปลี่ยนสาขาตรวจสอบให้แน่ใจว่าคุณไม่มีไฟล์ที่แก้ไขใด ๆ ในกรณีนี้คุณสามารถคอมมิทการเปลี่ยนแปลงหรือซ่อนมันได้
[ git checkout "branch_name"
]
เป็นอีกวิธีที่จะพูดว่า:
[ git checkout -b branch_name origin/branch_name
]
ในกรณีที่ "branch_name" มีอยู่จากระยะไกลเท่านั้น
[ git checkout -b branch_name origin/branch_name
] มีประโยชน์ในกรณีที่คุณมีหลายรีโมท
เกี่ยวกับ [ git checkout origin 'another_branch'
] ฉันไม่แน่ใจว่าเป็นไปได้ AFAK คุณสามารถทำได้โดยใช้คำสั่ง "fetch" - [ git fetch origin 'another_branch'
]
ด้วยGit 2.23เป็นต้นไปเราสามารถใช้git switch <branch name>
เพื่อสลับกิ่งไม้ได้
สิ่งที่ใช้ได้ผลสำหรับฉันคือ:
เปลี่ยนเป็นสาขาที่ต้องการ:
git checkout -b BranchName
แล้วฉันก็ดึง "ปรมาจารย์" โดย:
git pull origin master
คำสั่งที่มีประโยชน์ในการทำงานในชีวิตประจำวัน:
git checkout -b "branchname" -> creates new branch
git branch -> lists all branches
git checkout "branchname" -> switches to your branch
git push origin "branchname" -> Pushes to your branch
git add */filename -> Stages *(All files) or by given file name
git commit -m "commit message" -> Commits staged files
git push -> Pushes to your current branch
หากคุณต้องการให้สาขาติดตามสาขาระยะไกลซึ่งเป็นการนำเข้ามากถ้าคุณกำลังจะทำการเปลี่ยนแปลงสาขาและดึงการเปลี่ยนแปลง ฯลฯ คุณต้องใช้เพิ่ม -t สำหรับการชำระเงินจริงเช่น:
git checkout -t branchname
ตรวจสอบ: git branch -a
หากคุณได้รับเพียงสาขาเดียว จากนั้นทำตามขั้นตอนด้านล่าง
git config --list
git config --unset remote.origin.fetch
git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/*
depth
param) ก่อนหน้านี้และตอนนี้สงสัยว่าทำไมคุณไม่สามารถดึงกิ่งระยะไกลอื่นได้error: pathspec 'another_branch' did not match any file(s) known to git
โดยใช้คำสั่งที่แนะนำข้างต้น มันไม่ใช่คำถามเดิมที่เกี่ยวกับ แต่มันสามารถช่วยให้คนอื่นเกาหัวของพวกเขาที่นี่
ฉันกำลังใช้สิ่งนี้เพื่อสลับสาขาหนึ่งไปยังสาขาอื่นที่คุณสามารถใช้งานได้สำหรับฉันชอบเสน่ห์
git switch [branchName] หรือ git checkout [branchName]
เช่นการพัฒนาสวิตช์
git หรือการชำระเงิน git พัฒนา
git checkout [branch]
สำหรับผู้ใช้ส่วนใหญ่ที่มาถึงคำถามนี้