欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報(bào)激活碼778899分享:大數(shù)據(jù) git的使用

柚子快報(bào)激活碼778899分享:大數(shù)據(jù) git的使用

http://yzkb.51969.com/

基本原理 Git的設(shè)計(jì)哲學(xué) 追求最強(qiáng)性能 分布式 - 不依賴中心服務(wù)器,幾乎所有操作都是本地執(zhí)行

快照而不是diff - 與幾乎所有其它版本控制系統(tǒng)的重要區(qū)別只添加而不刪除- 總是可逆hash索引 - SHA-1, 40 digit hex 可以同時(shí)完成校驗(yàn)三種狀態(tài) committed, modified, staged (初學(xué)者容易搞糊涂)

四種對(duì)象 commit tree blob tag blob – 文件 tree – 目錄 commit – tree, meta, pointer 構(gòu)成一個(gè)小的文件系統(tǒng) 暫時(shí)無法在文檔外展示此內(nèi)容 cd .git/object/ git cat-file -t git cat-file -p

為什么改一下commit msg, commit id就變了? git commit --amend 修補(bǔ), 修改對(duì)象指針 git reflog 找到剛才的commit 使用別名 git config --global alias.br branch git config --global alias.ci commit ~/.gitconfig [alias] co = checkout ci = commit cia = commit --amend br = branch di = diff lo = log --oneline sb = submodule

git clone -depth=10 查看歷史 輔助選項(xiàng) git log --color --no-decorate --decorate 是否顯示tag, branch git log --stat git log --graph 樹狀圖 git log -p git log -p --patience 生成更精確的diff git log --merges --no-merges 只顯示/不顯示 合并節(jié)點(diǎn)

git log -g git reflog 查看歷史丟失的節(jié)點(diǎn), 包括commit --amend

author和committer 的區(qū)分 git log --pretty=full 同時(shí)顯示author和committer

查看分支的差別 git log --oneline --cherry-pick A…B (注意3個(gè)點(diǎn))

git log --oneline --left-right --cherry-mark A…B (注意3個(gè)點(diǎn))

git log --first-parent 只看主線改動(dòng)

git log --reverse 從舊到新 格式化 git log --pretty=“%h %an %s” 輸出想要的字段和順序 查看統(tǒng)計(jì) git shortlog -n -s 按作者提交的committer數(shù)排序顯示每個(gè)人的提交 代碼提交 暫存

臨時(shí)修改一個(gè)bug git stash [push] git stash pop git stash -p

提交部分代碼 git add git add -p git commit

變基到最新的節(jié)點(diǎn) git checkout master git checkout -b

…修改代碼… git fetch git rebase master 或 git pull --rebase 設(shè)置默認(rèn)pull rebase ~/.gitconfig [pull] rebase = true 撤回 git revert 去掉某個(gè)提交,實(shí)際上是生成一個(gè)新的反向的commit

整理歷史提交 修改剛提交commit 把改動(dòng)合入到剛提交的commit, 同時(shí)可修改commit message git commit --amend 會(huì)生成新的節(jié)點(diǎn),當(dāng)前分支指向新的節(jié)點(diǎn),原有節(jié)點(diǎn)丟失(可以git log -g 或git reflog中看到)

把剛提交的幾個(gè)commit合成一個(gè) git reset HEAD~4 git commit -a -m “xxxxx”

把當(dāng)前工作分支回退到任何一個(gè)commit git reset --hard 丟棄未提交的所有改動(dòng) git reset --hard HEAD^^ 退回到前兩個(gè)節(jié)點(diǎn) git reset --hard 同步到遠(yuǎn)程分支最新節(jié)點(diǎn)

拆分已提交commit git reset -p HEAD^ git commit --amend

把選y的改動(dòng)抽出, git commit --amend后,原有commit只留下部分,剩下改動(dòng)可以提交新的commit或拋棄

本地分支重新整理 git rebase --whitespace=fix HEAD^ git rebase -i HEAD~5

git rebase --continue

定位問題

某個(gè)版本發(fā)現(xiàn)了以前不存在一個(gè)問題,很難直接定位,怎么辦?對(duì)某些代碼有疑問,怎么找到最初是誰寫的和他討論? 二分查找問題引入commit git bisect git bisect start [new bad] [old good] 標(biāo)記出問題壞的節(jié)點(diǎn)和好的起始節(jié)點(diǎn),checkout到中間節(jié)點(diǎn) git bisect good 測(cè)試沒問題,標(biāo)記成好的,checkout到新的中間節(jié)點(diǎn) git bisect bad 測(cè)試有問題,標(biāo)記成壞的,checkout到新的中間節(jié)點(diǎn) git bisect log

