版本庫
1.repository
在一個合適的地方,創建一個空目錄
$ mkdir learngit
$ cd learngit
$ pwd
/User/leon/learngit
pwd命令用于顯示當前的目錄,在我的電腦上,這個倉庫位于/user/michael/learngit
2.git init 將當前目錄變成git 可以管理的倉庫。
$?git?init
Initialized?empty?Git?repository?in?/Users/michael/learngit/.git/
Git就把倉庫建好了,而且告訴你是一個空的倉庫(empty?Git?repository),細心的讀者可以發現當前目錄下多了一個
.git
的目錄,這個目錄是Git來跟蹤管理版本庫的,沒事千萬不要手動修改這個目錄里面的文件,不然改亂了,就把Git倉庫給破壞了3. 添加文件到git倉庫,總共分兩步
3.1 git add <file>,注意可以反復使用,添加多個文件。
3.2 使用git commit命令
? 其中,git commit
命令,-m
后面輸入的是本次提交的說明,可以輸入任意內容,當然最好是有意義的,這樣你就能從歷史記錄里方便地找到改動記錄 不輸入這個也可以,但是強烈不建議這樣做。 ?
add 每次提交一個文件,add可以多次add不同的文件。
4. git status 掌握工作區的狀態
git status告訴你有文件修改過,git diff 可以查看修改的內容。
修改文件和提交新文件一樣步驟,
5.git log 顯示從近到最遠的提交日志,我們可以看到三次提交,最近的一次是 append GPL,上一次是add dist
6.版本回退,git reset - -hard 123456
版本號會模糊查找,
git reflow 記錄一次命令,可以在關機之后 查找到那個
7.git 記錄的是修改而不是文件
每次修改都是先 add 到暫存區,之后再commit?
8.撤銷修改
git checkout 會撤銷修改。git checkout - - test.txt 文件在工作區的修改全部撤銷。
兩種情況:1)text.txt 修改后還沒有放到暫存區,
2)test.txt 已經添加到暫存區,又做了修改,撤銷修改就回到了添加到暫存區后的狀態。
文件回到最后一次的 git commit 或者 git add 時候的狀態。
需要注意的是 git checkout 中的 - - 很重要。缺了就編程切換到另一個分支
小結:
1.當你改亂了工作區的某個文件的內容,想直接丟棄工作區的修改的時候,用git checkout — file
2.不但改亂了工作區的某個文件,還添加到了暫存區的時候,想丟棄修改,
2.1 get reset HEAD file 回到了場景1,第二步按照場景1來操作。 ?
3.已經提交了不合適的修改到版本庫的時候,想要撤銷本次提交,參考版本 6 版本回退,不過前提是沒有推送到遠程庫
9.刪除文件
$ rm test.txt 就是用命令行刪除本地工作區的文件,或者直接自己刪除
這時候用 git status 可以看到你哪些文件被刪除
現在有兩個選擇,
1)從版本庫中刪除,git rm ?之后 git commit
$?git?rm?test.txt
rm?'test.txt'
$?git?commit?-m?"remove?test.txt"
[master?d17efd8]?remove?test.txt
?1?file?changed,?1?deletion(-)
?delete?mode?100644?test.txt
這樣文件就從版本庫中刪除了
2)如果你刪除錯了,git checkout - - text.txt
小結:
其實, git checkout 就是用版本庫里的版本替換工作區的版本,任何情況都可以一鍵還原
git rm用于刪除一個文件,如果一個文件已經被提交到版本庫,那么不需要擔心誤刪除,
需要注意的是你只能回復文件到最新的版本