因爲換了份工做,以前一直用SVN,如今須要用git,抽空學習一下。參照博客(https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000)在個人樹莓派上練習一遍。git的由來就不重複了,分佈式和集中的比較也不贅述。git
sudo apt-get install git
sql
git init分佈式
git add filename學習
git commit -m "xxxx"spa
git log或者git log --pretty=oneline
3d
在git中,HEAD表示當前版本,上一版本表示HEAD^,上上版本表示HEAD^^,上100個版本表示HEAD~100指針
回退到上一個版本code
也能夠爲
git reset --hard HEAD^
git reset --hard 3628164(數字表示commit id)
六、查看歷史命令
git reflogserver
工做區:就是咱們平時操做的目錄blog
工做區有一個隱藏的文件夾叫.git,這個不算工做區,而是Git的版本庫。
版本庫存有不少重要的東西,其中最重要的就是稱爲stage(或者叫index)的暫存區,還有Git爲咱們自動建立的第一個分支master
,以及指向master
的一個指針叫HEAD
。
git add 的動做就是把工做區的文件添加到暫存區(stage),git commit 就是把暫存區的全部文件一次性提交到分支。
git checkout -- readme.txt 只會撤銷工做區的修改,在已經add到暫存區的文件不會被撤銷。
若是修改的東西已經被git add 到暫存區,如何回退呢?
用命令git reset HEAD file
能夠把暫存區的修改撤銷掉(unstage),從新放回工做區。
場景1:當你改亂了工做區某個文件的內容,想直接丟棄工做區的修改時,用命令git checkout -- file
。
場景2:當你不但改亂了工做區某個文件的內容,還添加到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset HEAD file
,就回到了場景1,第二步按場景1操做。
場景3:已經提交了不合適的修改到版本庫時,想要撤銷本次提交,參考回退版本一節,不過前提是沒有推送到遠程庫。
git rm
git commit
git clone
要關聯一個遠程庫,使用命令git remote add origin git@server-name:path/repo-name.git
;
關聯後,使用命令git push -u origin master
第一次推送master分支的全部內容;
此後,每次本地提交後,只要有必要,就能夠使用命令git push origin master
推送最新修改;