Git


一、

文件層面操作:

  • 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

查了一下:

  1. git log 然后查看並復制上一版本的版本號

  2. git reset 此時版本庫中該文件已回退上一版本

1.3 刪除

1.如果你用的rm刪除文件,那就相當於只刪除了工作區的文件,如果想要恢復,直接用git checkout -- 就可以 2.如果你用的是git rm刪除文件,那就相當於不僅刪除了文件,而且還添加到了暫存區,需要先git reset HEAD ,然后再git checkout -- 3.如果你想徹底把版本庫的刪除掉,先git rm,再git commit 就ok了

1.4 分支

查看分支:git branch

創建分支:git branch

切換分支:git checkout

創建+切換分支:git checkout -b

合並某分支到當前分支:git merge

刪除分支:git branch -d

1.5 合並

當Git無法自動合並分支時,就必須首先解決沖突。解決沖突后,再提交,合並完成。

解決沖突就是把Git合並失敗的文件手動編輯為我們希望的內容,再提交。

用git log --graph命令可以看到分支合並圖


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM