国产三区四区_亚洲精品国产精品色欲AV_青青操av在线_黄的网站在线观看_中文字幕无码无遮挡在线看_日韩精品中文字幕吗一区二区

IT之道-艾銻知道

您當(dāng)前位置: 主頁 > 資訊動(dòng)態(tài) > IT知識(shí)庫 >

艾銻知識(shí) | 如何用 Git 回退代碼


2020-02-18 16:01 作者:admin 瀏覽量:
疫情即將結(jié)束,如何提升企業(yè)工作效率
艾銻無限免費(fèi)為企業(yè)提供IT服務(wù)
 
 
這幾天如果大家關(guān)注疫情數(shù)據(jù)的變化,可以看到新增確診病例在持續(xù)下降,這意味著疫情很快就會(huì)結(jié)束,大家再也不用在家辦公了,到不是在家工作有什么不好,但人類發(fā)明工作不簡簡單單只是為了實(shí)現(xiàn)結(jié)果的達(dá)成,還有一個(gè)非常重要的因素就是人與人之間的聯(lián)結(jié),這是人類內(nèi)在價(jià)值的需求,透過工作與人接觸,共同感受彼此的能量流動(dòng),從而達(dá)到自我價(jià)值的實(shí)現(xiàn),這就像演員都渴望登上奧斯卡的舞臺(tái),來實(shí)現(xiàn)自我角色的認(rèn)可一樣。
 
 
在家辦公,畢竟是家,松、散、懶以及無所謂的態(tài)度會(huì)隨時(shí)產(chǎn)生,我相信不是每個(gè)人都會(huì)這樣,但大部分人會(huì)如此,因?yàn)榧冶緛砭褪欠潘傻哪芰繄觯酉聛泶蠹壹磳⒒氐焦荆氐阶约旱墓ぷ鲘徫唬y免會(huì)把在家的狀態(tài)帶入工作中,如果每個(gè)人都是這樣的狀態(tài),企業(yè)很快會(huì)陷入新的窘境,所以沒有狀態(tài),也不會(huì)有好的結(jié)果,狀態(tài)就是一切。
 
團(tuán)隊(duì)的勢(shì)氣決定企業(yè)整體的戰(zhàn)斗力,那如何調(diào)整陸陸續(xù)續(xù)回來的團(tuán)隊(duì)成員呢?
 
 
 
艾銻無限對(duì)中小企業(yè)有三條建議:
 
第一,重新梳理整個(gè)企業(yè)的戰(zhàn)略,疫情的發(fā)生,是否給你企業(yè)帶來了變化?如果有那是什么?是否需要調(diào)整自己原有的戰(zhàn)略方向來應(yīng)對(duì)疫情發(fā)生后的影響?
 
第二,重新明確每個(gè)人的目標(biāo)和目的,目標(biāo)就是重回企業(yè)的人要干什么?干到什么程度?什么時(shí)間可以看到這個(gè)結(jié)果的發(fā)生?目的就是為什么要實(shí)現(xiàn)這個(gè)目標(biāo)?這個(gè)目標(biāo)與自己的意義是什么?與企業(yè)的意義又是什么?達(dá)成了會(huì)怎么樣?達(dá)不成又會(huì)怎么樣?
 
只有清晰這些問題,才會(huì)讓回到工作崗位的人快速改變自己的狀態(tài)投入到接下來的工作中,只有積極的狀態(tài)投入工作才會(huì)有積極的成果發(fā)生,反之依然。
 
第三,企業(yè)高管與員工建立一對(duì)一的對(duì)話機(jī)制,因疫情的影響,每個(gè)人心理或多或少都會(huì)產(chǎn)生一些內(nèi)在的變化,作為企業(yè)的高層管理人員,最好與企業(yè)內(nèi)部員工一對(duì)一的進(jìn)行溝通,去了解在這個(gè)過程中員工受到的影響和產(chǎn)生的變化,以便接下來更好的調(diào)整他們的狀態(tài),因?yàn)槿绻麄兊男臎]有回來,企業(yè)的要求和制度帶來的也都是大家沒有能量的重復(fù)和機(jī)械的工作,最終也很難帶來好的結(jié)果。
 
以上三點(diǎn)是企業(yè)管理者需要重視的,當(dāng)然身為企業(yè)的一員無論是誰也都需要重新審視自己的狀態(tài),因?yàn)檫@關(guān)系著企業(yè)接下來的生、死、存、亡,能量是企業(yè)持續(xù)發(fā)展的源泉,以上所有的目的都是為了聚合企業(yè)人的能量,重新點(diǎn)燃大家面對(duì)工作的激情和信心,這將是企業(yè)至勝的法定。
 
