日本高清免费一本视频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外包服務
二維碼 關閉
主站蜘蛛池模板: 国产一区二区影视_不卡一区在线_西西人体大胆啪啪实拍_一级黄色aaaa_国产中文字幕在线看_欧美一区=区_中文字幕亚洲高清_国产原创三级 | 日韩精品视频在线一区二区三区_欧美丰满老妇熟乱xxxxyyy_四虎影视国产精品永久在线_精品自拍av_久久99国产亚洲高清观看首页_五月色夜婷婷丁香琪琪_无码少妇一区二区三区浪潮AV_全黄特一级 | 久草视频国产_亚色在线_人妻少妇久久中文字幕无码_亚洲va_精品国产亚洲一区二区三区_美丽的熟妇中文字幕_小草莓网站_国产裸体舞一区二区视频在哪看 | 先锋影音在线资源站91_国产免费一级淫片_四虎黄色网址_久草热8精品视频在线观看_大学生一级片_国产在线a_欧美特黄特色视频_精品成人乱色一区二区 | 黑人狂躁日本妞hd_亚洲欧洲日产国码无码_日韩一区二区a片免费观看_久久之久久_日本va在线视频播放_欧美日韩欧美_在线免费观看国产_自拍偷拍99 | 91精品啪在线观看国产足疗_特级毛片全部免费播放_日本一区二区三区免费在线_国产va在线观看_中文字幕日韩综合av_91在线视频网址_一级片在线免费看_久久久91精品国产一区二区三区 | 奇米777官网_免费99精品国产自在在线_国产精品WWW夜色视频_国产美女无遮挡免费_9999视频_特级做爰片毛片免费看小说_国产白浆二区二区精品视频_欧美成人黑人xx视频免费观看 | 亚洲日本中文字幕_成人网qqq444_综合色婷婷一区二区亚洲欧美国产_亚洲经典国产_久久不卡日韩美女_日本www免费观看_2018高清国产日本一道国产_亚洲欧美一级黄色录像视频 | 精品国产不卡一区二区_91精品国产影音先锋大全_欧美日韩精选_国产第19页精品_成人性生交大片免费看视频hd_第一av网_久久久黑人_欧精品一区 | 狠狠干天天_找老女人泻火对白自拍_强开少妇嫩苞又嫩又紧九色_日本激情网_国产精品亚洲人成在99www_亚洲一级理论片_国产青榴视频在线观看_国产一精品 | 999免费观看视频_亚洲av无码专区亚洲av_老外一级黄色片_久久人妻少妇嫩草AV无码专区_日日夜夜视频_夜夜操女人_99啦porny丨首页入口_日本黄色性片 | 亚洲a一区_看全色黄大色大片免费久久久_国产呻吟对白刺激无套视频在线_69pao视频_久久伊人精品天天_精品久久久久久久久久_伊人久久精品无码二区麻豆_善良的女儿在线观看 | 久久婷婷综合缴情亚洲狠狠_久久伦理_欧美日韩视频免费在线观看_欧美国产日韩成人_神天至尊动漫免费观看高清_最近中文字幕在线免费视频_久久久999精品_一级大片免费看 | 国产第二区_久久成人影院精品99_一区二区在线观看av_国产精品青青草_精品视频—区二区三区免费_国产一区二区三区av在线_337p欧美顶级日本大片_男人又大又硬又粗视频 | 无码中文字幕AV免费放软件_国产后式a一视频_色中文字幕在线_一区二区三区视频在线观看_亚洲影院久久_中文字幕在线观看2021_国产成人青草视频_亚洲精品永久中文字幕 | 天堂中文字幕在线_欧美最猛性xxxxx(亚洲精品)_99不卡视频_性欧美丰满熟妇XXXX性_国产乱码卡二卡三卡4_欧美性一级_国产精品一区二区无线_国产美女爆乳呻吟视频 | 国内老司机精品视频在线播出_国产下药迷倒白嫩丰满美女BD_国产精品久久久久久TV_国产办公室秘书无码精品_亚洲专区一_免费看黄a级毛片_少女视频哔哩哔哩免费观看_妇女站着交性打野战 | 亚瑟av亚洲精品一区二区_亚洲第三色_在线观看无码不卡AV_内射人妻无套中出无码_欧美激情五月_色婷婷久_免费欧美在线_jizz久久精品永久免费 | 国产成人精品无码A区在线观看_日本黄色免费在线_妺妺窝人体色WWW在线_91一区视频_天堂一区一卡二卡视频_老师洗澡让我吃她胸视频_国产精产国品一二AAA片_国产综合?V一区二区三区无码 | 亚洲人成色4444在线观看_美女视频黄又黄又免费高清_西游性淫片a级在线观看_欧美成a人片在线观看久_特级黄色毛片视频片子_青草久久久国产线免观_国产精品999在线观看_色欧美色美色一区二区在线 | 人善交vide欧美_GOGO人体大胆全球少妇_国产精品一区二区三区sss_日韩精品在线国产丝袜_在线免费看毛片_成人一区二区在线观看_免费国产在线视频_色成人网站www永久免费观看 | 总裁与秘书啪啪日常h男女_福利视频99_www.亚洲区_亚洲快插_麻豆tv在线_chien国产乱露脸对白_国产网红在线_国产精品久久秋霞鲁丝片 | 俺去俺来也在线www色官_久久久久久久国产a∨_九色综合婷婷_亚洲成人久久一区_久久一区免费_我半夜摸妺妺的奶摸到高潮_AV天堂中AV世界中文在线播放_日黄的免费视频 | 无码H黄肉3D动漫在线观看_午夜网站在线_av之家免费黄片_日本少妇裸体视频_中文字幕欧洲_色久天堂_国产成人欧美一区二区三区八_国产亚洲欧美一级 | 日韩精品一级毛片_91成人免费在线观看_最近的中文字幕视频完整_国产一区二区三区网站_黄色精品一区二区_99视频有精品视频高清_国产在线精品一区二区在线播放_av人摸人人人澡人人超碰 | 久久xxx视频_国产寡妇乱子伦一区二区三区。_精品999www_二级黄色大片_久久毛片视频_靠逼国产_精品免费国产二区三区_伊人色播 | 好大好硬好爽18禁视频_av黄色免费观看_久久久av一区二区_偷偷做久久久久免费网站_性一交一无一伦一精一品_亚洲欧美影视_无码亲近乱子伦免费视频在线观看_日本免费一区视频 | 欧美疯狂性受XXXXX喷水_91av影视_日本乱人片一区二区三区_性色AV无码不卡中文字幕_最新av网站在线观看_欧美亚洲熟女一区二区视频_成人A级毛片免费观看AV_av爱爱com | 日韩视频免费在线观看_日本毛片高清免费视频_九九亚洲视频_无码精品一区二区三区四区爱奇艺_欧美人与动交ZOZO_第一视角vk_色呦呦久久_动漫被到爽动漫视频免费 | 69ww免费视频播放_av区无码字幕中文色_国产精品农村妇女α片_浮生影视在线观看免费_日本欧美产无码久久久久又大又粗_成人免费视频网站在线看_99在线观看_国产精品成人一区二区三区夜夜夜 | 三年片在线观看免费观看大全麻豆_免费啪啪片_中文字幕日韩人妻不卡一区_黄色一级免费网站_国产精品入口a级_日本乱淫一区二区三区_亚洲成A人片在线观看久_中文乱码人妻系列一区 | 国产精品美女久久久久人_国内精品久久久久久久久久久_91久久免费_久久av免费看_丰满熟妇乱又伦精品_亚洲熟女久久色_日本成熟老妇乱_女女女n女女女n女hd | 最大av在线_12av视频_玩弄邻居少妇高潮潮喷的经历_欧美视频在线观看一区_97久久超碰精品国产_性少妇freesexvide_久久成人国产视频_婷婷五月婷婷五月 | 亚洲精品美女久久久久网站_欧美艳星NIKKI激情办公室_色妞网欧美_国产激情久久久_色黄av_成人免费8888在线视频_日日噜噜夜夜狠狠视频_JIZZ性欧美2 | 亚洲人a成www在线影院_久久动漫在线观看_亚洲再线_AV无码爆乳护士在线播放_五月天婷亚洲天综合网鲁鲁鲁_japansex久久高清精品_成人cosplay福利网站18禁_国产欧美日韩亚洲更新 | 国产精品一区二区香蕉_91精品一二区_天堂网在线.www天堂在线资源_成人亚洲一区二区三区_人妻尝试又大又粗久久_亚洲国产精品无码成人A片在线_私人家庭影院5777_亚洲国产影视 | www.夜夜操_91亚洲精品中文字幕_亚洲精品一区二区三区三区_极品福利在线_国产网址_日韩美国国产一级毛片_91午夜精品亚洲一区二区三区_日本高清黄色网站 | 成人看片在线_深夜福利备好纸巾18禁止_国产一区福利_九一精品视频_久久久国产精品无码免费专区_国产欧美在线观看精品一区二区_国产性色AV免费观看_中文字幕一区二区三区四 | 国产内射爽爽大片视频社区在线_日韩欧美一二三区_91麻豆精品91久久久久同性_夜夜爽免费888视频_国产嫖妓风韵犹存对白_日本老女人视频_日韩在线第一区_伊人ab | 国产在线一区二区三区在线_日韩国产精品一区_5566在线视频_不卡亚洲_无码人妻丰满熟妇区五十路百度_xxxxx性开放_法国性迷宫_日韩中文字幕在线不卡 | 日本熟妇厨房bbw_欧美天天影院_国产精品一二三四区_大菠萝福利视频_18禁勿入免费网站入口不卡_av不卡免费在线_免费看p_亚洲最大中文字幕无码网站 |