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

主頁 > 知識庫 > 一些你必須要熟練掌握的git命令

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

熱門標簽:4層電梯外呼控制系統設計 汨羅代理外呼系統 天津智能外呼系統排名 400電話申請找 電銷機器人加盟多少錢 宿松高德地圖標注 貴陽400電話到哪里去辦理 網絡電話外呼系統撥號軟件 申請400電話有什么用

前言

因為結合了開發中可能遇到的場景,篇幅較長,不過我覺得很有助于你理解 git 的運作機制,而不是死記硬背命令。

HEAD指針 始終指向的是當前分支的最新版本號,HEAD^, HEAD^^, ^ 的個數 n 或 HEAD~n,n 代表前 n 個版本號。

在項目中直接使用 linux rm 只會刪除工作區的文件,git rm 同在刪除工作區文件的同時刪除 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"
# 添加遠程倉庫 并給它取個別名 origin
git remote add origin git@github.com:username/repositoryName.git
# 將本地倉庫推送至 origin 的 master 分支并與此分支關聯(-u 的作用,后期不必在使用)
git push -u origin master

# 從遠程倉庫 origin 的 master 分支獲取最新源碼并下載到 tmp 分支
git fetch origin master:tmp
# 比對 tmp 分支于 master 分支做了哪些改動
git diff master tmp
# 合并 tmp 分支到 master 分支
git merge tmp

# clone copy 一個完整的遠端倉庫到本地
git clone git@github.com:username/repositoryName.git

# pull 獲取 origin 的 master 分支并直接和當前分支合并
# 所以可能會發生沖突
git pull origin master

checkout

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

1、切換分支

# 切換到 new_branch 分支
git checkout new_branch
# 創建并切換到 new_branch 分支
git checkout -b new_branch

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

# -- 是文件標示符 表名后面的參數為文件 避免產生切換 branch 的歧義
git checkout -- filename>

回滾時會先檢查 stage 中是否有對應的文件,如果沒有才會使用 repository 中最新的版本。而當對某文件進行了多次修改和 add 操作后,使用 checkout 我們只能將文件回滾到最新一次的 add 的版本。

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

git reset HEAD filename>  git checkout -- filename>

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

reset

git 的 reset 命令比較繞,需要耐心的理解。簡單來說,reset 有三種重置級別,我們需要準確理解每個級別的作用。

soft:回退版本號。作用于 repository

mixed:回退版本號,重置 stage。作用于 repository 和 stage

hard :回退版本號,重置 stage,重置工作區源碼。作用于 repository,stage 和 workspace

我們簡單展示下 repository 的版本號,我們以此為 demo 分別嘗試三個級別的 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:只是單純的移動 repository 的 HEAD指針 到制定版本號。stage 和工作區沒有任何變化。

# 將 HEAD 指針回滾至上一版本 使用 git log 你會發現提交日志退回到了上一版本號
git reset --soft HEAD^
#版本號現狀
version C -- HEAD指針
version B
version A

--mixed:默認選項,移動 repository 的 HEAD指針 到指定版本號,同時用此版本重置 stage 區,所以可能會讓工作區的某些文件處于 unstage 狀態(當工作區的文件與 repository 中的版本不一致時)。注意,這里是可以指定文件的。soft 本身和文件無關,hard 則是不能單獨指定文件,只能全部重置。

# HEAD指針 還是指向 HEAD 
git reset HEAD^2 filename>
#版本號現狀
version B -- HEAD指針
version A

HEAD指針 指向 version B,并且 stage 已經被 version B 的文件重置,工作區則不受影響。

這里有個很實用的小技巧:

git reset version_no filename>  git checkout -- filename>

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

--hard:謹慎使用!!!移動 repository 的 HEAD指針 到指定版本號,同時用此版本重置 stage 區 和 工作區源碼。這里要特別注意,工作區的源碼也會被覆蓋重置掉,你的修改會全部丟失。簡單來說就是將代碼徹底恢復到指定版本。hard 是沒辦法指定文件的,要么回滾,要么全回滾。

# HEAD指針 還是指向 HEAD 
git reset --hard HEAD^3
#版本號現狀
version A -- HEAD指針

此時,HEAD指針 指向 version A,并且 stage 和 工作區的文件已經被 version A 的文件重置。整個項目的狀態完全回到提交 version A 時按下回車鍵的那一刻。

rm

git rm 不同于直接使用 rm,git rm 會刪除工作區 和 stage 區的內容。注意:這里你沒辦法再使用 git checkout -- filename> 來回滾操作了,因為工作區也沒有 filename 文件了,沒辦法與 repository 做關聯,只能使用 git reset HEAD filename> 來重置 stage 中的此文件,然后 git checkout -- filename>

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

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

