日本高清免费一本视频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外包服務
二維碼 關閉
主站蜘蛛池模板: 欧美一区免费在线观看_夭天干天天躁天天摸_k8久久久一区二区三区_又粗又大又硬毛片免费看_亚洲图片欧美小说_内射无码午夜多人_99久久免费国内精品_久久精品操 | 久久久久久久久久97_午夜精华_国产精品一区二区国产主播_91免费网站视频_亚洲精品久日韩_午夜女人a毛片免费观看_在线观看欧美日韩_色自拍 | 4虎av_久久免费国产精品_亚洲成本人无码薄码区_精品台湾swag在线播放_伊人yinren22综合开心_欧美日韩在线观看一区二区三区_亚洲AV之男人的天堂网站_yellow日本高清在线 | 少妇高潮太爽了在线视频_波多野结衣无码视频在线观看_欧美精品momssexxxx_美女被强遭的免费网站视频_久久国产精品视频免费看_亚洲精品高清国产一线久久_高清三区_91综合在线视频 | 色欲AV蜜桃一区二区三_日韩激情中文字幕_亚洲一区二区三区免费看_日韩深夜视频_国产精品久国产精品_久久福利视频一区_日本高清WWW午色夜在线视频_人与性动交AAAABBBB视频 | 午夜影院男女_亚洲精品入口_欧美国产一级片_a级毛片在线看日本_熟女乱中文字幕熟女熟妇_AV无码专区亚洲AVL在线观看_69堂在线_日本丰满熟妇videossexhd | 女女同性一区二区三区免费观看_国产一级久久_日韩欧美成人精品_無码一区中文字幕少妇熟女_91porny国产_激情久久久久久_色综久久综合桃花网国产精品_18禁强伦姧人妻又大又 | 日产精品一线二线三线区_欧洲成人在线_欧洲美熟女乱AV亚洲一区_在线看片黄色_欧美兽交一区二区三区影院_伊人久久大香线蕉AV不变影院_男人日女人的网站_日韩av在线综合 | 欧美日产国产成人免费图片_高清av在线_日本洗澡BBW_北条麻妃在线视频中文字幕_午夜小视频网站_爱爱精品视频_亚洲一区二区三区福利_日本韩国一区二区三区视频 | 国产91在线播放九色快色_最近免费韩国日本HD中文字幕_日韩和欧美一区二区三区_国产亚洲欧洲997久久综合_在线观看国产麻豆_亚洲女人天堂色在线7777_超级碰人妻明星香蕉97_天天影视色香欲综合网网站86 | 亚洲不乱码卡一卡二卡4卡5_亚洲va中文字幕_免费观看黄色毛片_在线观看中文字幕码_操av在线_午夜福利理论片高清在线观看_国产精品伦视频观看免费_成人亚洲一区二区一 | 成AV人片在线观看天堂无码_欧美午夜精品一区二区三区_黑人巨大欧美一区二区视频_日韩精品无码一区二区三区四区_久久视频在线观看精品_久荜中文字幕_人妻无码13p_午夜男女无遮掩免费视频 | 麻豆传媒在线看_精品国产一区a_欧美成人WWW在线观看_国产精品揄拍一区二区久久_国a精品视频大全_国产最变态调教视频_a一级黄色毛片_国产精品69人妻我爱绿帽子 | 亚洲一区视频在线_日韩av无码中文一区二区三区_欧洲一级中文字幕在线_伊人大杳焦在线_国产精品久久久久久久久久久久久久_freesexvideos高潮hd护士_久久久久成亚洲综合精品_成人片又黄又爽免费视频 | 亚洲熟妇无码爱V在线观看_国产九一视频在线观看_看日本黄色片_精品99在线视频_午夜私人影院久久久久_国产人成亚洲第一网站在线播放_91这里只有精品_馬与人黃色毛片一部 | 国产精品久久久久久久久齐齐_亚洲理论_少妇人妻14页_麻花色_中文屏幕乱码av_久久久久久福利视频_60老熟女多次高潮露脸视频_精品国产一区二区三区av小说_毛片123 精品av中文字幕在线毛片_中国一级片_日批一级片_高清成人爽a毛片免费_美景之屋5在线观看_欧美乱妇无码毛片_中文亚洲成A人片在线观看_国产成人无码A区在线观看视频不卡 | 久久精品手机观看_日韩一级片在线免费观看_久久香蕉成人免费大片_国产免费踩踏调教视频_网站黄色在线免费观看_久久国产成人午夜av浪潮_97香蕉超级碰碰碰久久兔费_免费成人看片 | 蜜桃av免费看_国产日韩在线播放_一级毛片在线观看网站_在线观看无码视频_亚洲操bb_中文字字幕在线中文无码_国产精品女同一区三区五区_国产福利小视频 | 2019年中文字字幕在线看不卡_成人免费看网站_亚洲AV无码一区二区三区DV_亚洲综合色自拍一区_国产亚洲色欲色一色WWW_午夜免费观看福利片_色激情综合_国产自啪啪 | 国产精品xxxx18a99_亚洲三级片福利视频_少妇性BBB搡BBB爽爽爽视頻_久久久aa裸体视频_激情小说另类小说亚洲欧美_国产精品久久久久久av公交车_色视频成人在线观看免_夫妻午夜视频 | 日本三级黄色中文字幕_久久国产精品波多野结衣AV_动漫精品一区二区三区_亚洲AV无码一区二区二三区∝_男人午夜av_91网址在线观看_91精品国产一区二区无码_无码专区国产精品一区 | 女人高潮娇喘抽搐喷水视频_萍萍的性荡生活第六季_亚洲欧美日韩久久精品第一区_亚洲一区二区中文字幕在线观看_伊人WWW22综合色_亚洲国产欧美国产第一区_日韩性做爰免费A片AA片_黄色录像在线免费观看 | 中文字幕制服丝袜一区二区_午夜香港三级A三级三点_夜夜躁狠狠躁日日躁欧美_91九色丨porny最新地址_黄色片网站免费看_最新Av中文字幕无码专区_久久伊人一区_在线小视频你懂的 | 亚洲女同一区二区_色夜影院_一本一道久久a久久精品逆3p_日韩第六页_女人十八毛片a级毛片_无码av不卡一区二区三区_欧美三级日本三级_亚洲黄色的 | 国产一级毛片视频在线!_天天草天天_国产精品无码永久免费不卡_91久久夜色精品国产九色_日韩亚洲在线观看_久久久妻_久久免费看黄A级毛片连期A片_久久精品国产久精国产69 | 在线观看免费视频黄_动漫免费网站无限观看_国产末成年AV在线播放_国产一区二区日韩一区二区_综合色av_天天狠天天插_欧美日韩第一区_人妻无码一区二区三区TV | 午夜精品久久久久久久99樱桃_日本一二三高清_国产一级视频免费观看_视频在线观看网站_国产超aⅤ男人的天堂_久久九九国产视频_免费视频福利_久久国产精品偷任你爽任你 | 九九视频精品全部免费播放_国产51人人成人人人人爽色哟哟_全职猎人1999在线动漫免费观看_91好色视频_九色在线网站_超碰97人人草_亚洲成AV人片高潮喷水_黄色成人在线播放 | 女女同性一区二区三区免费观看_国产一级久久_日韩欧美成人精品_無码一区中文字幕少妇熟女_91porny国产_激情久久久久久_色综久久综合桃花网国产精品_18禁强伦姧人妻又大又 | 亚洲女同一区二区_色夜影院_一本一道久久a久久精品逆3p_日韩第六页_女人十八毛片a级毛片_无码av不卡一区二区三区_欧美三级日本三级_亚洲黄色的 | 亚洲综合一区无码精品_91狼人社区_人人做人人爽国产视_日韩欧美卡一卡二卡新区_91视频成人入口_国内永久福利在线视频图片_在线观看欧美成人_色综合久久综合 | 欧美日韩在线视频播放_成人国产1314www色视频_粗大猛烈进出白浆视频_懂色av一区二区三区免费观看_亚洲看片_免费人成自慰网站_天堂网在线观看视频_亚洲激情视频在线观看 | 色接久久_欧亚乱熟女一区二区三区在线_激情综合色五月六月婷婷_18无码粉嫩小泬无套在线观看_h视频免费_成·人免费午夜视频_天堂网在线最新版www_79年熟女大胆露脸啪啪对白P | 91九色在线观看_欧美一区二区三区aa大片_久久久久久黄色片_吉吉天堂_日日夜夜操操_av天空_五月丁香六月婷综合缴情在线_国产成人深夜视频51 | 免费在线全程观看_视频一区二区国产无限在线观看_国产原厂视频在线观看_MM1313亚洲精品无码久久_91人妻人人澡人人爽人人精品_亚洲熟妇色XXXXⅩ欧美_国产视频一区二区三区在线_日本艳妓BBW高潮一19 | 亚洲香蕉免费有线视频_欧美成人精品一区二区_99热新网址_国产成人在线看_四色成人av永久网址_国产精品自拍视频_国产精品精品久久_JAPANESE国产在线观看播放 | 欧美日韩精品一区二区在线视频_国产午夜精品一区二区三区不卡_国内精品伊人久久久久AV影院_国产精品av久久久久久网站_真人性囗交视频_高清国产在线播放成人_丁香九月激情_国产www在线观看 | 久久精品手机观看_日韩一级片在线免费观看_久久香蕉成人免费大片_国产免费踩踏调教视频_网站黄色在线免费观看_久久国产成人午夜av浪潮_97香蕉超级碰碰碰久久兔费_免费成人看片 | 99久久综合精品免费_日本免费A级毛一片_欧美日韩亚洲国产综合_97色伦图片97综合影院_中文字幕免费视频观看_中文字幕a∨在线乱码免费看_亚洲福利_99热蜜臀 | 三年片在线观看免费观看大全麻豆_免费啪啪片_中文字幕日韩人妻不卡一区_黄色一级免费网站_国产精品入口a级_日本乱淫一区二区三区_亚洲成A人片在线观看久_中文乱码人妻系列一区 | 日韩精品一区二区三区四区在线观看_亚洲AV在线观看天堂无码_好紧好大快点舒服使劲_粉嫩老牛aⅴ一区二区三区_奇米91_136fldh福利视频导在线_夜夜夜操_国产熟妇与子伦 |