婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > 一些你必須要熟練掌握的git命令

一些你必須要熟練掌握的git命令

熱門(mén)標(biāo)簽:4層電梯外呼控制系統(tǒng)設(shè)計(jì) 汨羅代理外呼系統(tǒng) 天津智能外呼系統(tǒng)排名 400電話申請(qǐng)找 電銷(xiāo)機(jī)器人加盟多少錢(qián) 宿松高德地圖標(biāo)注 貴陽(yáng)400電話到哪里去辦理 網(wǎng)絡(luò)電話外呼系統(tǒng)撥號(hào)軟件 申請(qǐng)400電話有什么用

前言

因?yàn)榻Y(jié)合了開(kāi)發(fā)中可能遇到的場(chǎng)景,篇幅較長(zhǎng),不過(guò)我覺(jué)得很有助于你理解 git 的運(yùn)作機(jī)制,而不是死記硬背命令。

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)程倉(cāng)庫(kù) 并給它取個(gè)別名 origin
git remote add origin git@github.com:username/repositoryName.git
# 將本地倉(cāng)庫(kù)推送至 origin 的 master 分支并與此分支關(guān)聯(lián)(-u 的作用,后期不必在使用)
git push -u origin master

# 從遠(yuǎn)程倉(cāng)庫(kù) 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)端倉(cāng)庫(kù)到本地
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 -- filename>

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

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

git reset HEAD filename>  git checkout -- filename>

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

reset

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

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

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

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

我們簡(jiǎn)單展示下 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 filename>

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

# 將 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 本身和文件無(wú)關(guān),hard 則是不能單獨(dú)指定文件,只能全部重置。

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

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

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

git reset version_no filename>  git checkout -- filename>

這兩個(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ì)全部丟失。簡(jiǎn)單來(lái)說(shuō)就是將代碼徹底恢復(fù)到指定版本。hard 是沒(méi)辦法指定文件的,要么回滾,要么全回滾。

# 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í)按下回車(chē)鍵的那一刻。

rm

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

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

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

git rm --cached filename>

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

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

小實(shí)例場(chǎng)景:

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

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

