真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

linux中g(shù)it命令的作用是什么

本篇內(nèi)容主要講解“l(fā)inux中g(shù)it命令的作用是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“l(fā)inux中g(shù)it命令的作用是什么”吧!

成都創(chuàng)新互聯(lián)作為成都網(wǎng)站建設(shè)公司,專注網(wǎng)站建設(shè)公司、網(wǎng)站設(shè)計(jì),有關(guān)成都企業(yè)網(wǎng)站定制方案、改版、費(fèi)用等問題,行業(yè)涉及成都生料攪拌車等多個(gè)領(lǐng)域,已為上千家企業(yè)服務(wù),得到了客戶的尊重與認(rèn)可。

前言

HEAD指針 始終指向的是當(dāng)前分支的最新版本號(hào),HEAD^, HEAD^^, ^ 的個(gè)數(shù) n 或 HEAD~n,n 代表前 n 個(gè)版本號(hào)。

在項(xiàng)目中直接使用 linux rm 只會(huì)刪除工作區(qū)的文件,git rm 同在刪除工作區(qū)文件的同時(shí)刪除 stage 中的,或使用 git rm --cached 只刪除 stage 中的。

一些基本的操作

#全局配置
git config --global user.name "your username"
git config --global user.email youremail@email.com
git config --global color.ui true

#
mkdir git_proj & cd git_proj
git init
echo "# readme.md" >> README.md
git add README.md
git commit -m "readme commit"
# 添加遠(yuǎn)程倉庫 并給它取個(gè)別名 origin
git remote add origin git@github.com:username/repositoryName.git
# 將本地倉庫推送至 origin 的 master 分支并與此分支關(guān)聯(lián)(-u 的作用,后期不必在使用)
git push -u origin master

# 從遠(yuǎn)程倉庫 origin 的 master 分支獲取最新源碼并下載到 tmp 分支
git fetch origin master:tmp
# 比對(duì) tmp 分支于 master 分支做了哪些改動(dòng)
git diff master tmp
# 合并 tmp 分支到 master 分支
git merge tmp

# clone copy 一個(gè)完整的遠(yuǎn)端倉庫到本地
git clone git@github.com:username/repositoryName.git

# pull 獲取 origin 的 master 分支并直接和當(dāng)前分支合并
# 所以可能會(huì)發(fā)生沖突
git pull origin master

checkout

checkout 命令有兩個(gè)主要作用:切換分支 和 回滾文件到當(dāng)前的 stage 版本 或 repository 版本

1、切換分支

# 切換到 new_branch 分支
git checkout new_branch
# 創(chuàng)建并切換到 new_branch 分支
git checkout -b new_branch

2、回滾工作區(qū)的文件到最新 stage 版本 或 repository 版本,即從 stage 或 repository 中檢出最新版本

# -- 是文件標(biāo)示符 表名后面的參數(shù)為文件 避免產(chǎn)生切換 branch 的歧義
git checkout -- 

回滾時(shí)會(huì)先檢查 stage 中是否有對(duì)應(yīng)的文件,如果沒有才會(huì)使用 repository 中最新的版本。而當(dāng)對(duì)某文件進(jìn)行了多次修改和 add 操作后,使用 checkout 我們只能將文件回滾到最新一次的 add 的版本。

但在某些場景下我們可能想回滾到 repository 中的最新版本,怎么做呢?配合 reset 命令的可以很容易做到。
先給出命令:

git reset HEAD  & git checkout -- 

這樣就可以將工作區(qū)的 filename 回滾到 repository 中的最新版本了。具體原理我們將在實(shí)例中詳細(xì)的講解。

reset

git 的 reset 命令比較繞,需要耐心的理解。簡單來說,reset 有三種重置級(jí)別,我們需要準(zhǔn)確理解每個(gè)級(jí)別的作用。

soft:回退版本號(hào)。作用于 repository

mixed:回退版本號(hào),重置 stage。作用于 repository 和 stage

hard :回退版本號(hào),重置 stage,重置工作區(qū)源碼。作用于 repository,stage 和 workspace

我們簡單展示下 repository 的版本號(hào),我們以此為 demo 分別嘗試三個(gè)級(jí)別的 reset

git log

version D (HEAD) <-- HEAD指針
version C (HEAD^)
version B (HEAD^^)
version A (HEAD~3)

命令格式:

git reset [--soft|--mixed|--hard] version_no 

--soft:只是單純的移動(dòng) repository 的 HEAD指針 到制定版本號(hào)。stage 和工作區(qū)沒有任何變化。

# 將 HEAD 指針回滾至上一版本 使用 git log 你會(huì)發(fā)現(xiàn)提交日志退回到了上一版本號(hào)
git reset --soft HEAD^
#版本號(hào)現(xiàn)狀
version C <-- HEAD指針
version B
version A

--mixed:默認(rèn)選項(xiàng),移動(dòng) repository 的 HEAD指針 到指定版本號(hào),同時(shí)用此版本重置 stage 區(qū),所以可能會(huì)讓工作區(qū)的某些文件處于 unstage 狀態(tài)(當(dāng)工作區(qū)的文件與 repository 中的版本不一致時(shí))。注意,這里是可以指定文件的。soft 本身和文件無關(guān),hard 則是不能單獨(dú)指定文件,只能全部重置。

# HEAD指針 還是指向 HEAD 
git reset HEAD^2 
#版本號(hào)現(xiàn)狀
version B <-- HEAD指針
version A

HEAD指針 指向 version B,并且 stage 已經(jīng)被 version B 的文件重置,工作區(qū)則不受影響。

這里有個(gè)很實(shí)用的小技巧:

