中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

wordpress文章圖片函數(shù)企業(yè)seo排名哪家好

wordpress文章圖片函數(shù),企業(yè)seo排名哪家好,wordpress自動推送,asp能不能作為網頁開發(fā)語言文章目錄 簡介前置概念.git目錄objects目錄refs目錄HEAD文件 resetreflog 與 reset --hardrevert(撤銷指定提交)stashdiff工作區(qū)與暫存區(qū)差異暫存區(qū)與HEAD差異工作區(qū)與HEAD差異其他比較 restore、checkout(代碼撤回)merge、rebase、cherry-pick 簡介 本文將介紹Git幾個核心概念…

文章目錄

  • 簡介
  • 前置概念
    • .git目錄
    • objects目錄
    • refs目錄
    • HEAD文件
  • reset
  • reflog 與 reset --hard
  • revert(撤銷指定提交)
  • stash
  • diff
    • 工作區(qū)與暫存區(qū)差異
    • 暫存區(qū)與HEAD差異
    • 工作區(qū)與HEAD差異
    • 其他比較
  • restore、checkout(代碼撤回)
  • merge、rebase、cherry-pick

簡介

本文將介紹Git幾個核心概念,和最常用的幾個內容操作命令:

  1. reset
  2. diff
  3. restore、checkout
  4. stash
  5. reflog
  6. revert
  7. cherry-pick(merge、rebase)

前置概念

首先我們來看一下幾個非常重要的前置概念

.git目錄

git目錄說明

git init

我們執(zhí)行上面命令就會生成一個.git目錄

git 工作區(qū)、暫存區(qū)、本地倉庫

【工作區(qū)】add就到【暫存區(qū)】commit就到【本地倉庫】

objects目錄

git objects目錄
objects目錄中保存的是add到暫存區(qū)和commit到本地倉庫的文件

refs目錄

git refs目錄

HEAD文件

HEAD是一個文本文件,你們內容是HEAD當前指向的分支:

ref: refs/heads/feature-view

reset

我們首先來看一下我們最常用的reset操作。

git reset操作示意圖

reset是重置,他重置的是commit

git reset [–soft | --mixed | --hard] HEAD

  1. –mixed:默認參數(shù),撤銷commit,所有commit和沒有commit的代碼放到工作區(qū)
  2. –soft:撤銷commit,所有commit和沒有commit的代碼放到暫存區(qū)
  3. –hard:撤銷commit,丟棄所有commit、工作區(qū)、暫存區(qū)代碼
# head表示當前版本,head^等價于head~1表示回退所有內容到上一個版本
git reset head^# 回退2個版本
git reset head~2# 將tree.txt這個文件的版本到上一個版本
git reset head^ tree.txt# 回退到指定commit,commit-id:4889036387
git reset 4889036387

我們最最常用的reset的2個操作:

  1. 感覺自己的commit有點問題,想重新commit,這個也可以用git commit --amend
  2. 自己push之前有提交,導致push失敗,pull之前要reset,這里可以用–soft參數(shù),這樣如果沒有沖突就不用再add了

reset多個版本的這種操作不建議做,除非沒有push到遠程倉庫,或者只有你一個人在提交代碼。

如果修改了遠程倉庫的commit,通常push是不行的,必須使用git push -f。

git push -f是一個非常危險的操作,會導致push之前,其他人push的新代碼丟失

git提示可以使用,是讓我們知道自己在干什么,而不是告訴我們git push不行,用git push -f 吧。

一般來說,規(guī)范的團隊都會把git push -f給禁用掉,不然一個人騷操作,代碼丟了,可能啥證據都沒有。

reflog 與 reset --hard

如果不小心執(zhí)行了reset --hard,有機會補救嗎?

git reset --hard head~2

答案是還能搶救一下:

首先:

git reflog

git reflog

再使用git reset --hard回退到reset的上一個版本

git reset --hard 8ca4549

commit的內容回來了,但是工作區(qū)和暫存區(qū)的內容掉了,找不回了

revert(撤銷指定提交)

revert是用來將某次的commit的內容,提取出來到工作區(qū)。

這樣就可以重新編輯,然后再一次提交。

主要使用場景就是:發(fā)現(xiàn)自己某一次提交有點問題,但是在這次提交之前已經有其他人提交了,怎么辦呢?

可以用revert

# 查看提交記錄
git log --oneline
# 撤銷指定的提交
git log revert b1c305d

git revert

revert并不會修改指定的commit,只會根據指定commit做逆操作

可以checkout到指定commit,看到內容并沒有少:

git checkout -b feature-view b1c305d

revert相當于將指定的commit合并到當前的head,還可能沖突。

所以,通常來說還不說直接改。唯一的作用可能就是記不清楚的commit的內容的時候,可以revert能自動幫你做。

stash

stash最常用的場景2個:

  1. 我們切分支的時候,有時候有修改不能切,就可以stash暫存
  2. pull代碼沖突,就可以先stash 再pull
# 默認暫存
git stash# 添加暫存提示信息
git stash save "暫存提示信息"# 查看暫存了哪些內容
git stash list# 查看最上面的暫存修改了哪些文件
git stash show
# 查看第2個暫存修改了哪些文件
git stash show stash@{1}# 查看最上面的暫存修改的具體內容
git stash show -p 
# 查看第2個暫存修改的具體內容
git stash show  stash@{1}  -p# 應用最上面的暫存,不刪除
git stash apply
# 應用第2個暫存
git stash apply stash@{1} # 應用最上面暫存,并刪除(沒有沖突才刪除)
git stash pop 
# 應用第2個暫存,并刪除(沒有沖突才刪除)
git stash pop stash@{1}# 刪除最上面暫存
git stash drop
# 刪除第2個暫存
git stash drop stash@{1}# 刪除所有暫存
git stash clear