自動(dòng)定位 執(zhí)行以下命令 git bisect run myscript.sh 自動(dòng)執(zhí)行測(cè)試,根據(jù)返回值決定checkout下一個(gè)commit來測(cè)試。 myscript退出值 0表示測(cè)試沒問題, 1-127表示失敗. 返回125表示不可測(cè)試(比如編譯不通過), 跳過這個(gè)commit.

找到引入代碼的人 git blame 找到誰引入了問題,區(qū)分是author還是committer git blame -M 追蹤代碼行的移動(dòng), 可以找到原始改動(dòng),而不是挪到那些行的commit。 git blame -C 追蹤文件中的重復(fù)代碼行拷貝 git blame -C -C 追蹤同一個(gè)commit中從其它文件拷貝過來的行。 git blame -C -C -C 追蹤所有commit中從其它文件拷貝過來的行。 除了找到最原始是誰引入的代碼, 也可用來檢測(cè)是否有不必要復(fù)制代碼。

分支的使用和管理

分支合并和變基操作各是什么含義? 分支創(chuàng)建與關(guān)聯(lián) git checkout -b git checkout -B git branch -d / -D 刪除分支 git branch --set-upstream-to | git branch -u 和遠(yuǎn)程建立關(guān)聯(lián) git branch --contain 找到包含某個(gè)commit的分支 git merge-base 找到兩個(gè)分支的分叉點(diǎn)

建議創(chuàng)建了本地個(gè)人臨時(shí)分支,每天推到服務(wù),備份代碼,可用不同的remote服務(wù)器來存放個(gè)人臨時(shí)分支 多remote

可以用不同的服務(wù)器或相同服務(wù)器不同git路徑來存放不同的分支,區(qū)分管理權(quán)限可以用專門的服務(wù)器來存放個(gè)人臨時(shí)分支備份,每天自動(dòng)提交和push git remote add auto git@gitlab.hobot.cc:auto/system/hobot-system/kernel-4.14 git remote -v

git push auto mybrach:mybranch 注意對(duì)應(yīng)關(guān)系 git config -l

分支合并 無法復(fù)制加載中的內(nèi)容 主線歷史產(chǎn)生分叉點(diǎn),追溯比較麻煩,只能把merge節(jié)點(diǎn)當(dāng)作一個(gè)commit. 沖突解決集中在一個(gè)merge節(jié)點(diǎn)中,merge節(jié)點(diǎn)中修改可能混合了多個(gè)模塊的改動(dòng)。 比較分支時(shí),merge節(jié)點(diǎn)的改動(dòng)不容易拆分 分叉時(shí)間較長(zhǎng)含有很多commit的分支用merge會(huì)比較省力,因?yàn)橹虚g可能有對(duì)某一個(gè)文件反復(fù)修改的多個(gè)commit, merge時(shí)只需要處理一次。 理解Fastforward 概念 git merge --ff (允許fastfoward合并,默認(rèn),自動(dòng)) --no-ff(不允許)

不產(chǎn)生合并節(jié)點(diǎn) 無法復(fù)制加載中的內(nèi)容 git merge --squash 把分支合成一個(gè)commit,再合過來(實(shí)際上就沒有分支了) merge的原理 兩條修改歷史的合并 git merge 3-way merge的工作方式 只比較分支頭結(jié)點(diǎn)和共同的祖先節(jié)點(diǎn) 對(duì)比兩邊的修改,無沖突合入, 有沖突,顯示兩邊各自的改動(dòng)

沖突解決技巧 通過mergetool命令調(diào)用特定的編輯器 git mergetool --tool= 修改完會(huì)自動(dòng)調(diào)用git add git log --merge -p 顯示有沖突的文件

使用diff3格式,更清楚的看到?jīng)_突的地方 git config --global merge.conflictStyle diff3 example: ours

@@ -505,8 +505,6 @@ pid_t pid_nr_ns(struct pid *pid, struct pid_namespace *ns)

if (pid && ns->level <= pid->level) {

upid = &pid->numbers[ns->level];

- if (upid->ns == ns)

- nr = upid->nr;

}

return nr;

}

theirs

@@ -505,8 +505,9 @@ pid_t pid_nr_ns(struct pid *pid, struct pid_namespace *ns)

if (pid && ns->level <= pid->level) {

upid = &pid->numbers[ns->level];

- if (upid->ns == ns)

+ if (upid->ns == ns) {

nr = upid->nr;

+ }

}

return nr;

}

Merged

@@ -505,6 +505,15 @@ pid_t pid_nr_ns(struct pid *pid, struct pid_namespace *ns)

if (pid && ns->level <= pid->level) {

upid = &pid->numbers[ns->level];

+<<<<<<< HEAD

+||||||| merged common ancestors

+ if (upid->ns == ns)

+ nr = upid->nr;

+=======

+ if (upid->ns == ns) {

+ nr = upid->nr;

+ }

+>>>>>>> feat2

}

return nr;

}

Merge的策略 完全放棄分支改動(dòng) git merge -s ours topic_branch 完全同步上游 git checkout -b tmpbranch master git merge -s ours mybranch git checkout mybranch git reset --hard tmpbranch 優(yōu)先用哪個(gè)分支 git merge -Xours git merge -Xtheirs 減少?zèng)_突 git merge -Xignore-space-change Merge的風(fēng)險(xiǎn)

A分支上cherry-pick B分支一個(gè)commit, 但B分支后來又了revert了 已經(jīng)cherry-pick部分上游patch,再進(jìn)行merge, 可能后續(xù)的commit改回了這個(gè)commit中增加、修改,刪除的行。 }

//FOCUS ON

- spin_lock_irqsave(&chan->vc.lock, flags);

+ raw_spin_lock_irqsave(&chan->vc.lock, flags);

ret = dma_cookie_status(dchan, cookie, txstate);

vd = vchan_find_desc(&chan->vc, cookie);

if (vd) {

//FOCUS ON

- raw_spin_lock_irqsave(&chan->vc.lock, flags);

+ spin_lock_irqsave(&chan->vc.lock, flags);

ret = dma_cookie_status(dchan, cookie, txstate);

vd = vchan_find_desc(&chan->vc, cookie);

if (vd) {

Cherry-pick 單獨(dú)拿從別的分支拿1個(gè)或多個(gè)patch合到當(dāng)前分支 git cherry-pick git cherry-pick master~4 master~2 拿主線上的最新第5個(gè)到第2個(gè)commit過來 git cherry-pick --continue -n 不提交,只改變當(dāng)前working tree 有沖突可以用git mergetool 解決 git cherry-pick --continue git cherry-pick feat-a~2 feat-a 拿feat-a的最新3個(gè)commit過來 無法復(fù)制加載中的內(nèi)容

分支變基 類似于cherry-pick, 只是把當(dāng)前分支移動(dòng)。 無法復(fù)制加載中的內(nèi)容 feat-a分支的歷史都變了 每次push到服務(wù)器前,都做一次rebase. 如果沒有創(chuàng)建個(gè)人分支,則push前, git pull --rebase 好處: 主線保持線性歷史,沒有分叉,每個(gè)commit的修改明確 分支上如有cherry-pick的commit, rebase時(shí)會(huì)消除 歷史回溯比較清晰,需要取中間任何一個(gè)commit作cherry-pick比較清晰 沖突解決分散在每一個(gè)commit中,revert一個(gè)commit, 更不容易沖突 適合分叉時(shí)間不長(zhǎng)的功能分支,bugfix分支,個(gè)人本地開發(fā)分支 git merge --no-ff 其它技巧 向上游貢獻(xiàn) git format-patch git am 也可以用于無直接服務(wù)器連接的同步 子模塊 可以用來管理依賴的項(xiàng)目,比如某個(gè)庫項(xiàng)目 git submodule add 增加一個(gè)依賴的git git clone --recursive clone時(shí)把依賴模塊同時(shí)clone出來 git submodule init git submodule update

重接歷史 git replace 把一棵樹分成兩個(gè)git, 需要的時(shí)候,又能把歷史接起來。 大部分人不需要clone一棵全歷史樹 git remote add git replace

工作樹 如果你想在一臺(tái)機(jī)器上同時(shí)在某個(gè)git的兩個(gè)分支上工作, 不需要重復(fù)clone一份,節(jié)省時(shí)間和空間 git worktree add …/mytask git worktree list

stg 在git外維護(hù)一系列patch stg init stg uncommit stg pop stg series

stg uncommit stg uncommit stg pop -a 彈出兩個(gè)commit 2個(gè)commit變成棧里的兩個(gè)patch

stg push -a 全部又推上去了 用處

在主線外維護(hù)一系列patch, 測(cè)試并進(jìn)行bugfix, fix合入對(duì)應(yīng)的patch, 準(zhǔn)備upstream維護(hù)一系列debug patch, 需要哪一個(gè)時(shí),推哪一個(gè)上去

柚子快報(bào)激活碼778899分享:大數(shù)據(jù) git的使用

http://yzkb.51969.com/

好文閱讀

評(píng)論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19438721.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