1.本地倉庫的操作
1.1 創(chuàng)建版本庫
注意:版本控制系統(tǒng)只能跟蹤文本文件的改動(dòng),不能追蹤二進(jìn)制文件(比如:world、圖片)。文本文件盡量使用 UTF-8 編碼。
直接從一個(gè)空目錄中創(chuàng)建版本庫
-
mkdir learngit--在當(dāng)前目錄下創(chuàng)建一個(gè)空目錄learngit -
cd learngit--切換到 learngit 目錄
注意: pwd --可以顯示當(dāng)前目錄的詳細(xì)路徑
-
git init--把 learngit 目錄變成Git可以管理的倉庫
注意:如果創(chuàng)建倉庫之后,看不到 .git 的目錄,那是因?yàn)檫@個(gè)目錄默認(rèn)是隱藏的,用ls -ah命令就可以看見
從一個(gè)非空目錄中創(chuàng)建版本庫
- 切換到該目錄
git init
1.2 把要管理的文件添加到版本庫
一個(gè)版本維護(hù)了當(dāng)前工作區(qū)的一個(gè)狀態(tài)。
以 readme.txt 文件為例
-
git add readme.txt--將對(duì)readme.txt的修改(包括創(chuàng)建和刪除操作),添加到暫存區(qū)stage;或者添加多個(gè)文件修改到暫存區(qū):
git add file1.txt git add file2.txt file3.txt git commit -m "add 3 files."xxxxxxxxxx git add file1.txt?
git commit -m "本次提交的說明"--一次性把暫存區(qū)的所有修改提交到分支,git就會(huì)利用提交的修改來更新分支上對(duì)應(yīng)文件。
1.3 版本回退
就是讓工作區(qū)回到某一個(gè)狀態(tài)。
-
git log [--pretty=oneline]--查看倉庫的版本記錄注意:
HEAD表示當(dāng)前版本。git log版本記錄是從當(dāng)前版本開始記錄,顯示舊的版本;并不會(huì)顯示比當(dāng)前版本更新的版本。
方式一:從當(dāng)前版本開始回退
-
git reset --hard HEAD~i--從當(dāng)前版本回退i個(gè)版本注意:
~后面的數(shù)字表示回退幾次版本,默認(rèn)是一次
方式二:直接跳轉(zhuǎn)到指定版本號(hào)commit id的版本
-
git reflog由于
git log命令可能會(huì)丟失部分版本信息,則可以利用這個(gè)命令,查看到所有的命令記錄,記錄中包含了所有歷史版本的版本號(hào)。-
git reset --hard 1094a--直接調(diào)轉(zhuǎn)到版本號(hào)為1094a的版本。
-
1.4 撤銷修改
從工作區(qū)到分支的過程如下:
工作區(qū)的修改———add———暫存區(qū)的修改———commit————分支
如果修改了工作區(qū),現(xiàn)在要取消掉修改,就要讓工作區(qū)的修改 和 暫存區(qū) 都取消;如果提交到分支,還要讓分支回退到之前狀態(tài)。
-
git checkout -- <file>把文件在工作區(qū)的修改全部撤銷 -
git reset HEAD <file>把暫存區(qū)的修改回退到工作區(qū) -
git reset --hard HEAD~i回退到之前的狀態(tài)
注意:可以用git status 來查看當(dāng)前狀態(tài)
2.本地倉庫與遠(yuǎn)程倉庫的遠(yuǎn)程同步
本地 ——> 遠(yuǎn)程
先有本地倉庫,后有遠(yuǎn)程倉庫(空的) ,把本地倉庫的內(nèi)容推送到GitHub倉庫
sgep1: 在本地常見一個(gè)倉庫 repositoty_1,添加內(nèi)容
step2: 在github上創(chuàng)建一個(gè)空的遠(yuǎn)程倉庫 repositoty_1
step3: 將本地倉庫關(guān)聯(lián)到遠(yuǎn)程倉庫 $ git remote add origin 遠(yuǎn)程倉庫地址
step4: 把本地倉庫當(dāng)前分支的最新修改推送到遠(yuǎn)程 : $git push origin 當(dāng)前分支名
? 如果遠(yuǎn)程沒有當(dāng)前分支 ,將創(chuàng)建該分支,并且推送修改
遠(yuǎn)程——>本地
先有遠(yuǎn)程倉庫,后有本地倉庫,把遠(yuǎn)程倉庫的內(nèi)容克隆到本地
step1: 創(chuàng)建遠(yuǎn)程倉庫
step2: 克隆遠(yuǎn)程倉庫到本地 $ git clone 遠(yuǎn)程倉庫地址