日本高清免费一本视频100禁_在线不卡欧美精品一区二区三区_国产一区二区好的精华液_中文综合在线_国产啊啊啊视频在线观看_大地资源网免费观看高清

IT之道-艾銻知道

您當前位置: 主頁 > 資訊動態 > IT知識庫 >

艾銻知識 | 如何用 Git 回退代碼


2020-02-18 16:01 作者:admin 瀏覽量:
疫情即將結束,如何提升企業工作效率
艾銻無限免費為企業提供IT服務
 
 
這幾天如果大家關注疫情數據的變化,可以看到新增確診病例在持續下降,這意味著疫情很快就會結束,大家再也不用在家辦公了,到不是在家工作有什么不好,但人類發明工作不簡簡單單只是為了實現結果的達成,還有一個非常重要的因素就是人與人之間的聯結,這是人類內在價值的需求,透過工作與人接觸,共同感受彼此的能量流動,從而達到自我價值的實現,這就像演員都渴望登上奧斯卡的舞臺,來實現自我角色的認可一樣。
 
 
在家辦公,畢竟是家,松、散、懶以及無所謂的態度會隨時產生,我相信不是每個人都會這樣,但大部分人會如此,因為家本來就是放松的能量場,接下來大家即將回到公司,回到自己的工作崗位,難免會把在家的狀態帶入工作中,如果每個人都是這樣的狀態,企業很快會陷入新的窘境,所以沒有狀態,也不會有好的結果,狀態就是一切。
 
團隊的勢氣決定企業整體的戰斗力,那如何調整陸陸續續回來的團隊成員呢?
 
 
 
艾銻無限對中小企業有三條建議:
 
第一,重新梳理整個企業的戰略,疫情的發生,是否給你企業帶來了變化?如果有那是什么?是否需要調整自己原有的戰略方向來應對疫情發生后的影響?
 
第二,重新明確每個人的目標和目的,目標就是重回企業的人要干什么?干到什么程度?什么時間可以看到這個結果的發生?目的就是為什么要實現這個目標?這個目標與自己的意義是什么?與企業的意義又是什么?達成了會怎么樣?達不成又會怎么樣?
 
只有清晰這些問題,才會讓回到工作崗位的人快速改變自己的狀態投入到接下來的工作中,只有積極的狀態投入工作才會有積極的成果發生,反之依然。
 
第三,企業高管與員工建立一對一的對話機制,因疫情的影響,每個人心理或多或少都會產生一些內在的變化,作為企業的高層管理人員,最好與企業內部員工一對一的進行溝通,去了解在這個過程中員工受到的影響和產生的變化,以便接下來更好的調整他們的狀態,因為如果他們的心沒有回來,企業的要求和制度帶來的也都是大家沒有能量的重復和機械的工作,最終也很難帶來好的結果。
 
以上三點是企業管理者需要重視的,當然身為企業的一員無論是誰也都需要重新審視自己的狀態,因為這關系著企業接下來的生、死、存、亡,能量是企業持續發展的源泉,以上所有的目的都是為了聚合企業人的能量,重新點燃大家面對工作的激情和信心,這將是企業至勝的法定。
 
當然這只是我們一家之言,每家企業可根據自身的情況做出相應的調整和改變。
 
以上三點做為每一家企業的管理者都有必要重視起來,因為這關系著企業接下來的生、死、存、亡,當然這只是我們一家之言,可根據自身的情況做出相應的調整和改變。
 
那為什么我們會有這樣的思考,因為艾銻無限是一家企業互聯網”云”解決方案服務平臺,企業在初創時經歷了2003年的非典,后來又經歷了2008年的經濟危機以及2016年互聯網創業大潮,生生死死,幾經沉浮,最終發現上述三點是生死線中最重要的,所以愿意分享給大家,期望這次疫情大家不僅能渡過難關,更能看見大家在這個過程中強而有力的領導力,讓自己企業力挽狂瀾,讓自己的工作更上一層樓,讓自己的生活在2020年更精彩。
 
在這次疫情后各個企業恢復的過程中,艾銻無限還能為大家做的就是免費為中小企業提供相應的IT服務,以下是艾銻無限可以提供服務的內容,如果大家有相應的需求,可以打下面的電話與我們的企業相關人員聯系,我們一定會盡全力幫助大家渡過難關。
 
 
 
歷經10幾年,艾銻無限服務了5000多家中小企業并保障了幾十萬臺設備的正常運轉,積累了豐富的企業IT緊急問題和特殊故障的解決方案,我們為您的企業提供的IT服務分為三大版塊:
 
第一版塊是保障性IT外包服務:如電腦設備運維,辦公設備運維,網絡設備運維,服務器運維等綜合性企業IT設備運維服務。
 
第二版塊是功能性互聯網外包服務:如網站開發外包,小程序開發外包,APP開發外包,電商平臺開發外包,業務系統的開發外包和后期的運維外包服務。
 
第三版塊是增值性云服務外包:如企業郵箱上云,企業網站上云,企業存儲上云,企業APP小程序上云,企業業務系統上云,阿里云產品等后續的云運維外包服務。
 
 
更多服務也可以登錄艾銻無限的官網: www.bjitwx.com 查看詳細說明。

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