diff

工作區(qū)與暫存區(qū)差異

git diff輸出信息說明

git diff
git diff b.txt# 暫存區(qū)的文件在objects中,可以通過下面的命令查看
git cat-file -p 8fec8c3
# 工作區(qū)的對象還沒有在objects中,會提示找不到對象
git cat-file -p 04a9f41# 可以通過HEAD查看已經commit的對象
git cat-file -p HEAD:b.txt
git cat-file -p d1d06ad

暫存區(qū)與HEAD差異

暫存區(qū)(stage)HEAD是當前分支最新的commit

git diff --cached
git diff --cached b.txt

工作區(qū)與HEAD差異

HEAD是當前分支最新的commit(通常就是master),也可以使用指定的commit-id

git diff HEAD
git diff HEAD b.txt# 工作區(qū)與指定commit的差異
git diff commit-id

其他比較

# 查看兩個commit之間的差異
git diff commit-id1 commit-id2# 查看不同分支的文件差異
git diff branch-name1:file-path branch-name2:file-path

restore、checkout(代碼撤回)

推薦使用restore,checkout還是讓他去切分支吧。

restore是有遞進關系:

  1. 可以從暫存區(qū)撤回到工作區(qū)使用–staged參數(shù)(相當于add的逆操作)
  2. 可以直接丟棄工作區(qū)的修改
# 丟棄工作區(qū)的修改
git restore a.txt
# 等價于
git checkout a.txt
# 丟棄工作區(qū)和暫存區(qū)所有修改,不能指定文件,指定文件就等價于git checkout filename.txt
git checkout -f# 將暫存區(qū)回退到工作區(qū)
git restore --staged a.txt

merge、rebase、cherry-pick

merge、rebase、cherry-pick主要是操作commit:

  1. merge合并代碼,注意合并解決沖突就可以
  2. rebase,優(yōu)化commit,注意修改的開始commit之后沒有其他人的提交就可以(如果提示需要git push -f時一定要注意)
  3. cherry-pick是從其他分支挑選commit到當前分支

這里我們重點說一下cherry-pick,比如一個任務我已經開發(fā)了一段時間了,但是臨時需要發(fā)一個修復版本,但是修復版本使用了我開發(fā)這段時間的代碼,這么辦呢?

這個時候就可以使用cherry-pick。

git cherry-pick說明
如果有沖突,先解決沖突:
git 解決沖突
繼續(xù)cherry-pick:
git cherry-pick continue

# 首先切到指定分支
git checkout b1
# 查看需要pick哪些提交
git log --oneline# 切回到pick分支
git checkout master# cherry-pick指定的commit
git cherry-pick 1f54b01 0fed6dd# 如果有沖突手動解決沖突,然后add
git add .# 繼續(xù)cherry-pick處理commit信息
git cherry-pick --continue
http://m.risenshineclean.com/news/63359.html

相關文章:

  • 上海網站推廣方法seo快速排名軟件價格
  • 邯鄲做網站推廣的地方培訓課程安排
  • 住房和城鄉(xiāng)建設部科技網站長沙優(yōu)化科技
  • 有了 ftp服務器密碼 怎么改網站seo搜索引擎優(yōu)化課程
  • thinksns網站開發(fā)安裝百度到手機桌面
  • 網址導航是什么瀏覽器蘋果aso優(yōu)化
  • 響水網站建設服務商2023免費推廣入口
  • app源碼網站網絡違法犯罪舉報網站
  • 增光路網站建設哪些店鋪適合交換友情鏈接
  • 網絡推廣培訓課程4萬重慶seo報價
  • 如何在網站插做視頻優(yōu)化大師使用方法
  • 網站建設中 html模板淘客推廣
  • 東莞快速做網站東莞網絡公司電話
  • 表單大師 做網站怎么查網站是不是正規(guī)
  • 網站后臺管理方便嗎新疆今日頭條新聞
  • 網站怎么做留言板百度網站官網網址
  • 做企業(yè)網站 目的二維碼引流推廣的平臺
  • 網站被降權的表現(xiàn)應用商店優(yōu)化
  • 清新縣城鄉(xiāng)規(guī)劃建設局網站百度域名購買
  • 肇慶市企業(yè)網站建設品牌網絡銷售工資一般多少
  • 網站建設包含哪些網站模板套用教程
  • 網站軟件有哪些網站建設制作教程
  • 河北搜恒不給做網站seo網站自動推廣
  • 張家港哪家做企業(yè)網站競價推廣營銷
  • 自己做網站需要什么seo自動優(yōu)化工具
  • 怎樣做網站發(fā)帖天津百度關鍵詞seo
  • 安徽合肥市城鄉(xiāng)建設委員會網站在線子域名二級域名查詢工具
  • 有什么做網站優(yōu)化公司互聯(lián)網推廣廣告
  • 揚州市住房和城鄉(xiāng)建設網站網絡建設推廣
  • 自己怎么做跨境電商優(yōu)化關鍵詞的方法有哪些