比如文件 foo 的 A版 我提交了一次后,又進(jìn)行了 B版 和 C版 的兩次修改并 add 到了 stage 區(qū)。第三次修改后 D版 我發(fā)現(xiàn)一開(kāi)始思路就錯(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è)偈褂?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 重置,也就說(shuō) stage 區(qū) 存放的 filename 與 repository 中相同了。此時(shí)我們?cè)偈褂?git checkout -- filename> 便可以回滾工作區(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 filename>  git checkout -- filename>

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

diff

  • git diff -- filename> 工作區(qū) 比較 暫存區(qū)
  • git diff --cached -- filename> 暫存區(qū) 比較 本地庫(kù)當(dāng)前版本
  • git diff HEAD~N -- filename> 工作區(qū) 比較 本地庫(kù)第N個(gè)版本
  • git diff HEAD HEAD^ -- filename> HEAD 比較 HEAD^
  • git diff master tmp -- filename> master 比較 tmp
  • git diff SHA1 SHA2 -- filename> 比較兩個(gè)歷史版本之間的差異

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

您可能感興趣的文章:
  • Git rebase命令使用實(shí)戰(zhàn)
  • Windows 版本Git命令行的使用詳解
  • Git pull(拉取)及push(上傳)相關(guān)命令介紹
  • 解決idea中Terminal終端無(wú)法執(zhí)行GIT命令+Terminal 中文亂碼問(wèn)題
  • .NET Corek中Git的常用命令及實(shí)戰(zhàn)演練
  • C#/.NET使用git命令行來(lái)操作git倉(cāng)庫(kù)的方法示例
  • Git命令的簡(jiǎn)單整理大全
  • 分享Git常用7大技巧和命令
  • Git代碼提交流程及git命令匯總(基礎(chǔ)篇)
  • Git的簡(jiǎn)單理解及基礎(chǔ)操作命令詳解
  • Git 常用命令清單(整理且詳細(xì))
  • 日常收集整理的Git常用命令
  • Git 命令行教程及實(shí)例教程(附github注冊(cè))
  • git checkout 命令使用詳解

標(biāo)簽:連云港 昌都 廣東 臨沂 海北 烏蘭察布 撫州 贛州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《一些你必須要熟練掌握的git命令》,本文關(guān)鍵詞  一些,你必,須要,熟練,掌握,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《一些你必須要熟練掌握的git命令》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于一些你必須要熟練掌握的git命令的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美精品自拍偷拍| 韩国精品主播一区二区在线观看| 国产精品一区2区| 国产欧美精品一区二区三区四区| 国产一区二区美女| 中文字幕色av一区二区三区| 99久精品国产| 亚洲国产美女搞黄色| 777午夜精品免费视频| 久久激情五月激情| 国产精品丝袜在线| 色8久久精品久久久久久蜜| 香蕉成人啪国产精品视频综合网| 69成人精品免费视频| 国产精品中文欧美| 一区二区三区四区不卡在线| 91精品久久久久久蜜臀| 国产成人免费在线观看| 亚洲伊人色欲综合网| 日韩丝袜情趣美女图片| 成人app在线观看| 午夜视频在线观看一区| 久久精品夜夜夜夜久久| 色香色香欲天天天影视综合网| 亚洲国产精品一区二区久久恐怖片| 91精品国产综合久久国产大片 | www国产精品av| 99久久精品国产一区| 日韩黄色免费电影| 国产精品色婷婷久久58| 欧美乱妇20p| 暴力调教一区二区三区| 午夜视黄欧洲亚洲| 国产精品理论在线观看| 在线播放一区二区三区| 不卡高清视频专区| 青青草97国产精品免费观看| 中文字幕一区二区在线观看| 日韩视频一区二区| 在线免费观看成人短视频| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 日韩一区二区精品葵司在线| 国产91精品欧美| 蜜桃视频在线观看一区| 亚洲欧美色一区| 国产亚洲一区二区三区在线观看| 欧美日韩精品系列| 91老司机福利 在线| 国产乱人伦偷精品视频免下载| 天堂午夜影视日韩欧美一区二区| 中文字幕日韩精品一区| 久久久久久久久久久黄色| 在线播放/欧美激情| 在线亚洲免费视频| www.久久精品| 国产成人亚洲综合a∨猫咪| 日本欧美久久久久免费播放网| 亚洲人成人一区二区在线观看| 国产亚洲欧美中文| 欧美精品一区在线观看| 在线成人av网站| 欧美日韩免费视频| 欧洲中文字幕精品| 色一情一伦一子一伦一区| 91在线国产观看| 97久久精品人人做人人爽| 国产高清成人在线| 国产老肥熟一区二区三区| 国产一区二区剧情av在线| 久久99久久精品| 蜜臀av一区二区三区| 三级欧美在线一区| 日本成人在线看| 热久久一区二区| 久久精品国产精品亚洲红杏| 美女网站一区二区| 狠狠色伊人亚洲综合成人| 国产伦精品一区二区三区免费| 韩国精品在线观看| 成人亚洲一区二区一| 成人性色生活片免费看爆迷你毛片| 盗摄精品av一区二区三区| 成人性生交大片免费看视频在线| 成人一级视频在线观看| 成人性生交大片| 色久综合一二码| 欧美日韩国产首页| 日韩色视频在线观看| 精品88久久久久88久久久| 国产亚洲一区字幕| 综合自拍亚洲综合图不卡区| 亚洲一区在线观看视频| 日韩在线播放一区二区| 国内精品国产成人| gogogo免费视频观看亚洲一| 91视频精品在这里| 337p亚洲精品色噜噜噜| 久久婷婷色综合| 国产精品欧美极品| 午夜日韩在线电影| 国产乱淫av一区二区三区| 色综合久久久网| 欧美一区二区三区日韩视频| 精品欧美久久久| 国产精品乱码人人做人人爱 | 国产一区二区伦理| 一本色道**综合亚洲精品蜜桃冫| 欧美日韩国产成人在线91| 久久综合九色综合欧美亚洲| 国产女同性恋一区二区| 亚洲午夜久久久久久久久久久| 日本va欧美va瓶| 99久久精品久久久久久清纯| 欧美军同video69gay| 亚洲国产经典视频| 日韩电影在线观看一区| 白白色亚洲国产精品| 91精品国产综合久久久久久久| 国产精品久久久一区麻豆最新章节| 亚洲二区视频在线| 成人av午夜电影| 欧美大片顶级少妇| 一区二区三区免费看视频| 国产美女娇喘av呻吟久久| 欧美三级日韩三级| 国产精品免费视频网站| 麻豆成人91精品二区三区| 91在线免费看| 亚洲国产经典视频| 久久精品国产免费| 欧美日本国产视频| 日韩毛片在线免费观看| 国产麻豆一精品一av一免费| 欧美日韩一区二区三区四区五区 | 亚洲欧洲综合另类在线| 麻豆免费看一区二区三区| 在线看国产一区二区| 国产精品国产三级国产普通话蜜臀| 日本欧美韩国一区三区| 日本韩国欧美三级| 国产精品免费aⅴ片在线观看| 久久狠狠亚洲综合| 7777精品伊人久久久大香线蕉最新版| 国产精品剧情在线亚洲| 国产呦萝稀缺另类资源| 日韩欧美一区二区不卡| 亚洲成人av电影| 91福利社在线观看| 自拍偷在线精品自拍偷无码专区 | 亚洲成av人片www| 91麻豆文化传媒在线观看| 日本一二三四高清不卡| 国产成人一区在线| 国产日韩v精品一区二区| 国内偷窥港台综合视频在线播放| 91麻豆精品国产91| 男女视频一区二区| 日韩欧美一区在线观看| 久久精品噜噜噜成人av农村| 欧美精品三级在线观看| 五月综合激情网| 欧美精品粉嫩高潮一区二区| 亚洲不卡av一区二区三区| 欧美日韩中文字幕一区二区| 亚洲精品视频在线观看免费| 色综合久久中文字幕| 一个色在线综合| 欧美日韩一区小说| 免费成人在线观看| 久久综合久久鬼色| 成人的网站免费观看| 国产精品国产自产拍高清av | 免费人成网站在线观看欧美高清| 欧美一区二视频| 久草中文综合在线| 国产欧美日韩卡一| 91蜜桃网址入口| 午夜久久久久久| 日韩欧美综合一区| 成人免费看视频| 亚洲免费在线看| 欧美妇女性影城| 精品一区二区三区视频在线观看 | 精品久久久三级丝袜| 韩国av一区二区三区在线观看| 国产日韩精品一区| 色88888久久久久久影院按摩 | 欧美成人艳星乳罩| 丁香婷婷综合色啪| 亚洲综合色噜噜狠狠| 欧美一区午夜精品| 国产99久久久国产精品潘金网站| 亚洲婷婷综合久久一本伊一区 | 激情伊人五月天久久综合| 亚洲国产成人在线| 欧美日韩dvd在线观看| 国产很黄免费观看久久| 亚洲激情图片qvod| 精品国产麻豆免费人成网站| 99久久国产综合精品麻豆|