艾銻知識 | 如何用 Git 回退代碼

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


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


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

相關文章

IT外包服務
二維碼 關閉
主站蜘蛛池模板: 男人进去女人爽免费视频_国内激情_午夜影院一级_狠狠做五月深爱婷婷_黄色一级大片免费_午夜久久久久久久久久久久_无码人妻丰满熟妇A片护士_免费看黄色大全 | 国产内射爽爽大片视频社区在线_日韩欧美一二三区_91麻豆精品91久久久久同性_夜夜爽免费888视频_国产嫖妓风韵犹存对白_日本老女人视频_日韩在线第一区_伊人ab | 久久AV喷潮久久AV高清_99久久精品国_亚洲aⅴ综合av国产八av_麻豆精品无码国产在线果冻_丝袜高潮流白浆潮喷在线播放_亚洲欧洲国产综合AⅤ无码_131美女MM爱做爽爽爽视频_国产视色 | 欧美疯狂性受XXXXX喷水_91av影视_日本乱人片一区二区三区_性色AV无码不卡中文字幕_最新av网站在线观看_欧美亚洲熟女一区二区视频_成人A级毛片免费观看AV_av爱爱com | 亚洲色图在线免费观看_久亚洲一线产区二线产区三线产_国产免费久久久久久无码_龙珠z中文版普通话_国产又色又爽又黄又免费_japanese日本护士高潮_午夜久久视频_精灵宝可梦旅途中文版免费观看 | 亚洲欧美日本国产不卡_久久99精品久久久久_色蜜桃网_欧美一级片网站_国产精品区一区二区三_日日噜噜噜夜夜爽爽狠狠视频97_欧美在线一区二区_日本少妇重口xxxx | 国产成人A人亚洲精V品无码_看片91_日韩情涩欧美日韩视频_黄色a级片子_av黄色天堂_无码aⅴ精品一区二区三区浪潮_一级毛片_欧美日韩后 | 伊人九九九有限公司_柠檬导航精品导航_67194熟妇在线观看线路1_av女优天堂在线观看_在线视频一二三_色妺妺在线视频_亚洲婷婷在线视频_国产精品熟 | 4虎av_久久免费国产精品_亚洲成本人无码薄码区_精品台湾swag在线播放_伊人yinren22综合开心_欧美日韩在线观看一区二区三区_亚洲AV之男人的天堂网站_yellow日本高清在线 | 五月丁香综合缴情六月小说_精品午夜福利无人区乱码一区_国产精品精品国内自产拍_久久久亚洲福利精品午夜_欧美男男GAY可播放免费不卡_九九精品热播_国产高清视频青青青在线_www.99热这里只有精品 | 无码精品AV久久久免费_亚洲jizzjizz少妇_欧美性猛交xxxx免费看蜜桃_91蜜桃在线观看_狠狠操她_在线日韩_在线播放一区二区精品视频_国产做受18~20岁A片 | 97超碰人摸人人人澡_久久精品16_国产伦一区二区三区四区_中文字幕无码久久精品_中国xxxx老师xxx在线_亚洲色婷婷综合开心网_高潮喷水的网站_久久宗合色 | 久久夜夜操_欧美午夜寂寞影院_老美黑人狂躁亚洲女_欧美a级黄_青青草视频免费看_男人深夜影院_欧美性黑人极品hd_69影院少妇在线观看 | 美女网站免费福利视频_内射无码专区久久亚洲_五月色丁香综缴合_第四色狠狠_久久久久久一级毛片_99精品国产一区二区三区A片_男女上下猛烈啪啪免费看_www.色网 | 国产一区二区影视_不卡一区在线_西西人体大胆啪啪实拍_一级黄色aaaa_国产中文字幕在线看_欧美一区=区_中文字幕亚洲高清_国产原创三级 | 中文字幕日韩精品欧美一区_av国产精品毛片一区二区小说_国产黄色免费看_亚洲精品黑牛一区二区三区_成人亚洲免费_国产高清视频在线观看一区二区_91大神在线观看视频_久久久国产精品人人片99精片欧美一 | 两根一起进三P免费视频_色偷偷偷久久伊人大杳蕉_狠操在线_91成人在线精品视频_在线成人毛片_一级特黄bbbbb免费观看_91怡红院_免费人成网站视频在线观看国内 | 欧美大码少妇_超碰一区二区_狠狠久久精品中文字幕无码_久久综合射_亚洲精品无码成人AAA片_色wwww全部免费_免费毛片一级_希岛爱理aⅴ在线中文字幕 | 欧美日韩一道本_欧美日韩在线视频不卡一区二区三区_亚州黄色_三区四区在线观看_不卡视频一区二区_亚洲免费观看视频_国产一级黄色录像_欧美男男激情videos高清 | freesex呦交_人人精品视频_国产日韩精品综合网站_亚欧在线高清专区_超碰97最新_亚洲欧洲一区二区在线观看_久草在线资源观看_二区三区在线 | 国产区av_国产91成人精品亚洲精品_国产aⅴ一区二区_青青草手机视频_久久久SS麻豆欧美国产日韩_久久亚洲欧洲国产精品一区二区_91大神在线资源观看无广告_亚洲国产精品婷婷久久久久 | japanese日本护士xxxx18一19_日本三级视频网站_内射人妻少妇无码一本一道_runaway韩国动漫免费_亚洲久草av_糙汉猛H1v1她想被C_丁香五月激情综合亚洲_www亚洲精品少妇裸乳一区二区 | 欧美日韩色片_国产免费色_国产肉体XXXX裸体137大胆_日本黄色片一区二区_亚洲欧美熟妇综合久久久久_男人扒开女人的腿做爽爽视频_午夜国产成人久久精品_久久精品亚洲综合专区 | 国产10000部拍拍拍免费视频_免费观看av的网址_亚洲国产精品无码久久一线_男男高肉H视频无码网址_国产亚洲第一页_免费看操_午夜dj在线观看免费视频www_欧美男人天堂网 | 怡红院成人网_黄色在线免费播放_亚洲精品国产综合久久_日韩高清不卡一区_青青草视频一区_最近的2019中文字幕免费一页_中文视频一区视频二区视频三区_国产成人久久综合第一区 | 青天衙门第一部40集_av免费一区_国产欧美做爰xxxⅹ在线观看_国产乱了伦视频大全亚琴影院_国产偷抇久久精品a片蜜臀a_国产精品久久久久久久久小说_国产高清中文手机在线观看_精品国产一区二区三区av片 | 国产免费av片在线观看麻豆_久久人妻AV一区二区软件_欧美草草_最新国产vr麻豆aⅴ精品无_超碰CAOPORON最新地址_国产日韩欧美另类_真实国产精品VR专区_扒开奶罩吃奶头gif动态视频 | 国产精品美女久久久久人_国内精品久久久久久久久久久_91久久免费_久久av免费看_丰满熟妇乱又伦精品_亚洲熟女久久色_日本成熟老妇乱_女女女n女女女n女hd | 国产精品馆_国产成年在线_神马在线视频_亚洲一区二区三区自拍公司_在线观看五码_日韩精品成人一区二区在线_黄色软件91_亚洲高清中文字幕在线看不卡 | av色中色_91丨porny丨中文_亚洲人成网站色7799_在线观看第一页_2019天天操_天天综合视频_校花被肉干高h潮不_一级@片 | 小娇孩性freesexhd_91精品夜夜_日韩AV高潮喷水在线观看_亚洲精品欧洲_男人猛躁进女人免费视频夜月_一区二区三_欧美日本性视频_亚洲av日韩av无码尤物 | 久久第四色_色啪影院_国产免费啪视频观看网站_裸体按摩xxxxx高清_国产制服丝袜免费视频_日韩av永久免费网站_色偷偷偷亚洲综合网另类_精品免费一区二区三区 | av网站免费在线观看_中文字幕色av一区二区三区不卡_国产精品午睡沙发系列_免费人成在线观看视频播放_亚洲女孩中文字幕免费视频_大地资源免费高清观看_曰曰夜夜的爱_国产av激情无码久久 | 久久久夜色精品亚洲a_亚州精品成人_91视频网入口_亚洲成人色图网_亚洲中文字幕av无码区_日韩免费观看av_国产伦理精品_谍战剧惊弦免费观看 | AV片亚洲国产男人的天堂_天天综合网7799精品视频_av护士_国产欧美va天堂在线观看视频_久久免费毛片视频_久久99国产精一区二区三区_一边吃奶一边扎下边爽了_午夜一级黄色片 | 国产成人无码av一区二区在线观看_91久久爽久久爽爽久久片_天天天天天干_97超超碰_精品无码久久久久国产_欧美不卡中文字幕一区二区_国产伦精品一区二区三区妓女_日本高清免费视频 | 麻豆亚洲_一级毛片在线免费观看_久久伊人精品波多野结衣_国产福利精品导航_色91精品久久久久久久久_白丝无内液液酱夹腿自慰_亚洲专区av_男女在一起拔萝卜免费视频大全 | 亚洲国产熟妇无码日韩_国产亚洲欧美日韩国产片_女人天天干夜夜爽视频_日韩在线观看视频一区二区三区_中国XVIDEOS厕所偷窥_狠狠色狠狠色综合日日不卡_在线观看免费亚洲_国产又色又爽又黄的网站在线 | 亚洲欧洲免费_97精品人人妻人人_无码国产精品人妻一区二区_亚洲欧美日韩综合久久_真人性23式(动)黄色毛片_国产网红主播精品av_色肉色伦交av色肉色伦_久久精品一品道久久精品 | 不卡国产_色综合另类小说图片区_午夜久久久久久久久久久_亚洲AV日韩AV鸥美在线观看_挺进邻居丰满少妇的身体_12306影视午夜入口_被男人吃奶很爽的毛片_免费在线视频欧美 | 国产一区二区影视_不卡一区在线_西西人体大胆啪啪实拍_一级黄色aaaa_国产中文字幕在线看_欧美一区=区_中文字幕亚洲高清_国产原创三级 |