當(dāng)然這只是我們一家之言,每家企業(yè)可根據(jù)自身的情況做出相應(yīng)的調(diào)整和改變。
 
以上三點(diǎn)做為每一家企業(yè)的管理者都有必要重視起來,因?yàn)檫@關(guān)系著企業(yè)接下來的生、死、存、亡,當(dāng)然這只是我們一家之言,可根據(jù)自身的情況做出相應(yīng)的調(diào)整和改變。
 
那為什么我們會(huì)有這樣的思考,因?yàn)榘R無限是一家企業(yè)互聯(lián)網(wǎng)”云”解決方案服務(wù)平臺(tái),企業(yè)在初創(chuàng)時(shí)經(jīng)歷了2003年的非典,后來又經(jīng)歷了2008年的經(jīng)濟(jì)危機(jī)以及2016年互聯(lián)網(wǎng)創(chuàng)業(yè)大潮,生生死死,幾經(jīng)沉浮,最終發(fā)現(xiàn)上述三點(diǎn)是生死線中最重要的,所以愿意分享給大家,期望這次疫情大家不僅能渡過難關(guān),更能看見大家在這個(gè)過程中強(qiáng)而有力的領(lǐng)導(dǎo)力,讓自己企業(yè)力挽狂瀾,讓自己的工作更上一層樓,讓自己的生活在2020年更精彩。
 
在這次疫情后各個(gè)企業(yè)恢復(fù)的過程中,艾銻無限還能為大家做的就是免費(fèi)為中小企業(yè)提供相應(yīng)的IT服務(wù),以下是艾銻無限可以提供服務(wù)的內(nèi)容,如果大家有相應(yīng)的需求,可以打下面的電話與我們的企業(yè)相關(guān)人員聯(lián)系,我們一定會(huì)盡全力幫助大家渡過難關(guān)。
 
 
 
歷經(jīng)10幾年,艾銻無限服務(wù)了5000多家中小企業(yè)并保障了幾十萬臺(tái)設(shè)備的正常運(yùn)轉(zhuǎn),積累了豐富的企業(yè)IT緊急問題和特殊故障的解決方案,我們?yōu)槟钠髽I(yè)提供的IT服務(wù)分為三大版塊:
 
第一版塊是保障性IT外包服務(wù):如電腦設(shè)備運(yùn)維,辦公設(shè)備運(yùn)維,網(wǎng)絡(luò)設(shè)備運(yùn)維,服務(wù)器運(yùn)維等綜合性企業(yè)IT設(shè)備運(yùn)維服務(wù)。
 
第二版塊是功能性互聯(lián)網(wǎng)外包服務(wù):如網(wǎng)站開發(fā)外包,小程序開發(fā)外包,APP開發(fā)外包,電商平臺(tái)開發(fā)外包,業(yè)務(wù)系統(tǒng)的開發(fā)外包和后期的運(yùn)維外包服務(wù)。
 
第三版塊是增值性云服務(wù)外包:如企業(yè)郵箱上云,企業(yè)網(wǎng)站上云,企業(yè)存儲(chǔ)上云,企業(yè)APP小程序上云,企業(yè)業(yè)務(wù)系統(tǒng)上云,阿里云產(chǎn)品等后續(xù)的云運(yùn)維外包服務(wù)。
 
 
更多服務(wù)也可以登錄艾銻無限的官網(wǎng): www.bjitwx.com 查看詳細(xì)說明。

每家企業(yè)都有著不同的人,每個(gè)人都有著不一樣的思考,所以企業(yè)不需要統(tǒng)一所有人的思維,企業(yè)只需要統(tǒng)一所有人的心,因?yàn)橹灰脑谝黄鹆耍芰烤蜁?huì)合一,能量合一企業(yè)將無所不能。
 
相信這次疫情帶給中國企業(yè)的不僅僅是災(zāi)難,更有可能的是歷練,這幾年經(jīng)濟(jì)發(fā)展如此快速,大部分中小企業(yè)的成長都是隨著國家政策及整個(gè)社會(huì)的大勢(shì)起來的,沒有經(jīng)過太多的挑戰(zhàn)和困難,所以存活周期也會(huì)很短,從2016年大眾創(chuàng)業(yè),萬眾創(chuàng)新倡導(dǎo)下成立了上千萬家企業(yè),但真正存活下來的就只有幾萬家,這樣的結(jié)果即不能給國家?guī)矸€(wěn)定持續(xù)發(fā)展的動(dòng)力,也不能為社會(huì)創(chuàng)造更大的價(jià)值,反而讓更多的人投機(jī)取巧,心浮氣躁,沉不下來真正把一件事做好,做到極致。
 
