欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報邀請碼778899分享:Linux:git的基礎(chǔ)操作

柚子快報邀請碼778899分享:Linux:git的基礎(chǔ)操作

http://yzkb.51969.com/

git的下載

版本控制系統(tǒng)一般分為兩種,集中式版本控制系統(tǒng),分布式版本控制系統(tǒng)

什么是集中式版本控制系統(tǒng):版本庫集中存放在中央服務(wù)器,工作時候使用自己的電腦,當工作時候在中央服務(wù)器上拉取最新版本的代碼,然后開始工作,工作完成之后,將自己編寫完的代碼再推送給中央服務(wù)器。

他的缺點也顯而易見,當中央服務(wù)器宕機時全部的工作就無法再去進行,而且無法確保每個人的網(wǎng)絡(luò)速度都很快,拉取推送代碼會很慢浪費大量時間。(比較有代表性的是:svn,svc等)

什么是分布式版本控制系統(tǒng):我們的每個主機設(shè)備就是一個完整的版本庫,我們可以直接在我們本地進行工作,也不用網(wǎng)絡(luò),當我們多人協(xié)作的時候,只需要相互推送一下代碼,這樣就可以看到各自的內(nèi)容

分布式是目前比較熱門的一種方式,優(yōu)點就是不用連接網(wǎng)絡(luò)確保了我們工作時候只需要在本地,即使是多人協(xié)作,他的速度也是非??斓?。

缺點就是,可能在本地儲存需要大量的儲存,在數(shù)據(jù)方面需要大量的維護

(在線分布式庫也有很多:github,gitlab,gitee)

什么是git:git是一個開源的分布式版本控制系統(tǒng),開源有效,快速的對很小到非常大的項目版本進行管理

下載git

訪問官網(wǎng):

Git - 安裝 Githttps://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git

?

在這里選擇下載的平臺版本?

這里下載的gui界面

Gui界面也涵蓋了各個平臺的

初始化操作

git -v

?# 可以看到git版本

再使用git之需要先去配置一下用戶名和郵箱

git config --global user.name 'tarro'

--global : 全局配置對所有倉庫生效,如不加這個參數(shù)則只對當前倉庫生效

--system : 系統(tǒng)配置,對所有用戶生效(這個是系統(tǒng)級別配置,一般不使用,一般使用global)

(? 其實用戶名為tarro其實可以不用’’引起來 如果是kali tarro 中間有空格 那就一定需要’’ ,如果沒有空格的情況下去掉空格也是可以的? )

配置完用戶再來配置一下郵箱

git config --global user.email 123@qq.com

由于郵箱中間是沒有空格的這里可以直接省略引號

git config --global credential.helper store???

保存一下用戶名和密碼這樣就不用每次都輸入了

git config --global --list

可以使用該命令去查看一下剛剛寫入的內(nèi)容

?

創(chuàng)建初始本地倉庫

創(chuàng)建倉庫一般有兩種方式

在本地進行管理

git init

克隆遠程倉庫

git clone

創(chuàng)建本地倉庫

git init

該命令直接把當前所在目錄變成git的倉庫

可以看到我們執(zhí)行了該命令之后我們的目錄后面就有提示一個master的標識

使用ls -a 還可以看到一個隱藏文件.git的文件,這個不可以進去刪除,如果刪除了里面的東西就可以造成git結(jié)構(gòu)的破壞

如果我直接把.git這個目錄刪除那么這個目錄也不在是master

還可以在git init 后面通過路徑的方式去創(chuàng)建git倉庫

git init my-git

我們這個就是在當前目錄下生成一個git倉庫,git init可以寫相對路徑,也可以寫絕對路徑

克隆遠程倉庫?

git clone git@github.com:KALItarro/git.git

這樣就把我github上的倉庫克隆到本地了

?

?

Linux搭建本地倉庫

我準備了兩個Linux,一個Windows,分別為

1.centos7?? ip: 192.168.6.1??? git主服務(wù)器

2.centos7?? ip: 192.168.6.2??? 客戶端

3.windows10 ip:192.168.6.254?? 客戶端

我分別在Linux和Windows中都安裝了git工具

先去搭建Linux的主服務(wù)器,在第一臺6.1服務(wù)器上

去創(chuàng)建一個用戶

useradd -m git

echo git:123 | chpasswd

讓后切換到這個角色中

su - git

