บรรทัดใดในบรรทัดเหล่านี้ที่ถูกต้อง
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_branchanother_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 ในเวลาเดียวกันที่เก็บในเครื่องอาจมีรีโมทสองตัวเช่นoriginGitlab และgithubGithub ในกรณีนี้ที่เก็บได้และorigin/foo จะบ่นเพราะมันไม่ได้เป็นที่รู้จักกันจากการที่เตะ, หรือการสร้าง เราจำเป็นต้องระบุด้วยหรือตามความต้องการ ถ้าเราต้องการสร้างสาขาจากทั้งสองรีโมตเราควรใช้ชื่อที่แตกต่างสำหรับสาขาใหม่:github/foogit switch foofatal: invalid reference: fooorigin/foogithub/foofoogit switch -c foo origin/foogit 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 --listgit config --unset remote.origin.fetch git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/*depthparam) ก่อนหน้านี้และตอนนี้สงสัยว่าทำไมคุณไม่สามารถดึงกิ่งระยะไกลอื่นได้error: pathspec 'another_branch' did not match any file(s) known to gitโดยใช้คำสั่งที่แนะนำข้างต้น มันไม่ใช่คำถามเดิมที่เกี่ยวกับ แต่มันสามารถช่วยให้คนอื่นเกาหัวของพวกเขาที่นี่
ฉันกำลังใช้สิ่งนี้เพื่อสลับสาขาหนึ่งไปยังสาขาอื่นที่คุณสามารถใช้งานได้สำหรับฉันชอบเสน่ห์
git switch [branchName] หรือ git checkout [branchName]
เช่นการพัฒนาสวิตช์
git หรือการชำระเงิน git พัฒนา
git checkout [branch]สำหรับผู้ใช้ส่วนใหญ่ที่มาถึงคำถามนี้