所以這次疫情也會(huì)讓大部分企業(yè)重新思考,問問自己,為什么要?jiǎng)?chuàng)立這家企業(yè),想為這個(gè)國家和社會(huì)帶來的是什么?企業(yè)真正在創(chuàng)造的是什么?如何做才能讓社會(huì)因自己的企業(yè)變得更好?.....
 
當(dāng)企業(yè)真正去思考,用心去創(chuàng)造價(jià)值的時(shí)候,也就是人們幸福快樂的時(shí)候,因?yàn)樵僖膊挥脫?dān)心假貨、次貨、買到不好的產(chǎn)品,更不用擔(dān)心環(huán)境被污染,大氣被破壞,疫情即是一場災(zāi)難,又是重新成就中國企業(yè)的一次機(jī)會(huì),讓全世界人覺醒,生命只有一次,我們要如何做才能不枉此生呢?
 
 
 
你對(duì)世界微笑,世界絕不會(huì)對(duì)你哭,希望大家都能積極樂觀起來,讓自己、自己的家人、自己的企業(yè)、還有自己的國家都快樂起來,把焦點(diǎn)、意識(shí)、能量放在我們想要什么上,而不是不要的事情上,我相信,就在不久的將來,我們一定會(huì)看到一個(gè)富強(qiáng)、文明、健康的中國以及一個(gè)和諧友愛的世界。
 
萬物同體,能量合一,最后無論你是中小企業(yè),還是大型國有企業(yè),只要你選擇艾銻無限,我們就一定全力以赴幫助大家渡過難關(guān),服務(wù)有限,信息無限,透過全體艾銻人的努力,為您收集最有效的IT技術(shù)信息,讓您企業(yè)更快速解決遇到的IT問題:
 

艾銻知識(shí) | 如何用 Git 回退代碼

從接觸編程就開始使用 Git 進(jìn)行代碼管理,先是自己玩 Github,又在工作中使用 Gitlab,雖然使用時(shí)間挺長,可是也只進(jìn)行一些常用操作,如推拉代碼、提交、合并等,前些天就遇到了 Git 里一種十分糟心的場景,并為之前沒有深入理解 Git 命令付出了一下午時(shí)間的代價(jià)。先介紹一下這種場景,我們一個(gè)項(xiàng)目從 N 版本升到 A 版本時(shí)引入了另一項(xiàng)目的 jar 包,又陸續(xù)發(fā)布了 B、C 版本但在 C 版本后忽然發(fā)現(xiàn)了 A 版本引入的 jar 包有極大的性能問題,B、C 版本都是基于 A 版本發(fā)布的,要修復(fù) jar 包性能問題,等 jar 包再發(fā)版還得幾天,可此時(shí)線上又有緊急的 Bug 要修,于是就陷入了進(jìn)退兩難的境地。最后決定先將代碼回退到 A 版本之前,再基于舊版本修復(fù) Bug,也就開始了五個(gè)小時(shí)的受苦之路。
revert
首先肯定的是 revert,git revert commit_id 能產(chǎn)生一個(gè) 與 commit_id 完全相反的提交,即 commit_id 里是添加, revert 提交里就是刪除。但是使用 git log 查看了提交記錄后,我就打消了這種想法,因?yàn)樘峤淮螖?shù)太多了,中途還有幾次從其他分支的 merge 操作。”利益于”我們不太干凈的提交記錄,要完成從 C 版本到 N 版本的 revert,我需要倒序執(zhí)行 revert 操作幾十次,如果其中順序錯(cuò)了一次,最終結(jié)果可能就是不對(duì)的。另外我們知道我們?cè)谶M(jìn)行代碼 merge 時(shí),也會(huì)把 merge 信息產(chǎn)生一次新的提交,而 revert 這次 merge commit 時(shí)需要指定 m 參數(shù),以指定 mainline這個(gè) mainline 是主線,也是我們要保留代碼的主分支,從 feature 分支往 develop 分支合并,或由 develop 分支合并到 master 的提交還好確定,但 feature 分支互相合并時(shí),我哪知道哪個(gè)是主線啊。所以 revert 的文案被廢棄了。
 
