第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

GIT如何修改author date和commiter date

GIT如何修改author date和commiter date

慕桂英4014372 2018-07-08 20:22:16
需要使用gitlab的merge request方式,在嘗試new Merge Request時gitlab頁面報錯,經(jīng)過查看gitlab后臺日志,顯示“Rugged::OdbError (Failed to parse commit aef3846d6401d68asdfsdf281c39cb584b812d - cannot parse commit time):app/services/compare_service.rb:11:in `new'app/services/compare_service.rb:11:in `execute'app/controllers/projects/compare_controller.rb:13:in `show'”看了這個commit ,author_date和commiter_date是2099年(沒錯,這個項目之前是開放修改的,開發(fā)人員為了自測改了本地日期,commit時忘了改回來了)??傊?,這個項目上有一些commit都是這兩個日期在當(dāng)前日期之后的,估計是這個日期影響了compare,現(xiàn)在嘗試把它們改回來。查看了很多資料,覺得git filter-branch應(yīng)該能夠解決這個問題,嘗試了如下腳本:git filter-branch -f --env-filter '    if [ $GIT_COMMIT = aef3846d6401d68asdfsdf281c39cb584b812d ]   then        export GIT_AUTHOR_DATE="Mon Jun 25 14:13:00 CST 2018"        export GIT_COMMITER_DATE="Mon Jun 25 14:13:00 CST 2018"    fi'然而并沒有起作用,腳本正常運(yùn)行完,日期還是沒有變化。有沒有處理過類似問題的兄弟望賜教!
查看完整描述

1 回答

?
三國紛爭

TA貢獻(xiàn)1804條經(jīng)驗 獲得超7個贊

自己來答吧,最后選用了這個辦法:

git rebase -i xxxxxx^

其中xxxxxx是錯誤的提交的commit_hash,然后在出現(xiàn)的pick編輯器中,將xxxxxx前面的pick改為edit;
這樣在做rebase時,遇到指定的commit,會停住進(jìn)行交互,執(zhí)行下面命令對commit進(jìn)行編輯:

GIT_COMMITTER_DATE='2018-07-12 00:00:00' GIT_AUTHOR_DATE='2018-07-12 00:00:00' git commit --amend --no-edit --date '2018-07-12 00:00:00'

修改commit的日期,然后git rebase --continue

完成rebase后 git push --force

說起來簡單,實際實現(xiàn)起來,由于提交歷史太多了,幾千條,其中日期錯誤的零零散散幾十條,所以git rebase -i 的時候選取最早一次出現(xiàn)的錯誤commit,然后在編輯器里把需要修改日期的commit都改為edit,再進(jìn)行交互,由于可能有合并沖突的,可能有新增文件的需要git add .的,幾千條中需要不停的人機(jī)交互......

又搗鼓了很長時間,用java寫了個程序,執(zhí)行shell命令,根據(jù)命令的不同的輸出進(jìn)行不同的輸入,還在測試中,就不展開說了。


查看完整回答
反對 回復(fù) 2018-07-14
  • 1 回答
  • 0 關(guān)注
  • 1497 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號