【Git】Git 簡明使用筆記(基礎篇)
工欲善其事,必先利其器。
本文學習源為https://www.liaoxuefeng.com/wiki/896043488029600
一、建立本地倉庫(提交新檔案)
倉庫可以理解為一個目錄,這個目錄裡面的所有檔案都可以被Git管理起來,每個檔案的修改、刪除、Git都能跟蹤,以便任何時刻都可以追蹤歷史,或者在將來某個時刻可以還原。
建立版本庫的步驟:
- 建立一個空目錄
- 進入這個空目錄,並開啟終端執行
git init
即可初始化一個Git倉庫 - 新增檔案到Git倉庫
使用命令git add <file>
(可以反覆多次使用,新增多個檔案)
使用命令git commit -m <message>
二、掌握工作區狀態(提交修改)
如果在本地修改了檔案,在提交之前可以
使用 git status
命令檢視檔案的修改狀態,
使用 git diff
檢視具體修改的內容。
提交修改的步驟:
- 使用命令
git add <file>
提交修改的檔案 - 使用命令
git status
檢視當前倉庫狀態,或使用命令git diff
檢視具體修改內容 - 使用命令
git commit -m <message>
提交檔案到倉庫 - 再次使用
git status
檢視檢視倉庫的當前狀態,會輸出
On branch master nothing to commit, working tree clean
三、版本回退
使用 git log
命令檢視歷史提交版本(使用 git log --pretty=oneline
簡化檢視資料)
使用 git reset --hard HEAD^
回退到上一個版本( HEAD
表示當前版本,HEAD^
表示上一個版本,HEAD^^
表示上上個版本, HEAD~100
表示往上100個版本)
使用 git reflog
檢視命令歷史,確定切回到未來的哪個版本
使用 git reset --hard commit_id
回退到指定版本,包括回退到未來版本
四、工作區和暫存區
工作區,就是本地建立的目錄中除 .git
檔案之外的內容
版本庫在工作區中的一個隱藏目錄 .git
版本庫裡存了很多東西,其中最重要的就是stage(就是暫存區),還有Git自動建立的第一個分支master,以及指向master的一個指標叫做HEAD
上述 git add
的過程實際上就是把檔案修改新增到暫存區;git commit
提交實際上就是把暫存區的所有內容提交到當前分支
五、管理修改
Git跟蹤並管理的是修改,而非檔案。
每次修改都應該使用 git add
將修改新增到暫存區,如果修改後沒有執行 git add
,執行 git commit
不會將本次修改提交。
規範的修改提交過程應為
修改1→ git add
→修改2→ git add
....→ git commit
六、撤銷修改
修改了工作區的檔案,想直接丟棄工作區的修改,使用 git checkout -- file
修改了工作區的檔案並且使用 git add
新增到了暫存區,此時想丟棄修改,分兩步:
使用 git reset HEAD <file>
使用 git checkout -- file
修改了工作去的檔案並且使用 git commit
提交到了本地倉庫,撤銷修改方法參考版本回退
七、刪除檔案
使用命令 git rm
刪除檔案。
如果誤刪,並且誤刪檔案已經提交到版本庫,使用 git checkout -- file
恢復即可
八、配置SSH Key
1.建立SSH Key。在使用者主目錄下,檢視是否有.ssh目錄,檢視目錄中是否有id_rsa 和id_rsa.pub這兩個檔案,如果沒有,開啟終端或者Git Bash
使用 ssh-keygen -t rsa -C "[email protected]"
建立SSH Key
執行命令之後一路回車即可。
最後會在.ssh目錄生成id_rsa 和id_rsa.pub兩個檔案,id_rsa是金鑰,不能洩露出去;id_rsa.pub是公鑰,可以放心地告訴任何人
2.登入GitHub 設定公鑰
開啟Account settings, "SSH Keys"頁面,點選"Add SSH Key",填上任意title,在Key文字框裡貼上id_rsa.pub檔案中的內容,點選"Add Key"即可
九、新增檔案到遠端倉庫
本地建立了一個Git倉庫之後,再在Github上建立一個Git倉庫,使得本地的倉庫和Github上的倉庫遠端同步操作步驟
登陸Github,建立一個新的倉庫,倉庫名稱跟本地一致
在本地倉庫下執行命令 git remote add origin git@server-name:pathe/repo-name.git
執行命令 git push -u origin master
把本地庫的所有內容推送到遠端庫上,把本地倉庫內容推送到遠端,用 git push
命令,實際上是把當前分支master推送到遠端加上-u引數,Git不但會把本地的master內容推送到遠端新的master分支,還會把本地的master分支和遠端master分支關聯起來,在以後的推送或者拉取時就可以簡化命令
自此之後,只要本地作了提交,就可以使用命令 git push origin master
把本地master分支的最新修改推送至Github
十、從遠端庫克隆
在Github上建立一個新的倉庫
本地執行命令 git clone git@server-name:pathe/repo-name.git
Git 支援多種協議,比如https,ssh;但ssh協議速度最快。