
文件層面操作:
- git add files 把當前文件放入暫存區域。
- git commit 給暫存區域生成快照並提交。
- git reset -- files 用來撤銷最后一次git add files,你也可以用git reset 撤銷所有暫存區域文件。
- git checkout -- files 把文件從暫存區域復制到工作目錄,用來丟棄本地修改。
git reset 會撤銷所有暫存區的文件
git checkout --files 會把文件沖暫存區復制到工作目錄,會把本地(工作區)修改掉

checkout命令用於從歷史提交(或者暫存區域)中拷貝文件到工作目錄,也可用於切換分支。當給定某個文件名時,git會從指定的提交中拷貝文件到暫存區域和工作目錄。比如,git checkout HEAD~ foo.c會將提交節點HEAD~(即當前提交節點的父節點)中的foo.c復制到工作目錄並且加到暫存區域中。(如果命令中沒有指定提交節點,則會從暫存區域中拷貝內容。)注意當前分支不會發生變化。

當不指定文件名,而是給出一個(本地)分支時,那么HEAD標識會移動到那個分支(也就是說,我們“切換”到那個分支了),然后暫存區域和工作目錄中的內容會和HEAD對應的提交節點一致。新提交節點(下圖中的a47c3)中的所有文件都會被復制(到暫存區域和工作目錄中);只存在於老的提交節點(ed489)中的文件會被刪除;不屬於上述兩者的文件會被忽略,不受影響。

如果既沒有指定文件, 也沒有指定分枝. 而是只給出一段提交的歷史Hash, 只有HEAD會移動到相應的歷史提交. 這會造成HEAD分離, 非常危險的操作, 這個命令的說明只是為了滿足你的好奇心而已, 不要使用這個命令.
git checkout
經過實驗,發現可以使用三種方法撤銷修改(在已經add到暫存空間的情況下) 1.$ git reset HEAD$ 然后 git checkout -- readme.txt 2.$ git reset --hard HEAD 3.$ git checkout HEAD -- readme.txt
查了一下:
-
git log
然后查看並復制上一版本的版本號 -
git reset
此時版本庫中該文件已回退上一版本
1.如果你用的rm刪除文件,那就相當於只刪除了工作區的文件,如果想要恢復,直接用git checkout --
查看分支:git branch
創建分支:git branch
切換分支:git checkout
創建+切換分支:git checkout -b
合並某分支到當前分支:git merge
刪除分支:git branch -d
當Git無法自動合並分支時,就必須首先解決沖突。解決沖突后,再提交,合並完成。
解決沖突就是把Git合並失敗的文件手動編輯為我們希望的內容,再提交。
用git log --graph命令可以看到分支合並圖