git rm --cached filename>

此時工作區的 filename 并不會被刪除,但狀態會被改為 untracked,同時 stage 會記錄下 filename 的狀態為刪除,提交的話版本庫將新增一個 filename 被刪除掉的版本。

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

小實例場景:

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

工作中,我們可能會針對某文件做多次修改和 add 到 stage 的操作,而后發現思路完全錯了,需要重新設計開發。

比如文件 foo 的 A版 我提交了一次后,又進行了 B版 和 C版 的兩次修改并 add 到了 stage 區。第三次修改后 D版 我發現一開始思路就錯了,需要重新設計。那此時直接使用 git checkout -- foo 是拿不到最初的 A版 的,因為 stage 區還存放著 foo 的 C版。此時我們便可以使用 git reset HEAD foo 命令,repository 最新版本號中存放著 foo 的 A版,命令會在不移動 HEAD 的前提下,使用 foo A版 去重置 stage 區。命令執行后 stage 區的 foo 文件已經是 A版 了。我們再使用 git checkout -- foo 便可以將工作區的 foo D版 回滾至 A 版。即:

git reset HEAD foo  git checkout -- foo

HEAD 代表當前版本,所以 HEAD指針 不會移動。同時 stage 區會被 repository 的當前版本的 filename 重置,也就說 stage 區 存放的 filename 與 repository 中相同了。此時我們再使用 git checkout -- filename> 便可以回滾工作區的 filename 到 repository 的當前版本。其實就是利用 reset --mixed 會重置 stage 區,然后 checkout 會將 stage 區的文件檢出到工作目錄。當然,reset 很靈活,可以回滾任意指定的版本。

其實如果只是回滾至當前版本的話,還有個命令能實現相同的功能

git rm --cached filename>  git checkout -- filename>

git rm --cached filename> 會將 stage 中的此文件刪除,文件狀態會變為 untracked,然后 checkout 時發現 stage 中木有此文件,故會去 repository 的當前版本中檢出此文件。

diff

  • git diff -- filename> 工作區 比較 暫存區
  • git diff --cached -- filename> 暫存區 比較 本地庫當前版本
  • git diff HEAD~N -- filename> 工作區 比較 本地庫第N個版本
  • git diff HEAD HEAD^ -- filename> HEAD 比較 HEAD^
  • git diff master tmp -- filename> master 比較 tmp
  • git diff SHA1 SHA2 -- filename> 比較兩個歷史版本之間的差異

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

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

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

