1.創建版本庫
(1)首先選擇一個合適的地方,創建目錄
(2)通過git init命令把這個目錄變成Git可以管理的倉庫:
2.講文件添加到版本庫
(1)編寫readme.txt
(2)用命令git add告訴Git,把文件添加到倉庫
(3)用命令git commit告訴Git,把文件提交到倉庫
備注:git commit命令,-m后面輸入的是本次提交的說明,可以輸入任意內容,當然最好是有意義的,這樣你就能從歷史記錄里方便地找到改動記錄。一個一次add多個文件,然后一次commit
git status命令可以讓我們時刻掌握工作區的狀態
git diff顧名思義就是查看difference,查看修改的內容
3.提交修改文件
(1)git add
(2)git commit
備注:在修改文檔未提交時,查看git status命令得到反饋readme.txt被修改過了,但還沒有準備提交的修改。在文檔添加后,即完成(1),使用git status告訴我們,將要被提交的修改包括readme.txt,提交后,即完成(2)后,我們再用git status命令看看倉庫的當前狀態,此時Git告訴我們當前沒有需要提交的修改,而且,工作目錄是干凈(working directory clean)的
4.回退
commit相當于快照,一旦你把文件改亂了,或者誤刪了文件,還可以從最近的一個commit恢復,然后繼續工作,而不是把幾個月的工作成果全部丟失
git log命令顯示從最近到最遠的提交日志,我們可以看到3次提交,最近的一次是append GPL,上一次是add distributed,最早的一次是wrote a readme file。
基礎知識:Git必須知道當前版本是哪個版本,在Git中,用HEAD表示當前版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一樣),上一個版本就是HEAD^,上上一個版本就是HEAD^^,當然往上100個版本寫100個^比較容易數不過來,所以寫成HEAD~100。
使用git reset完成版本的回退,命令如下:
$ git reset--hard HEAD^ ? //回到上一個版本
HEADisnowatea34578adddistributed
備注:回退后再log中查不到未來的信息了,也有辦法恢復
(1)知道append GPL的commit id,此時可以通過git reset 即可回到未來狀態
(2)不知道append GPL的commit id,使用git reflog查找之前的命令,找到commit id 即可回到未來狀態
add是將文件存在暫存區,commit是將文件放入master中,也即放入當前的分支中
commit只提交當前被add的操作
5.撤銷修改的操作
場景1:當你改亂了工作區某個文件的內容,想直接丟棄工作區的修改時,用命令git checkout -- file。
場景2:當你不但改亂了工作區某個文件的內容,還添加到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset HEAD file,就回到了場景1,第二步按場景1操作。
場景3:已經提交了不合適的修改到版本庫時,想要撤銷本次提交,參考版本回退一節,不過前提是沒有推送到遠程庫
6、文件刪除
(1)本地刪除,版本庫也要刪除,操作為:git rm刪掉,并且git commit
(2)本地刪除,版本庫存在,要恢復文件,操作為:git checkout,本質是讓版本庫中的文件代替當前工作區的文件,此時工作區文件恢復了,但最新一次的修改未保存
GitHub作為git的遠程倉虧,可以設置,完成SSH加密傳輸
也可以自己創建Git遠程庫
7.多人協作
(1).當一個成員創建了一個項目時,其他人使用git clone克隆一個本地庫,命令為:$ git clone git@github.com:michaelliao/gitskills.gi
注意把Git庫的地址換成你自己的,然后進入對應目錄查看,即可看到該項目中的文件
(2)多人協做時,可以創建自己的分支,來達到既保留自己當前的進度,又不影響別人工作的效果。
操作步驟:
首先創建自己的分支,然后切換到新創建的分支。命令為:
$ git checkout -b dev? //創建+切換到當前分支
可以用git branch命令查看當前分支進行驗證,得到的結果當前分支前面會標一個*號。
然后切換到分支后可以進行文件的修改,然后通過add和submit完成修改提交
接著切換到master分支(所有人在的分支),并將dev分支上的內容合并到master上,命令為;
$ git checkout master? //回到master分支
$ git merge dev? ? ? ? //合并到master分支上
最后可以刪除dev分支,再次查看當前的分支? 命令為:
$ git branch -d dev? ? //刪除dev分支
$ git branch? ? ? ? ? //查看當前分支
8.打標簽
標簽的作用是將commit id 轉換成標簽,便于查找,命令為:
$git tag v1.0 ? ? ? ? ?//默認標簽是打在最新提交的commit上的
給歷史的commit提交標簽,需要找到之前的comment ID,然后使用命令:
$git tag v0.96224937? //其中96224937為commit ID
完成過程中可以通過git tag命令查當前的tag
還可以創建帶有說明的標簽,用-a指定標簽名,-m指定說明文字。例如:
$git tag -a v0.1-m"version 0.1 released"3628164
命令git push origin 可以推送一個本地標簽;
命令git push origin --tags可以推送全部未推送過的本地標簽;
命令git tag -d 可以刪除一個本地標簽;
命令git push origin :refs/tags/可以刪除一個遠程標簽