Git:一個(gè)開(kāi)源的 分布式版本控制系統(tǒng),它可以在本地和遠(yuǎn)程倉(cāng)庫(kù)之間管理源代碼和文檔的版本。推薦有Linux基本命令的基礎(chǔ)學(xué)習(xí)更佳,學(xué)起來(lái)不會(huì)枯燥、乏味。
1、初始化配置
Git安裝網(wǎng)址
安裝完成后,找到鍵盤(pán)Win鍵按下后,在開(kāi)始菜單中找到剛下載好的Git Bash打開(kāi)git命令行窗口,準(zhǔn)備輸入后續(xù)命令
查看Git版本,檢測(cè)是否安裝成功
git --version
配置用戶名和郵箱,保存用戶名和密碼,不用每一次都輸入
git config --global user.name "Deng ZJ"
git config --global user.email Deng@gmail.com
git config --global credentia.helper store
查看配置信息
git config --global --list
結(jié)果如下
2、初始化倉(cāng)庫(kù)
創(chuàng)建倉(cāng)庫(kù)一般有兩種方式1
、本地直接創(chuàng)建一個(gè)倉(cāng)庫(kù)2
、遠(yuǎn)程服務(wù)器上克隆一個(gè)存在的倉(cāng)庫(kù)
2-1 首先創(chuàng)建
一個(gè)文件目錄,切換
文件路徑
mkdir learn-git
cd learn-git
在本地文件目錄learn-git中執(zhí)行命令 git init
,將這個(gè)目錄變成 Git 倉(cāng)庫(kù)。系統(tǒng)命令窗口回顯已經(jīng)初始化
了一個(gè)空的倉(cāng)庫(kù),且路徑行出現(xiàn)一個(gè)master分支
git init
輸入 ls -a,即查看當(dāng)前目錄下的文件(包括帶.的隱藏文件),-a參數(shù):顯示隱藏文件
其中.git隱藏文件里是get倉(cāng)庫(kù)的組成部分
,不要隨意增刪改查刪除
倉(cāng)庫(kù),master標(biāo)志也會(huì)消失
rm -rf .git
2-2 新建倉(cāng)庫(kù),取名為my-repo的倉(cāng)庫(kù),就會(huì)在my-repo文件夾下生成倉(cāng)庫(kù)
git init my-repo
進(jìn)入my-repo倉(cāng)庫(kù)
cd my-repo
2-3 Github遠(yuǎn)程使用git clone命令獲取倉(cāng)庫(kù)
git clone https://github.com/geekhall-laoyang/remote-repo.git
如何找到地址,如下圖所示
若連接克隆超時(shí),可選用SSH地址,但需要事先把本機(jī)生成的SSH公鑰配置到項(xiàng)目中SSH配置講解
2-4 修改分支名master方法
在C:\Users\Administrator找到.gitconfig
文件,打開(kāi)后添加下面兩行指令即可
[init]
defaultBranch = main
3、工作區(qū)域和文件狀態(tài)
工作區(qū)域分為:工作區(qū)
、暫存區(qū)
、本地倉(cāng)庫(kù)
工作區(qū):本地計(jì)算機(jī)上存儲(chǔ)項(xiàng)目代碼的目錄,所有文件都可以進(jìn)行修改和編輯
暫存區(qū)(也稱為索引區(qū)): Git 用于存儲(chǔ)將要提交到本地倉(cāng)庫(kù)的修改的地方,看作是一個(gè)緩沖區(qū),用于暫時(shí)存儲(chǔ)修改。
本地倉(cāng)庫(kù):是指 Git 存儲(chǔ)項(xiàng)目歷史記錄的地方,它保存了項(xiàng)目的每一次提交,每個(gè)提交都包含了一個(gè)快照和提交信息。本地倉(cāng)庫(kù)是工作區(qū)和暫存區(qū)的最終目的地,是 Git 進(jìn)行版本控制的核心。
文件的三種狀態(tài)已修改(modified)
,已暫存(staged)
,已提交(committed)
。
文件狀態(tài)如下圖所示:
4、添加和提交文件
簡(jiǎn)潔版看結(jié)尾處
4-1 由于之前創(chuàng)建了一個(gè)倉(cāng)庫(kù),現(xiàn)在來(lái)創(chuàng)建一個(gè)新的文件file1.txt,并輸入hello world
echo "hello world" > file1.txt
查看文件內(nèi)容
cat file1.txt
查看倉(cāng)庫(kù)的狀態(tài)
git status
添加到暫存區(qū)
git add file1.txt
提交文件,只會(huì)提交暫存區(qū)的文件
再新創(chuàng)建一個(gè)文件file2.txt,進(jìn)行提交文件時(shí),只提交暫存區(qū)的file1.txt, ,-m參數(shù):提交信息
git commit -m "第一次提交"
4-2 通過(guò)通配符*
來(lái)add添加多個(gè)文件
git add *.txt
4-3 添加當(dāng)前文件夾的所有文件
(用.
表示)到暫存區(qū)
git add .
提交文件,不帶m參數(shù)就會(huì)進(jìn)入vim文件編輯器(不會(huì)使用需學(xué)習(xí)Linux基礎(chǔ)知識(shí))界面,首行編輯第二次提交即可,vim的使用方法自行查閱
進(jìn)入界面,先輸入i
進(jìn)入編輯界面,編輯文字這是第二次提交
后,按Esc退出輸入模式。進(jìn)入命令模式,界面輸入:wq
即可
git commit
查看提交歷史記錄
git log
總結(jié)
:
git status | 查看倉(cāng)庫(kù)的狀態(tài) |
---|---|
git add | 添加到暫存區(qū) 通配符添加多個(gè)以 .txt 結(jié)尾的文件 git add *.txt 添加當(dāng)前目錄下的所有文件 git add . |
git commit | 提交 只提交 暫存區(qū) 的文件,不會(huì)提交工作區(qū)的 |
git log | 查看倉(cāng)庫(kù)提交歷史記錄 添加 --oneline 參數(shù)可查看簡(jiǎn)潔的歷史記錄 |
git commit -a -m “輸入信息” | 一次性完成添加和暫存 |
5、git reset 回退版本
三個(gè)參數(shù) soft
、hard
、mixed
工作區(qū)內(nèi)容 | 暫存區(qū)內(nèi)容 | |
---|---|---|
git reset –soft
|
保留 | 保留 |
git reset –hard
|
清空 | 清空 |
git reset –mixed (默認(rèn)參數(shù)) |
保留 | 清空 |
創(chuàng)建一個(gè)名為repo的倉(cāng)庫(kù),創(chuàng)建三個(gè)文件,并分別添加后提交共三次,并使用git log --oneline查看提交簡(jiǎn)潔記錄
依次復(fù)制repo創(chuàng)建三個(gè)倉(cāng)庫(kù)
cp -rf repo repo-soft
cp -rf repo repo-hard
cp -rf repo repo-mixed
進(jìn)入命名為soft的倉(cāng)庫(kù),進(jìn)行soft方式的版本回退
5-1 --soft
后面接回退的版本號(hào),那么我們回退到第二次提交的版本號(hào)
git reset --soft fe6c3eb
此時(shí)分別查看工作區(qū)和暫存區(qū)的情況,應(yīng)當(dāng)都是被保留的
5-2 --hard
參數(shù) HARD^ 表示回退到上一個(gè)版本
git reset --hard 版本號(hào)
或者
git reset -hard HEAD^
此時(shí)分別查看工作區(qū)和暫存區(qū)的情況,file3的文件應(yīng)當(dāng)都是被清空的
5-3 --mixed
默認(rèn)參數(shù)可以不加
回退到上一個(gè)版本
git reset --mixed HEAD^
此時(shí)工作區(qū)file3文件保留和暫存區(qū)文件清空
總結(jié)
:
工作區(qū)內(nèi)容 | 暫存區(qū)內(nèi)容 | |
---|---|---|
git reset –soft
|
保留 | 保留 |
git reset –hard
|
清空 | 清空 |
git reset –mixed (默認(rèn)參數(shù)) |
保留 | 清空 |
6、git diff查看差異
查看工作區(qū)、暫存區(qū)、本地倉(cāng)庫(kù)之間的差異,查看不同版本之間的差異或者不同分支之間。
使用上一節(jié)創(chuàng)建的repo倉(cāng)庫(kù),并里面vim命令修改file3.txt文件內(nèi)容333變?yōu)?444后,使用命令查看差異
不加參數(shù),默認(rèn)比較工作區(qū)和暫存區(qū)之間的差異
git diff
工作區(qū)和版本庫(kù)之間的差異
git diff HEAD
暫存區(qū)和版本庫(kù)之間的差異
git diff --cached
比較版本差異,只需要加入版本的ID即可
git diff 9ff62d0 e27c26b
HEAD標(biāo)志指向分支的最新節(jié)點(diǎn),比較當(dāng)前版本HEAD和上一個(gè)版本HEAD^(HEAD~)之間的差異
git diff HEAD^ HEAD
git diff HEAD~ HEAD
7、刪除文件git rm
可以一次性刪除工作區(qū)和暫存區(qū)的相同文件
git rm file2.txt
刪除版本庫(kù)的文件
git rm --cached 文件名
刪除的文件需要提交到版本庫(kù)中,這樣版本庫(kù)中的文件才能被刪除
git commit -m "delete file"
8、.gitignore
需要適當(dāng)?shù)暮雎砸恍┡R時(shí)緩存文件或者敏感文件添加到版本庫(kù)中
克隆倉(cāng)庫(kù)
git clone 克隆地址
推送更新內(nèi)容到遠(yuǎn)程倉(cāng)庫(kù)
git push
拉取更新內(nèi)容到本地倉(cāng)庫(kù),并進(jìn)行一次合并操作
git pull
只拉去修改的內(nèi)容到本地倉(cāng)庫(kù)
git fetch
10、分支基礎(chǔ)
利用GitKraken圖形化工具展現(xiàn),可到git官網(wǎng)下載。
首先在main創(chuàng)建main1、2、3分別提交三次,在dev分支中創(chuàng)建dev1、dev2分別提交二次,然后在main中創(chuàng)建main4、main5提交二次。
查看當(dāng)前倉(cāng)庫(kù)的所有分支
git branch
創(chuàng)建一個(gè)名為dev的新分支
git branch dev
切換到新的分支,兩個(gè)都可
//git checkout dev
git switch dev
未合并,所以main分支還是原來(lái)的內(nèi)容
將不同的分支進(jìn)行合并到當(dāng)前分支,在master分支中合并dev分支
git merge dev
當(dāng)一個(gè)分支已經(jīng)被合并到其他分支時(shí),就可以刪除已經(jīng)合并
的分支,沒(méi)有合并的用-D參數(shù)強(qiáng)制刪除
git branch -d dev
查看分支列表 | git branch |
---|---|
創(chuàng)建分支 | git branch 分支名 |
切換分支 | git switch 分支名 |
合并分支 | git merge 分支名 |
刪除分支 | git branch -d 分支名(已合并) git branch -D 分支名(未合并) |
Rebase操作
以上筆記借鑒于b站視頻,以備復(fù)習(xí)使用。參考:bilibili 網(wǎng)站——【GeekHour】一Git教程
應(yīng)用1、本地文件提交到遠(yuǎn)程倉(cāng)庫(kù)
首先進(jìn)入github官網(wǎng),點(diǎn)擊右上角New
按鈕,新建一個(gè)倉(cāng)庫(kù)。
這里我以將本地的coco數(shù)據(jù)集文件上傳到github為例進(jìn)行演示
1
、創(chuàng)建一個(gè)本地倉(cāng)庫(kù),并將文件移動(dòng)到本地倉(cāng)庫(kù)中2
、提交到本地倉(cāng)庫(kù)
git add .
git commit -m "first commit"
git log
3
、上傳到遠(yuǎn)程倉(cāng)庫(kù)
git remote add origin git@github.com:DengZhengJ/coco-repo.git
git branch -M main
git push -u origin main
顯示最后一行,即上傳完成。刷新github界面就可以看見(jiàn)上傳的本地文件4
若這個(gè)倉(cāng)庫(kù)并不是初始化的,而是你自己在github上克隆下來(lái)進(jìn)行修改后想上傳到自己的github上時(shí),輸入git remote add origin git@github.com:xxxxxx.git時(shí),顯示以下錯(cuò)誤error: remote origin already exists
,是因?yàn)橐婚_(kāi)始代碼已經(jīng)關(guān)聯(lián)了遠(yuǎn)程倉(cāng)庫(kù)。
解決辦法,刪除之前關(guān)聯(lián)的遠(yuǎn)程倉(cāng)庫(kù)即可文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-762159.html
git remote rm origin
重新輸入上面的3、提交到遠(yuǎn)程倉(cāng)庫(kù)的指令,即可完成文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-762159.html
到了這里,關(guān)于Git的基本命令操作超詳細(xì)解析教程的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!