巨人網絡通訊聲明:本文標題《一些你必須要熟練掌握的git命令》,本文關鍵詞  一些,你必,須要,熟練,掌握,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《一些你必須要熟練掌握的git命令》相關的同類信息!
  • 本頁收集關于一些你必須要熟練掌握的git命令的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲蜜臀av乱码久久精品| 国产日韩欧美不卡| 色综合天天综合网天天狠天天| 国产在线国偷精品免费看| 日本在线不卡视频一二三区| 午夜影院久久久| 樱桃视频在线观看一区| 日韩美女久久久| 一区二区三区四区激情 | 毛片av一区二区| 麻豆91精品91久久久的内涵| 日本不卡的三区四区五区| 麻豆成人免费电影| 国产成a人无v码亚洲福利| 国产成人av影院| 色综合久久综合中文综合网| 欧美最猛性xxxxx直播| 欧美三级乱人伦电影| 777a∨成人精品桃花网| 欧美岛国在线观看| 国产欧美日本一区二区三区| 亚洲人成影院在线观看| 图片区日韩欧美亚洲| 精油按摩中文字幕久久| 99久久久精品| 欧美一区二区三区思思人| 国产欧美视频在线观看| 亚洲久本草在线中文字幕| 日韩精品电影在线观看| 国产一区二区精品久久| 91日韩精品一区| 日韩一级片网站| 亚洲视频中文字幕| 激情欧美日韩一区二区| 91福利在线看| 国产欧美日韩在线看| 性欧美疯狂xxxxbbbb| 国产超碰在线一区| 5566中文字幕一区二区电影 | 在线观看亚洲a| 日韩欧美国产三级| 亚洲欧美另类图片小说| 国产一区二区毛片| 欧美日韩日日摸| 国产区在线观看成人精品| 午夜欧美2019年伦理| 成人黄色一级视频| 精品久久久久久无| 亚洲第一综合色| 91麻豆精品一区二区三区| 久久中文字幕电影| 青青青伊人色综合久久| 欧美在线观看一二区| 亚洲色图另类专区| 99免费精品视频| 日韩免费在线观看| 亚洲成a人片在线观看中文| voyeur盗摄精品| 久久嫩草精品久久久精品| 五月天国产精品| 欧美日韩一区二区三区四区五区| 国产精品污污网站在线观看| 国产美女在线精品| 久久久亚洲综合| 激情成人综合网| 精品国产网站在线观看| 日韩免费观看2025年上映的电影| 亚洲综合网站在线观看| 久久伊99综合婷婷久久伊| 91丝袜美腿高跟国产极品老师| 日韩中文欧美在线| 亚洲天堂精品在线观看| 精品剧情v国产在线观看在线| 成人国产精品免费观看动漫 | 一区二区三区在线视频免费| 国产成人午夜精品5599| 在线观看91精品国产入口| 一区二区三区久久| 欧美少妇xxx| 亚洲国产精品尤物yw在线观看| 色诱亚洲精品久久久久久| 亚洲视频免费在线观看| 一本到三区不卡视频| 亚洲制服丝袜一区| 欧美另类高清zo欧美| 麻豆精品一区二区三区| 国产午夜精品一区二区三区四区| 国产成a人亚洲| 亚洲色大成网站www久久九九| 91九色最新地址| 午夜一区二区三区视频| 日韩欧美一区二区在线视频| 国产成人午夜精品5599| 亚洲色图清纯唯美| 日韩一区二区精品| 成人国产精品免费| 香蕉成人啪国产精品视频综合网| 日韩欧美色综合| 国产.欧美.日韩| 亚洲高清视频中文字幕| 久久久蜜臀国产一区二区| 91网站视频在线观看| 日韩国产精品91| 亚洲欧洲av在线| 欧美tickling网站挠脚心| 99久久国产综合精品女不卡| 午夜精品123| 国产女人aaa级久久久级| 欧美精品一卡两卡| 成人99免费视频| 日本aⅴ精品一区二区三区| 国产精品狼人久久影院观看方式| 欧美影院午夜播放| 成人美女视频在线看| 欧美aaaaa成人免费观看视频| 亚洲视频在线观看一区| 久久精品视频免费观看| 91精品欧美福利在线观看| 成人一道本在线| 精品一区二区免费在线观看| 亚洲国产一区二区三区| 国产精品污www在线观看| 精品少妇一区二区三区视频免付费| 91亚洲男人天堂| 国产麻豆精品视频| 美女任你摸久久| 亚洲第一成年网| 亚洲天堂av一区| 国产精品久久久久影院老司| 精品理论电影在线观看| 4hu四虎永久在线影院成人| 91福利精品第一导航| av在线不卡电影| 国产白丝精品91爽爽久久| 久久精品国产色蜜蜜麻豆| 天天射综合影视| 水蜜桃久久夜色精品一区的特点| 亚洲精品国产无天堂网2021| 国产精品三级av| 国产日韩欧美电影| 亚洲国产精品成人久久综合一区| 日韩一区二区视频在线观看| 制服丝袜中文字幕亚洲| 欧美日韩一区高清| 欧美日韩国产综合久久| 欧美日韩国产一区| 欧美精品在线一区二区三区| 欧美日韩午夜在线视频| 欧美日韩中文精品| 欧美日韩精品三区| 91精品国产乱码久久蜜臀| 欧美一区二区久久| 精品国产一区二区三区不卡 | 欧美视频三区在线播放| 欧美午夜一区二区| 精品视频全国免费看| 欧美日韩视频一区二区| 日韩视频在线观看一区二区| 精品国产三级电影在线观看| 国产亚洲欧美日韩在线一区| 国产精品美女久久久久久2018| 中文字幕乱码亚洲精品一区| 亚洲人成人一区二区在线观看| 一区av在线播放| 免费在线观看成人| 国产尤物一区二区| 99这里只有久久精品视频| 在线视频一区二区三| 欧美视频精品在线观看| 日韩丝袜美女视频| 国产精品久久看| 亚洲综合色自拍一区| 麻豆精品视频在线观看免费| 粉嫩久久99精品久久久久久夜| 色8久久精品久久久久久蜜| 欧美一区二区日韩一区二区| 亚洲国产精品av| 午夜国产精品一区| 国产成人精品免费视频网站| 一本到三区不卡视频| 精品久久久久久久久久久院品网| 中文字幕第一区| 日产欧产美韩系列久久99| 国产成人啪午夜精品网站男同| 色中色一区二区| 久久久不卡影院| 三级一区在线视频先锋| 成人国产电影网| 精品国产一区二区三区久久久蜜月| 亚洲欧美另类久久久精品2019| 久久精工是国产品牌吗| 91麻豆精品秘密| 国产日韩精品一区二区浪潮av | 日韩国产一区二| 国产露脸91国语对白| 91精品欧美久久久久久动漫 | 久草在线在线精品观看| 欧美午夜寂寞影院| 国产精品久久久久久久久免费丝袜 | 国产网红主播福利一区二区|