mkdir git && cd git

先去創(chuàng)建一個目錄

git init --bare

直接創(chuàng)建一個裸模板庫,就是不放在隱藏目錄里,直接放目錄里

現(xiàn)在就不需要去配置別的了,到第二臺6.2服務(wù)器上操作即可

我先做個ssh免密,如果不做也是可以的,只不過每次遠程操作都要輸入密碼

在6.2服務(wù)器上

ssh-keygen -t rsa

讓后一直回車

ssh-copy-id git@192.168.6.1

輸入yes然后輸入git的密碼123即可

先去創(chuàng)建一個名為git的文件夾(不是git也可以)

再去把項目克隆下來

git clone git@192.168.6.1:/home/git/git

由于我們還沒在這個里面做任何配置,所以空的是正常的

再次進入剛剛克隆的git目錄

創(chuàng)建一個1.html內(nèi)容為1

echo 1 > 1.html

可以看到剛剛添加的一個,現(xiàn)在我將他添加到暫存區(qū)

git add .

這樣就添加進去了

git status

可以查看做的操作

讓后保存到本地

git commit -m '第一次修改'

-m是注釋

下面這報錯是沒有寫用戶名和郵箱,設(shè)置一下就行

補充完之后再推送即可

git push origin master

推送成功,現(xiàn)在我們把git目錄刪除,再重新拉取一下就行

這樣的話就保存進倉庫了,后期做出了修改等操作都可以重新推送

這些就是linux上的一些操作

現(xiàn)在去win10上通過git自帶的gui進行一次提交,windows上的git命令也是和Linux上一樣的

?

然后多次輸入密碼

讓后就成功連接并且克隆到本地了

我在做個目錄中添加一個文件名為321

點擊一下rescan就可以看到剛剛做出的操作了

然后依次向下點,分別是放到暫存區(qū),寫入本地,推送到服務(wù)器

當我們點擊了push的時候,如果你沒有寫你的user名稱和郵箱就會彈窗讓你寫,只需寫完重新推送即可

現(xiàn)在我去Linux上拉取一下看看

也可以看到321,這樣就同步成功了

工作區(qū)域和文件狀態(tài)

git的工作區(qū)域主要分為3個:工作區(qū),暫存區(qū),本地倉庫

git的文件一共有4種狀態(tài):未跟蹤 ,未修改,已修改,已暫存

git init #創(chuàng)建本地倉庫

git status #查看倉庫狀態(tài)

git add #添加到暫存區(qū)域

git commit #提交

上一節(jié)我已經(jīng)創(chuàng)建了一個本地倉庫

我在這創(chuàng)建了一個文件,再使用status去查看發(fā)現(xiàn)他是一個未跟蹤的一個狀態(tài)

我使用

git add file1.txt

他現(xiàn)在就是暫存區(qū)的了,再去放到本地倉庫,他放本地倉庫他只會放暫存區(qū)域的,我這里再創(chuàng)建一個文件

可以看到新文件沒有放到暫存區(qū)域,所以等會提交并不會

git commit -m "第一次提交"

?如果不加-m會進入vim的交互模式寫入介紹

可以到第一個文件已經(jīng)不存在了,因為他只會提交在暫存區(qū)中的文件

還能通過通配符去匹配內(nèi)容

我這里創(chuàng)建了幾個文件在這個目錄里,都是未跟蹤狀態(tài)?

git add *t

或者使用

git add .

將這個目錄下所有的對象放到暫存區(qū)

?

這次使用

git commit

進行提交,會進入到vim的編輯模式

把介紹寫在最上面

可以看到提交過后沒有再提交的內(nèi)容了?

使用

git log

查看提交的歷史記錄

還可以使用?

git log --oneline

查看簡潔的更新內(nèi)容

reset 版本回退

當需要回退版本的時候? 就 使用 git reset 進行版本的回退,可以回退到某次的提交那次

reset 有三種用法 也是就是在后面加上三種參數(shù)

git? reset --soft?? # 也就是保留工作區(qū)和暫存區(qū)的內(nèi)容

get reset --hard? # 也就是丟棄工作區(qū)和暫存區(qū)的內(nèi)容

get reset --mixed # 介于上面兩者之間,他會保存工作區(qū)的東西但是不會保存暫存區(qū)的東西

mixed也是reset的默認參數(shù)

soft

這里我直接創(chuàng)建幾個文件

