中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
Git實(shí)戰(zhàn)

學(xué)習(xí)Git有一段時(shí)間了,一路上也一直在寫有關(guān)于Git方面的文章,但總覺(jué)得不是我想要的,就是感覺(jué)有點(diǎn)肉肉的,不夠直接,不夠馬上出效果,所以才有了這篇文章,當(dāng)然這文章可能會(huì)不斷更新和修正,希望讀者可以作為一個(gè)工具文章使用,我也會(huì)努力將其優(yōu)化的更加的符合工作場(chǎng)景

說(shuō)明

1、在[...]中的內(nèi)容,需要根據(jù)實(shí)際情況進(jìn)行修改

如何本地與遠(yuǎn)程建立信任聯(lián)系?

要解決這個(gè)問(wèn)題,需要使用SSH秘鑰的方式,接下來(lái)我就講一下怎么進(jìn)行配置。

1.在本地生成私鑰和公鑰

git config --global user.name "username"http://用戶昵稱git config --global user.email "emailAddress"http://github或者gitlib的郵箱地址ssh-keygen -t rsa -C "emailAddress"http://github或者gitlib郵箱賬戶地址

2.將電腦上的公鑰與遠(yuǎn)程倉(cāng)庫(kù)進(jìn)行綁定

本地會(huì)在上面的步驟中會(huì)生成一個(gè)id_rsa.pub(默認(rèn)情況是這個(gè)名稱),將該文件中的內(nèi)容copy到遠(yuǎn)程倉(cāng)庫(kù)github或gitlib的settings的SSH配置選項(xiàng)中。

Tittle名稱自由發(fā)揮

克隆工程

將遠(yuǎn)程的數(shù)據(jù)復(fù)制一份到本地

#【倉(cāng)庫(kù)copy地址】git clone [git@rep.xx.com:zoeminghong/hello.git]

本地新建Git工程

現(xiàn)在打算將本地的工程,放到Git倉(cāng)庫(kù)進(jìn)行托管了,并且遠(yuǎn)程Git倉(cāng)庫(kù)已經(jīng)創(chuàng)建了該項(xiàng)目的工程

#本地初始化工程,會(huì)生成一個(gè).git文件git init  #將本地的工程與遠(yuǎn)程倉(cāng)庫(kù)中的項(xiàng)目進(jìn)行關(guān)聯(lián)(不用關(guān)心項(xiàng)目名不一致的問(wèn)題)#此時(shí)本地工程與遠(yuǎn)程倉(cāng)庫(kù)已經(jīng)建立了聯(lián)系git remote add origin [git@rep.xx.com:zoeminghong/hello.git]  #將本地所有文件添加到Git中,進(jìn)行監(jiān)管git add .  #將內(nèi)容提交 【提交注釋】git commit -m "[...]"  #將本地的內(nèi)容同步到遠(yuǎn)程倉(cāng)庫(kù)中g(shù)it push -u origin master

顯示某一個(gè)特定的提交的日志

git show [十六進(jìn)制碼]

查看提交圖

git log --graph --pretty=oneline --abbrev-commit

查看沖突未處理的文件列表

git ls-files -u

本地代碼與遠(yuǎn)程代碼沖突問(wèn)題

本地代碼未commit的前提下,解決與遠(yuǎn)程代碼沖突問(wèn)題

git pull #失敗#將當(dāng)前修改進(jìn)行暫存起來(lái)git stash#或git stash save "[注釋]" #獲取最新的遠(yuǎn)程倉(cāng)庫(kù)代碼git pull #恢復(fù)暫存的內(nèi)容git stash pop#stash其他操作#恢復(fù)最近一次save的原工作區(qū)內(nèi)容,,并刪除stash記錄git stash pop#恢復(fù)最近一次save的原工作區(qū)內(nèi)容,但不刪除stash記錄git stash apply#刪除stash記錄git stash drop#獲取暫存列表git stash list

但,上面的也可能存在問(wèn)題,由于本地存在未被追蹤的文件,并且遠(yuǎn)程倉(cāng)庫(kù)pull的時(shí)候也存在同名的文件,就會(huì)存在pull失敗,在這種情況下,在git stash后面追加 --include-untracked,會(huì)將遠(yuǎn)程的文件與本地的文件融合

stash只會(huì)保存當(dāng)前索引和工作目錄的狀態(tài),其保存的是add和commit的中間狀態(tài),如果還沒(méi)有被git追蹤的文件,是不會(huì)被記錄的

如果我對(duì)某文件進(jìn)行了修改,但我不想要push到遠(yuǎn)程倉(cāng)庫(kù),同時(shí)我又想獲取最新的修改記錄

git stash savegit pull --rebase

如果暫存內(nèi)容現(xiàn)在不想在當(dāng)前分支恢復(fù)了,而是想單獨(dú)起一個(gè)分支

git stash branch [newBranchName]

想要查看當(dāng)前工作區(qū)與暫存狀態(tài)內(nèi)容區(qū)別

git stash show -p stash{0}

本地代碼已經(jīng)commit后,解決與遠(yuǎn)程代碼沖突問(wèn)題

# 獲取遠(yuǎn)端庫(kù)最新信息 【分支名稱】git fetch origin [master] # 做比較git diff [本地分支名] origin/[遠(yuǎn)程分支名] # 拉取最新代碼,同時(shí)會(huì)讓你merge沖突git pull

方法2

# 獲取最新代碼到tmp分支上 [遠(yuǎn)程的分支:本地分支]git fetch origin [master:tmp]  # 當(dāng)前分支與tmp進(jìn)行比較git diff tmp  # 修改沖突部分,進(jìn)行本地commit操作git add .  git commit -m "[...]"  # 將tmp中內(nèi)容合并到當(dāng)前分支中g(shù)it merge tmp  # 刪除分支git branch -d tmp

刪除文件

保留副本操作

git rm --cache [文件名]

直接文件刪除

git rm [文件名]

后悔藥

還原到最近的版本,廢棄本地做的修改(當(dāng)前文件修改沒(méi)有進(jìn)行add操作的時(shí)候)

git checkout -- [文件名]

取消已經(jīng)暫存的文件(撤銷先前"git add"的操作)

#當(dāng)前HEAD,返回到上一次commit點(diǎn),不會(huì)有任何日志記錄git reset HEAD --hard
git reset HEAD [文件名]

回退所有內(nèi)容到上一個(gè)提交點(diǎn)

#最近內(nèi)容已經(jīng)commit的情況下git reset HEAD^ --hard

回退這個(gè)文件的版本到上一個(gè)版本

#最近內(nèi)容已經(jīng)commit的情況下git reset HEAD^ [文件名]

將本地的狀態(tài)回退到和遠(yuǎn)程的一樣

git reset –-hard origin/[分支名]

回退到某個(gè)版本

# 獲取所有的HEAD更改信息的sha1值git refloggit reset [SHA1]

回退到上一次提交的狀態(tài),按照某一次的commit完全反向的進(jìn)行一次commit.(代碼回滾到上個(gè)版本,并提交git)

git revert HEAD

使用reset是不會(huì)有日志記錄的,revert則會(huì)要提交一個(gè)記錄點(diǎn)

修改最新的提交信息(修改提交的注釋信息)

git commit --amend

本地分支與遠(yuǎn)程分支相連

本地創(chuàng)建了一個(gè)分支,遠(yuǎn)程也有一個(gè)分支,進(jìn)行兩者關(guān)聯(lián)

git checkout -b [本地分支名] origin/[遠(yuǎn)程分支名]

Tag使用

我們?cè)陂_(kāi)發(fā)的時(shí)候,可能存在線上發(fā)布了一個(gè)版本,需要給這個(gè)版本代碼打上一個(gè)標(biāo)簽,到時(shí)候可以方便回退到這個(gè)版本

# 創(chuàng)建tag 【tag名】git tag v1.0  # 查看存在的taggit tag  # 將tag更新到遠(yuǎn)程git push origin --tags

接下來(lái)就講解回退到具體的tag

# 保存當(dāng)前編程環(huán)境git stash  # 切換回某個(gè)tag(v1.0)git show v1.0  #【sha1】git reset --hard [2da7ef1]  # 創(chuàng)建分支來(lái)保存tag的數(shù)據(jù),tag只是一個(gè)節(jié)點(diǎn)的標(biāo)記,無(wú)法承載數(shù)據(jù)的修改記錄,【分支名】git checkout -b [bill]  # 接著你就可以在這里改啊改了

切換回主干或其他分支

# 切換分支git checkout master  # 日志記錄git reflog  # 顯示stash列表git stash list  # 恢復(fù)之前的工作環(huán)境代碼git stash apply  # 刪除stashgit stash drop

分支與主干合并

git add .  git commit -m "v1.1"  # bill分支合并到當(dāng)前分支【分支名】git merge [bill]

關(guān)于代碼的比較