Reset
然后就考慮 reset 了, reset 也能使代碼回到某次提交,但跟 revert 不同的是, reset 是將提交的 HEAD 指針指到某次提交,之后的提交記錄會(huì)消失,就像從沒有過這么一次提交。但由于我們都在 feature 分支開發(fā),我在 feature 分支上將代碼回退到某次提交后,將其合并到 develop 分支時(shí)卻被提示報(bào)錯(cuò)。這是因?yàn)?feature 分支回退了提交后,在 git 的 workflow 里,feature 分支是落后于 develop 分支的而合并向 develop 分支,又需要和 develop 分支保持最新的同步,需要將 develop 分支的數(shù)據(jù)合并到 feature 分支上,而合并后,原來被 reset 的代碼又回來了。
這個(gè)時(shí)候另一個(gè)可選項(xiàng)是在 master 分支上執(zhí)行 reset,使用 --hard 選項(xiàng)完全拋棄這些舊代碼,reset 后再強(qiáng)制推到遠(yuǎn)端。
master> git reset --hard commit_id
master> git push --force origin master
 
但是還是有問題,首先,我們的 master 分支在 gitlab 里是被保護(hù)的,不能使用 force push,畢竟風(fēng)險(xiǎn)挺大了,萬一有人 reset 到最開始的提交再強(qiáng)制 push 的話,雖然可以使用 reflog 恢復(fù),但也是一番折騰。
另外,reset 畢竟太野蠻,我們還是想能保留提交歷史,以后排查問題也可以參考。
 
rebase
只好用搜索引擎繼續(xù)搜索,看到有人提出可以先使用 rebase 把多個(gè)提交合并成一個(gè)提交,再使用 revert 產(chǎn)生一次反提交,這種方法的思路非常清晰,把 revert 和 rebase 兩個(gè)命令搭配得很好,相當(dāng)于使用 revert 回退的升級(jí)版。
先說一下 rebase,rebase 是”變基”的意思,這里的”基”,在我理解是指[多次] commit 形成的 git workflow,使用 rebase,我們可以改變這些歷史提交,修改 commit 信息,將多個(gè) commit 進(jìn)行組合。
介紹 rebase 的文檔有很多,我們直接來說用它來進(jìn)行代碼回退的步驟。
1、首先,切出一個(gè)新分支 F,使用 git log 查詢一下要回退到的 commit 版本 N。
2、使用命令 git rebase -i N, -i 指定交互模式后,會(huì)打開 git rebase 編輯界面,形如:
pick 6fa5869 commit1
pick 0b84ee7 commit2
pick 986c6c8 commit3
pick 91a0dcc commit4
3、這些 commit 自舊到新由上而下排列,我們只需要在 commit_id 前添加操作命令即可。在合并 commit 這個(gè)需求里,我們可以選擇 pick(p) 最舊的 commit1,然后在后續(xù)的 commit_id 前添加 squash(s) 命令,將這些 commits 都合并到最舊的 commit1 上。4、保存 rebase 結(jié)果后,再編輯 commit 信息,使這次 rebase 失效,git 會(huì)將之前的這些 commit 都刪除,并將其更改合并為一個(gè)新的 commit5。如果出錯(cuò)了,也可以使用 git rebase --abort/--continue/--edit-todo 對(duì)之前的編輯進(jìn)行撤銷、繼續(xù)編輯。5、這個(gè)時(shí)候,主分支上的提交記錄是 older, commit1, commit2, commit3, commit4,而 F 分支上的提交記錄是 older, commit5,由于 F 分支的祖先節(jié)點(diǎn)是 older,明顯落后于主分支的 commit4,將 F 分支向主分支合并是不允許的。所以我們需要執(zhí)行 git merge master 將主分支向 F 分支合并,合并后 git 會(huì)發(fā)現(xiàn) commit1 到 commit4 提交的內(nèi)容和 F 分支上 commit5 的修改內(nèi)容是完全相同的,會(huì)自動(dòng)進(jìn)行合并,內(nèi)容不變,但多了一個(gè) commit5。6、再在 F 分支上對(duì) commit5 進(jìn)行一次 revert 反提交,就實(shí)現(xiàn)了把 commit1 到 commit4 的提交全部回退。這種方法的取巧之處在于巧妙地利用了 rebase 操作歷史提交的功能和 git 識(shí)別修改相同自動(dòng)合并的特性,操作雖然復(fù)雜,但歷史提交保留得還算完整。rebase 這種修改歷史提交的功能非常實(shí)用,能夠很好地解決我們遇到的一個(gè)小功能提交了好多次才好使,而把 git 歷史弄得亂七八糟的問題,只需要注意避免在多人同時(shí)開發(fā)的分支使用就行了。遺憾的是,當(dāng)天我并沒有理解到 rebase 的這種思想,又由于試了幾個(gè)方法都不行太過于慌亂,在 rebase 完成后,向主分支合并被拒之后對(duì)這些方式的可行性產(chǎn)生了懷疑,又加上有同事提出聽起來更可行的方式,就中斷了操作。