git reset version_no  & git checkout -- 

這兩個(gè)命令組合在一起可以讓工作區(qū)的指定文件回滾到 repository 中對(duì)應(yīng)的 version_no 版本。
如果 version_no 是 HEAD 的話那就可以回滾文件到最新一次的提交。

--hard:謹(jǐn)慎使用?。。∫苿?dòng) repository 的 HEAD指針 到指定版本號(hào),同時(shí)用此版本重置 stage 區(qū) 和 工作區(qū)源碼。這里要特別注意,工作區(qū)的源碼也會(huì)被覆蓋重置掉,你的修改會(huì)全部丟失。簡單來說就是將代碼徹底恢復(fù)到指定版本。hard 是沒辦法指定文件的,要么回滾,要么全回滾。

# HEAD指針 還是指向 HEAD 
git reset --hard HEAD^3
#版本號(hào)現(xiàn)狀
version A <-- HEAD指針

此時(shí),HEAD指針 指向 version A,并且 stage 和 工作區(qū)的文件已經(jīng)被 version A 的文件重置。整個(gè)項(xiàng)目的狀態(tài)完全回到提交 version A 時(shí)按下回車鍵的那一刻。

rm

git rm 不同于直接使用 rm,git rm 會(huì)刪除工作區(qū) 和 stage 區(qū)的內(nèi)容。注意:這里你沒辦法再使用 git checkout --  來回滾操作了,因?yàn)楣ぷ鲄^(qū)也沒有 filename 文件了,沒辦法與 repository 做關(guān)聯(lián),只能使用 git reset HEAD 來重置 stage 中的此文件,然后 git checkout --

git rm [--cached] [-r] [-f] 

這里就提示一點(diǎn),只想把 stage 中的文件刪除掉讓文件脫離 git 的管理,可以使用

git rm --cached 

此時(shí)工作區(qū)的 filename 并不會(huì)被刪除,但狀態(tài)會(huì)被改為 untracked,同時(shí) stage 會(huì)記錄下 filename 的狀態(tài)為刪除,提交的話版本庫將新增一個(gè) filename 被刪除掉的版本。

刪除 stage 中的文件和使用 reset命令 重置 stage 中的文件是有區(qū)別的,刪除會(huì)讓文件狀態(tài)更改為 untracked,而重置會(huì)讓文件狀態(tài)更改為 unstage(如果工作區(qū)和 stage 文件內(nèi)容不一致)。

小實(shí)例場景:

1、回滾工作區(qū)某文件到指定的 repository 版本

工作中,我們可能會(huì)針對(duì)某文件做多次修改和 add 到 stage 的操作,而后發(fā)現(xiàn)思路完全錯(cuò)了,需要重新設(shè)計(jì)開發(fā)。

比如文件 foo 的 A版 我提交了一次后,又進(jìn)行了 B版 和 C版 的兩次修改并 add 到了 stage 區(qū)。第三次修改后 D版 我發(fā)現(xiàn)一開始思路就錯(cuò)了,需要重新設(shè)計(jì)。那此時(shí)直接使用 git checkout -- foo 是拿不到最初的 A版 的,因?yàn)?stage 區(qū)還存放著 foo 的 C版。此時(shí)我們便可以使用 git reset HEAD foo 命令,repository 最新版本號(hào)中存放著 foo 的 A版,命令會(huì)在不移動(dòng) HEAD 的前提下,使用 foo A版 去重置 stage 區(qū)。命令執(zhí)行后 stage 區(qū)的 foo 文件已經(jīng)是 A版 了。我們?cè)偈褂?nbsp;git checkout -- foo 便可以將工作區(qū)的 foo D版 回滾至 A 版。即:

git reset HEAD foo & git checkout -- foo

HEAD 代表當(dāng)前版本,所以 HEAD指針 不會(huì)移動(dòng)。同時(shí) stage 區(qū)會(huì)被 repository 的當(dāng)前版本的 filename 重置,也就說 stage 區(qū) 存放的 filename 與 repository 中相同了。此時(shí)我們?cè)偈褂?nbsp;git checkout --  便可以回滾工作區(qū)的 filename 到 repository 的當(dāng)前版本。其實(shí)就是利用 reset --mixed 會(huì)重置 stage 區(qū),然后 checkout 會(huì)將 stage 區(qū)的文件檢出到工作目錄。當(dāng)然,reset 很靈活,可以回滾任意指定的版本。

其實(shí)如果只是回滾至當(dāng)前版本的話,還有個(gè)命令能實(shí)現(xiàn)相同的功能

git rm --cached  & git checkout -- 

git rm --cached  會(huì)將 stage 中的此文件刪除,文件狀態(tài)會(huì)變?yōu)?untracked,然后 checkout 時(shí)發(fā)現(xiàn) stage 中木有此文件,故會(huì)去 repository 的當(dāng)前版本中檢出此文件。

diff

  • git diff -- 工作區(qū) 比較 暫存區(qū)

  • git diff --cached -- 暫存區(qū) 比較 本地庫當(dāng)前版本

  • git diff HEAD~N -- 工作區(qū) 比較 本地庫第N個(gè)版本

  • git diff HEAD HEAD^ -- HEAD 比較 HEAD^

  • git diff master tmp -- master 比較 tmp

  • git diff SHA1 SHA2 -- 比較兩個(gè)歷史版本之間的差異

到此,相信大家對(duì)“l(fā)inux中g(shù)it命令的作用是什么”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!


網(wǎng)站名稱:linux中g(shù)it命令的作用是什么
標(biāo)題來源:http://weahome.cn/article/ihcogh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部