@@ -407,7 +407,9 @@ git push --force-with-lease
407407
408408## checkout
409409
410- git checkout -- file 可以丟棄工作區的修改:
410+ 也請參考 [ git switch] ( https://github.com/twtrubiks/Git-Tutorials#git-switch ) 和 [ git restore] ( https://github.com/twtrubiks/Git-Tutorials#git-restore ) .
411+
412+ ` git checkout -- file ` 可以丟棄工作區的修改:
411413
412414``` cmd
413415git checkout -- hello.py
@@ -485,6 +487,12 @@ git checkout bug1 為切換到一個名稱為 bug1 的分支底下。
485487git checkout -b bug1
486488```
487489
490+ (這邊教大家一個小技巧, 以下這個指令可以快速切換上一個分支, 和 ` cd - ` 概念一樣:exclamation : )
491+
492+ ``` cmd
493+ git checkout -
494+ ```
495+
488496我們在 bug1 分支上進行任何修改操作,
489497
490498然後再把工作成果 ( 補充一下,修改任何內容後請記得使用 git add 指令和 git commit 指令 ) 合併到 master 分支上:
@@ -614,6 +622,94 @@ git branch --remote
614622git checkout develop
615623```
616624
625+ ## git switch
626+
627+ [ Youtube Tutorial - (等待新增)git switch 和 git restore 教學] ( )
628+
629+ 請先確認目前的 git 版本, 更新方法可參考 [ git 更新] ( https://github.com/twtrubiks/Git-Tutorials#git-%E6%9B%B4%E6%96%B0 ) .
630+
631+ 在 git 2.23 版本開始, 增加了 ` git switch ` 和 ` git restore ` , 這兩個指令主要是
632+
633+ 要更清楚的劃分功能, 主要是來代替 ` git checkout ` .
634+
635+ 你其實可以想成 ` git checkout ` = ` git switch ` + ` git restore ` .
636+
637+ 官方文件可參考 [ git-switch] ( https://git-scm.com/docs/git-switch )
638+
639+ ``` cmd
640+ git switch [<options>] (-c|-C) <new-branch> [<start-point>]
641+ ```
642+
643+ 切換到一個已經存在的 branch (如果該 branch 不存在則指令無效)
644+
645+ ``` cmd
646+ git switch <new-branch>
647+ ```
648+
649+ 建立 new-branch 並且切換到 new-branch 分支
650+
651+ ``` cmd
652+ git switch -c <new-branch>
653+ ```
654+
655+ ` -c ` ` --create `
656+
657+ ` -C ` ` --force-create `
658+
659+ 依照 commit_id (或前 N 的 commit 點) 建立 new-branch 並且切換到 new-branch 分支
660+
661+ ``` cmd
662+ git switch -c <new-branch> <commit_id>
663+ git switch -c <new-branch> HEAD~2
664+ ```
665+
666+ (這邊教大家一個小技巧, 以下這個指令可以快速切換上一個分支, 和 ` cd - ` 概念一樣:smile : )
667+
668+ ``` cmd
669+ git switch -
670+ ```
671+
672+ ## git restore
673+
674+ [ Youtube Tutorial - (等待新增)git switch 和 git restore 教學] ( )
675+
676+ 請先確認目前的 git 版本, 更新方法可參考 [ git 更新] ( https://github.com/twtrubiks/Git-Tutorials#git-%E6%9B%B4%E6%96%B0 ) .
677+
678+ 在 git 2.23 版本開始, 增加了 ` git switch ` 和 ` git restore ` , 這兩個指令主要是
679+
680+ 要更清楚的劃分功能, 主要是來代替 ` git checkout ` .
681+
682+ 你其實可以想成 ` git checkout ` = ` git switch ` + ` git restore ` .
683+
684+ 官方文件可參考 [ git-restore] ( https://git-scm.com/docs/git-restore )
685+
686+ 以下兩個指令是相同的.
687+
688+ ``` cmd
689+ git checkout <file>
690+ git restore <file>
691+ ```
692+
693+ 還原目前資料夾全部的檔案
694+
695+ ``` cmd
696+ git restore .
697+ ```
698+
699+ 還原目前資料夾底下結尾是 ` *.py ` 的全部檔案
700+
701+ ``` cmd
702+ git restore '*.py'
703+ ```
704+
705+ 如果你的 ` git ` 版本比較新, 你應該會發現這個指令你以前好像沒看過:smile :
706+
707+ ![ alt tag] ( https://i.imgur.com/IHqfVrn.png )
708+
709+ ``` cmd
710+ git restore --staged <file>
711+ ```
712+
617713## git pull
618714
619715通常在開始工作或要 push 之前,會先從遠端抓取分支,
@@ -1727,6 +1823,16 @@ git config alias.stu status
17271823man git-config
17281824```
17291825
1826+ ### git 更新
1827+
1828+ ``` cmd
1829+ sudo add-apt-repository ppa:git-core/ppa
1830+ sudo apt-get update
1831+ sudo apt-get install git
1832+ ```
1833+
1834+ ![ alt tag] ( https://i.imgur.com/WrQNZln.png )
1835+
17301836## 使用 Git 一次 Push 到多個不同的遠端 ( remote )
17311837
17321838假如有一天 github 掛了,這樣是不是就不能 work 了,你可能會說本地端還有 ?
0 commit comments