然后將這個目錄復制出來三個

一個目錄演示一個操作

先進入到soft中演示一下soft的效果

可以看到我當前沒有進行恢復,所以他里面沒有要更新的東西,我把他恢復成第二次的記錄,不出意外的話再去查看,他應(yīng)該顯示有個3.txt沒有暫存,因為當時做第二個快照的時候沒有第三個,他也不會去清除第三個,所以他肯定有一個3.txt的沒有記錄?

?

使用他前面的數(shù)值進行恢復一下

git reset --soft 93919bd

?

這樣就恢復成功了,可以看到他保留了暫存區(qū)

?hard

進入git-hard/目錄

可以直接使用HEAD^恢復到上一次快照

git reset --hard HEAD^

可以看到工作目錄和暫存區(qū)都沒有東西了

mixed

最后再去看一下mixed參數(shù)

切換到mixed工作目錄之后,直接執(zhí)行

git reset HEAD^

然后查看一下提交歷史

可以看到他并沒有保存暫存區(qū)

操作回溯

在實際操作中我們一般都是使用的,soft和mixed??? , hard很少使用,他可能會造成誤刪除的效果,但是誤刪除了問題也不大,因為所有操作都是可以進行回溯的

我們再回到hard目錄中

使用

git reflog

查看一下操作的歷史記錄

?

git reset --hard 6892b0f

就直接恢復到指定的步驟了????????

diff查看差異

git diff 用于查看差異

可以查看工作目錄差異,暫存差異,分支差異等

?

我準備了3個文件,分別是1,2,3.txt?? 每創(chuàng)建了一個文件夾都進行了一次備份

我直接去更改一下3.txt文件內(nèi)容

然后使用

git diff

可以看到他的一個改動信息

默認的是工作區(qū)和暫存區(qū)進行一個比較

可以使用git add .暫存區(qū)同步一下

查看工作區(qū)和版本庫之間的差異?

git diff HEAD

查看暫存區(qū)和版本庫之間的差異?

git diff --cached

?還可以進行版本之間的比較

只用前面的數(shù)值比較即可?

git diff 3854b95 07f5c66

比較上一次提交的版本和當前的提交版本之間的變化

git diff HEAD~ HEAD

?git diff HEAD^ HEAD也是一樣的

git diff HEAD~2 HEAD

?就表示之前的兩個版本

git diff 3.txt

也可以針對某個文件查看差異內(nèi)容

git diff 查看分支差異的話直接加上分支的名稱就可以了

從版本庫中刪除文件

有兩種辦法一種直接在工作目錄中刪除再同步? 一種直接在版本庫刪除

但是暫存區(qū)中的3.txt還沒被刪除掉

再去更新一下暫存區(qū)

發(fā)現(xiàn)3.txt沒了,這種辦法十分的低效

可以直接使用git rm命令去刪除

他會把本地工作區(qū)和暫存區(qū)的都刪除掉

?如果不想刪除本地的話可以在后面加上--cached

git rm --cached 文件名

?

忽略文件

忽略文件就是不應(yīng)該加入到版本庫中的文件

只要在.gitignore中列出要忽略的清單,他就不會去提交到倉庫中

現(xiàn)在我創(chuàng)建了兩個log文件

我現(xiàn)在不想把access.log提交到倉庫中,我可以這樣做

echo access.log > .gitignore

再去提交一下

發(fā)現(xiàn)access.log成功被隱藏

我們也可以使用通配符進行配置

我直接編輯.gitignore這個文件

意思是所有l(wèi)og后綴的文件都不上傳

現(xiàn)在一切以.log結(jié)尾的文件都不上傳了

因為剛剛已經(jīng)上傳過了,雖然還有他,但是我現(xiàn)在對other.loh插入一些數(shù)據(jù)看看?

可以看到他還是會進行記錄的,因為他有個前提就是必須是先在.gitignore里寫要忽略的文件

如果我已經(jīng)提交上去了再去進行忽略就是無效的

這時通過git rm命令刪除一下就行

?

git rm --cached other.log

此外還可以對整個目錄進行忽略

這個就是對整個temp進行忽略

他是支持一些簡單的Linux中正則表達式的

這就是一個簡單的案例

管理遠程倉庫

創(chuàng)建好github賬戶之后創(chuàng)建一個新的倉庫

?