# 顯示暫存區(qū)和工作區(qū)的差異git diffgit diff [filename] # 顯示暫存區(qū)和上一個(gè)commit的差異【文件名】git diff --cached [hello.txt]git diff --cached [HEAD或者SHA1] [filename] # 顯示工作區(qū)與當(dāng)前分支最新commit之間的差異git diff HEADgit diff [HEAD或分支名] [filename] # 顯示兩次提交之間的差異【分支名】git diff [first-branch]...[second-branch]git diff [SHA1] [SHA1] [filename]#分支之間的差異#分支之間的差異git diff [分支1] [分支2]git diff [分支1]..[分支2]#指定文件git diff [分支1]:[file1] [分支2]:[file2]#查看指定提交范圍內(nèi)的所有變更文件情況git diff --stat master~[范圍值] [分支名]git diff --stat master~5 tmp//還可以值查看具體某一個(gè)文件git diff --stat master~5 tmp test.txt

定位哪個(gè)提交點(diǎn)導(dǎo)致文件出現(xiàn)問(wèn)題

#先確定范圍git bisect bad  #一般都是當(dāng)前HEAD是壞提交【sha1】git bisect good a794f9bd96f06b57b4c10433e4d6abb3f0855749 #上面的步驟就是確定范圍的,接下來(lái)就是回答git的問(wèn)題,他指定的提交點(diǎn)是好的還是壞的git bisect good//如果是壞的,就bad,直到你找到哪個(gè)提交點(diǎn)導(dǎo)致出現(xiàn)問(wèn)題#查看維護(hù)日志git bisect log#完成操作后,要回切到工作分支上git branchgit bisect resetgit branch

檢查文件中每一行代碼是誰(shuí)提交的記錄

git blame -L [起始行數(shù)],[文件名]

創(chuàng)建分支

#以當(dāng)前節(jié)點(diǎn)作為分支的開(kāi)始起點(diǎn)git branch [分支名]#以SHA1作為分支開(kāi)始起點(diǎn)git branch [分支名] [SHA1]#創(chuàng)建并切換分支,sha1以哪個(gè)節(jié)點(diǎn)作為分支的起點(diǎn)git checkout -b [分支名] [SHA1]

重命名分支

在git中重命名遠(yuǎn)程分支,其實(shí)就是先刪除遠(yuǎn)程分支,然后重命名本地分支,再重新提交一個(gè)遠(yuǎn)程分支。

//顯示現(xiàn)在分支git branch -av//刪除遠(yuǎn)程要?jiǎng)h除的分支develgit push --delete origin devel//重命名本地分支devel為developgit branch -m devel develop//推送到遠(yuǎn)程git push origin develop

這是由于在 github 中,devel 是項(xiàng)目的默認(rèn)分支。要解決此問(wèn)題,這樣操作:

  1. 進(jìn)入 github 中該項(xiàng)目的 Settings 頁(yè)面;

  2. 設(shè)置 Default Branch 為其他的分支(例如 master);

  3. 重新執(zhí)行刪除遠(yuǎn)程分支命令。

查看遠(yuǎn)程倉(cāng)庫(kù)分支

git branch -a

獲取遠(yuǎn)程倉(cāng)庫(kù)分支代碼

git fetch origin [遠(yuǎn)程倉(cāng)庫(kù)分支名] [本地倉(cāng)庫(kù)分支名]

刪除本地分支

git branch -d [分支名]

查看分支

git show-branch#或git branch

分支前面都存在*或者!

*表示當(dāng)前分支

在–之后的是記錄分支的提交信息

*+ [tmp] 遠(yuǎn)程2就表示該提交存在于兩個(gè)分支中

顯示某分支中某文件內(nèi)容

git show [分支名]:[文件名]

顯示某個(gè)節(jié)點(diǎn)某文件的內(nèi)容

git show [SHA1] [文件名]

關(guān)于切換分支的邏輯

如果存在未被git追蹤的文件,git是會(huì)將其忽略的

如果存在已追蹤且被修改或刪除,必須commit之后,才能切換

如果要不計(jì)后果的情況,強(qiáng)切,加-f

將當(dāng)前的分支修改的內(nèi)容同步到其他的分支上

假如你希望變更作用于另一個(gè)分支上,但由于當(dāng)前分支如果不提交,是無(wú)法切換到另一個(gè)分支上的

git checkout -m [另一個(gè)分支名]

將一個(gè)區(qū)間的提交,移植到另一個(gè)分支

#當(dāng)前分支,得到dev分支中dev~2之前的所有提交內(nèi)容git cherry-pick dev~2

cherry-pick會(huì)生成一條新的提交記錄


系列文章:

git rebse的變基提交
Git如何幫你查原因
從使用場(chǎng)景學(xué)Git

更多內(nèi)容可以關(guān)注微信公眾號(hào),或者訪問(wèn)AppZone網(wǎng)站

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Git常用命令
程序員必備基礎(chǔ):Git 命令全方位學(xué)習(xí)
git命令大全
Git 常用命令總結(jié)
Git 使用的簡(jiǎn)單匯總
25個(gè)Git用法技巧
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服