文件操作
這種更可行的方式就是對(duì)文件操作,然后讓 git 來識(shí)別變更,具體是:
  1. 從主分支上切出一個(gè)跟主分支完全相同的分支 F。
  2. 從文件管理系統(tǒng)復(fù)制項(xiàng)目文件夾為 bak,在 bak 內(nèi)使用 git checkout N 將代碼切到想要的歷史提交,這時(shí)候 git 會(huì)將 bak 內(nèi)的文件恢復(fù)到 N 狀態(tài)。
  3. 在從文件管理系統(tǒng)內(nèi),將 bak 文件夾下 除了 .git 文件夾下的所有內(nèi)容復(fù)制粘貼到原項(xiàng)目目錄下。git 會(huì)純從文件級(jí)別識(shí)別到變更,然后更新工作區(qū)。
  4. 在原項(xiàng)目目錄下執(zhí)行 add 和 commit,完成反提交。
這種方式的巧妙之處在于利用 git 本身對(duì)文件的識(shí)別,不牽涉到對(duì) workflow 操作。


總結(jié)
最后終于靠著文件操作方式成功完成了代碼回退,事后想來真是一把心酸淚。為了讓我的五個(gè)小時(shí)不白費(fèi),復(fù)盤一下當(dāng)時(shí)的場景,學(xué)習(xí)并總結(jié)一下四種代碼回退的方式:
  • revert 適合需要回退的歷史提交不多,且無合并沖突的情景。
  • 如果你可以向 master 強(qiáng)推代碼,且想讓 git log 里不再出現(xiàn)被回退代碼的痕跡,可以使用 git reset --hard + git push --force 的方式。
  • 如果你有些 geek,追求用”正規(guī)而正統(tǒng)”的方式來回退代碼,rebase + revert 滿足你的需求。
  • 如果你不在乎是否優(yōu)雅,想用最簡單,最直接的方式,文件操作正合適。
git 真的是非常牛逼的代碼管理工具,入手簡單,三五個(gè)命令組合起來就足夠完成工作需求,又對(duì) geeker 們非常友好,你想要的騷操作它都支持,學(xué)無止境啊。
 
 
 

相關(guān)文章

IT外包服務(wù)
二維碼 關(guān)閉
主站蜘蛛池模板: 久久精品爱爱 | 日韩欧美在线视频 | SAO货腿张开JI巴CAO死我 | 91久久奴性调教 | 东北农村女人乱淫免费视频 | 久久草在线观看视频 | 国产视频亚洲一区 | 无码中文人妻在线一区二区三区 | 93精品国产乱码久久久 | 在线免费观看视频一区二区 | 黄色免费日本 | 亚洲AV中文无码字幕色最新 | 久久国产激情 | AV男人的天堂在线观看国产 | 国产不卡一级无码视频 | 亚洲AV无码一区二区三区在线播放 | 成人亚洲欧美中文日韩 | 国产一区二区二区 | 啊灬啊灬啊灬快灬高潮少妇a片 | 人人av在线 | 久青草久青草视频在线观看 | 欧洲熟妇色XXXXX视频 | 中文字幕婷婷日韩欧美亚洲 | 国产精品伦视频看免费三 | 免费一级特黄录像 | 粉嫩一区二区三区国产精品 | 一区二区三区免费 | 欧美日韩视频在线观看一区 | 在线观看人成视频免费 | 中国国产高清免费av片 | 欧美不卡高清一区二区三区 | 521av永久免费网 | 天天综合网久久 | 99草在线观看 | 九九九九热精品免费视频点播观看 | 国产一级揄自揄精品视频 | 国产一级一级 | 91在线视频免费看 | 亚洲人成人一区二区三区 | 亚洲AV无码兔费综合 | 日本亚洲一区 |