創(chuàng)建好倉庫等會在下一步,想克隆遠程倉庫進行工作必須要先進行ssh密鑰的認證?

windows上生成ssh密鑰?

ssh-keygen -t rsa

一直回車

再去c盤下找到你的用戶目錄里?

有個.ssh的目錄里面id_rsa.pub 內(nèi)容就是我們需要的密鑰

里面這串就是密鑰

?Linux下獲取密鑰

?ssh-keygen -t rsa

一直回車

這個就是密鑰

將密鑰放入github

然后回到倉庫中

點擊ssh

然后回到我們設(shè)備上

克隆到本地

git clone git@github.com:KALItarro/git.git

不要寫我的地址,后面要寫你的倉庫地址

我這里創(chuàng)建了一個文件,加到了緩存區(qū),又進行了提交,最后推送到github上

現(xiàn)在我到github上看一下

可以成功看到內(nèi)容了推送成功

關(guān)聯(lián)本地倉庫

上一節(jié)展示了將倉庫克隆下來再進行同步

這次要展示的是將本地已有的倉庫推送到公網(wǎng)倉庫上

再去創(chuàng)建一個github倉庫

然后我在本地創(chuàng)建了一個倉庫

我再把他進行暫存,再提交一下本地就可以進行下一步了

復制一下倉庫地址

git remote add origin git@github.com:KALItarro/git1.git

git branch -M main

git push -u origin main

這就成功的傳上來了?? push 是上傳?? pull是拉取

上傳是把本地的數(shù)據(jù)上傳上去,也就是讓倉庫和本地的進行同步

拉取就是讓本地的倉庫和github倉庫進行同步

我去github里修改一下東西

現(xiàn)在我創(chuàng)建的100個文件都是空文件,我現(xiàn)在在github的在線倉庫中的66文件中寫入一下東西

?

再到本地進行拉取

?可以看到文件內(nèi)容被拉取下來了

他拉取下來的內(nèi)容會被合并,當本地也有同樣的文件可能會導致合并失敗

還可以用fetch他不會去進行合并

git分支的管理

git的倉庫默認是main

使用命令

git branch

可以看到目前就一個main分支

我現(xiàn)在創(chuàng)建3個文件,每創(chuàng)建一個提交一次

我這里使用的GitKraken可以看到每次提交的一個過程

創(chuàng)建分支

現(xiàn)在我創(chuàng)建一個名為dev的分支

git branch dev

現(xiàn)在就可以看到dev分支了,再去進入分支

進入分支

git checkout dev

使用checkout也是可以進入分支的,但是checkout他是可以恢復文件,有些情況下當文件名和分支名稱重復了之后,再去使用checkout恢復,他只會先去切換分支

官方因為這個操作,又出了個switch他和checkout都是可以進行切換分支,但是switch是專門用來切換分支的

git switch main

我再切換回dev

git switch dev

?我再到dev分支下創(chuàng)建一些文件,并提交

?再切換回main分支

git switch main

?

可以看到dev里的和main的不同步所以他們互不干擾

合并分支

我現(xiàn)在在main里 想把dev的內(nèi)容合并到main里 ?

git merge dev

如果想把main的合并進dev里的話,需要先切換到dev里然后執(zhí)行 git merge main

可以看到現(xiàn)在dev合并過來了

git log --graph --oneline --decorate --all

可以看到合并的情況

刪除分支

當我合并完分支之后?

發(fā)現(xiàn)dev分支依然存在

分支必須要進行手動刪除

git branch -d dev

-d是刪除已合并的分支,無法刪除未合并的

-D是強制刪除,都可以刪除

解決合并分支沖突

我先在main分支的main內(nèi)容為1

我切換到feach分支中去修改main1中的內(nèi)容并且去提交

git switch feach

再去提交,再換回main分支也去修改main1的文件內(nèi)容

也是去提交,再進行合并,由于都是在一個文件同樣的位置,所以合并就報錯

git merge feach

可以看到已經(jīng)報錯了

git diff

可以看到具體的內(nèi)容

main1中成這樣的,我們再這里進行合適的調(diào)整之后,再去提交就自動進行合并了

合并成功了

如果想終止合并的話可以使用

git merge --abort

柚子快報邀請碼778899分享:Linux:git的基礎(chǔ)操作

http://yzkb.51969.com/

參考閱讀

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/18862999.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機訪問

文章目錄