亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Git權(quán)威指南--穿錯歷史

2019-11-10 20:13:35
字體:
供稿:網(wǎng)友

0.查看版本庫最新五次提交

$ git log --stat --oneline -5e2609ca 加結(jié)束標(biāo)志 test_git.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)1f5c128 此處省略一萬字 test_git.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)306b97b 增加修改時間 test_git.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)0c30d3e 增加修改人 test_git.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)07cab98 新增測試文件 test_git.txt | 1 + 1 file changed, 1 insertion(+)將最近兩次提交合二為一,并把提交說明改為“增加修改時間......”

1.使用--soft 參數(shù) 調(diào)用重置命令,回到最近兩次提交之前

$ git reset --soft HEAD^^2.查看版本庫最新提交

$ git log -1commit 306b97b5dc629cb428d664c50f31f7815ad370f0Author: yinnana <nanayin@creditease.cn>Date:   Wed Feb 8 13:14:10 2017 +0800    增加修改時間3.執(zhí)行提交操作,即完成最新兩個提交壓縮為一個提交的操作

$ git commit -m "增加修改時間......"[master 060a9f4] 增加修改時間...... 1 file changed, 3 insertions(+), 1 deletion(-)4.查看提交日志,驗證

$ git log --stat --oneline -5060a9f4 增加修改時間...... test_git.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)306b97b 增加修改時間 test_git.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)0c30d3e 增加修改人 test_git.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)07cab98 新增測試文件 test_git.txt | 1 + 1 file changed, 1 insertion(+)66a5a9b modify test.txt test.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)

3.回到未來

涉及到的:揀選操作、變基操作、交互式變基操作

3.1  去除提交 D

0)對提交進(jìn)行標(biāo)識

$ git tag F$ git tag E HEAD^$ git tag D HEAD~2$ git tag C HEAD~3$ git tag B HEAD~4$ git tag A HEAD~5通過日志,可以看到被標(biāo)記的六個提交

$ git log --oneline --decorate -62cbfc1b (HEAD -> master, tag: F) 添加正文e869230 (tag: E) 編輯文本內(nèi)容6080809 (tag: D) 刪除 注意事項??!f94e582 (tag: C) 注意事項1af8a1c5 (tag: B) 添加 注意事項060a9f4 (tag: A) 增加修改時間......

1)執(zhí)行g(shù)it checkout ,暫時將HEAD頭指針切換到C(切換過程中顯示出于非跟蹤狀態(tài)的警告)

$ git checkout CNote: checking out 'C'.You are in 'detached HEAD' state. You can look around, make experimentalchanges and commit them, and you can discard any commits you make in thisstate without impacting any branches by performing another checkout.If you want to create a new branch to retain commits you create, you maydo so (now or later) by using -b with the checkout command again. Example:  git checkout -b <new-branch-name>HEAD is now at f94e582... 注意事項1
$ git log --oneline --decorate -6f94e582 (HEAD, tag: C) 注意事項1af8a1c5 (tag: B) 添加 注意事項060a9f4 (tag: A) 增加修改時間......306b97b 增加修改時間0c30d3e 增加修改人07cab98 新增測試文件

2)執(zhí)行揀選操作將E提交在當(dāng)前HEAD上重放。

因為E和master^顯然指向同一指向,因此可以用如下語法。

$ git cherry-pick master^[detached HEAD d8862cb] 編輯文本內(nèi)容 Date: Wed Feb 8 13:32:28 2017 +0800 1 file changed, 1 insertion(+), 1 deletion(-)

3)執(zhí)行揀選操作將F提交在當(dāng)前HEAD上重放

F和master指向同一指向

$ git cherry-pick master[detached HEAD 5883cdd] 添加正文 Date: Wed Feb 8 13:33:14 2017 +0800 1 file changed, 3 insertions(+)

4)通過日志看到D不存在了

$ git log --oneline --decorate -65883cdd (HEAD) 添加正文d8862cb 編輯文本內(nèi)容f94e582 (tag: C) 注意事項1af8a1c5 (tag: B) 添加 注意事項060a9f4 (tag: A) 增加修改時間......306b97b 增加修改時間

5)通過日志可以看出,最近兩次提交的原始創(chuàng)作日期(AuthorDate)和提交日期(CommitDate)不同。

AuthorDate是揀選提交的原始更改時間,CommitDate是揀選操作的時間

$ git log --PRetty=fuller --decorate -3commit 5883cddb3b5d8f5a88aec7eb1ce1ff616a9606e4 (HEAD)Author:     yinnana <nanayin@creditease.cn>AuthorDate: Wed Feb 8 13:33:14 2017 +0800Commit:     yinnana <nanayin@creditease.cn>CommitDate: Wed Feb 8 14:00:40 2017 +0800    添加正文commit d8862cbb1913ced14ce4c9441204019965751567Author:     yinnana <nanayin@creditease.cn>AuthorDate: Wed Feb 8 13:32:28 2017 +0800Commit:     yinnana <nanayin@creditease.cn>CommitDate: Wed Feb 8 13:58:16 2017 +0800    編輯文本內(nèi)容commit f94e582809f7cc05bf5e8c9950dd32ebc4ac6ac4 (tag: C)Author:     yinnana <nanayin@creditease.cn>AuthorDate: Wed Feb 8 13:30:53 2017 +0800Commit:     yinnana <nanayin@creditease.cn>CommitDate: Wed Feb 8 13:30:53 2017 +0800    注意事項16)將master分支重置到新的提交ID(5883cdd)上

下面的切換操作使用了reflog的語法,即HEAD@{1}相當(dāng)于切換回master分支前的HEAD指向

$ git checkout masterWarning: you are leaving 2 commits behind, not connected toany of your branches:  5883cdd 添加正文  d8862cb 編輯文本內(nèi)容If you want to keep them by creating a new branch, this may be a good timeto do so with: git branch <new-branch-name> 5883cdd
$ git reset --hard HEAD@{1}HEAD is now at 5883cdd 添加正文

比較

2cbfc1b (HEAD -> master, tag: F) 添加正文e869230 (tag: E) 編輯文本內(nèi)容6080809 (tag: D) 刪除 注意事項??!f94e582 (tag: C) 注意事項1af8a1c5 (tag: B) 添加 注意事項060a9f4 (tag: A) 增加修改時間......后**********5883cdd (HEAD -> master) 添加正文d8862cb 編輯文本內(nèi)容f94e582 (tag: C) 注意事項1af8a1c5 (tag: B) 添加 注意事項060a9f4 (tag: A) 增加修改時間......306b97b 增加修改時間

3.2 合并 提交CD

0)將master分支重新置回到提交F上
$ git checkout masterAlready on 'master'
$ git reset --hard FHEAD is now at 2cbfc1b 添加正文
$ git log --oneline --decorate -62cbfc1b (HEAD -> master, tag: F) 添加正文e869230 (tag: E) 編輯文本內(nèi)容6080809 (tag: D) 刪除 注意事項!!f94e582 (tag: C) 注意事項1af8a1c5 (tag: B) 添加 注意事項060a9f4 (tag: A) 增加修改時間......1)暫時將HEAD頭指針切換到D
$ git checkout DNote: checking out 'D'.You are in 'detached HEAD' state. You can look around, make experimentalchanges and commit them, and you can discard any commits you make in thisstate without impacting any branches by performing another checkout.If you want to create a new branch to retain commits you create, you maydo so (now or later) by using -b with the checkout command again. Example:  git checkout -b <new-branch-name>HEAD is now at 6080809... 刪除 注意事項?。?)悔棋兩次,以便將C和D融合
$ git reset --soft HEAD^^
$ git log --oneline --decorate -6af8a1c5 (HEAD, tag: B) 添加 注意事項060a9f4 (tag: A) 增加修改時間......306b97b 增加修改時間0c30d3e 增加修改人07cab98 新增測試文件66a5a9b modify test.txt3)提交,重用提交C的提交說明
$ git commit -C C[detached HEAD 670829a] 注意事項1 Date: Wed Feb 8 13:30:53 2017 +0800 1 file changed, 1 insertion(+), 1 deletion(-)4)執(zhí)行揀選操作將E提交在當(dāng)前HEAD上重放
$ git cherry-pick E[detached HEAD 133d8cf] 編輯文本內(nèi)容 Date: Wed Feb 8 13:32:28 2017 +0800 1 file changed, 1 insertion(+), 1 deletion(-)5)執(zhí)行揀選操作將F提交在當(dāng)前HEAD上重放
$ git cherry-pick F[detached HEAD 2642edf] 添加正文 Date: Wed Feb 8 13:33:14 2017 +0800 1 file changed, 3 insertions(+)6)通過日志看到提交C和D融合,所以在日志中看不到C的標(biāo)簽
$ git log --oneline --decorate -62642edf (HEAD) 添加正文133d8cf 編輯文本內(nèi)容670829a 注意事項1af8a1c5 (tag: B) 添加 注意事項060a9f4 (tag: A) 增加修改時間......306b97b 增加修改時間7)將master分支指向新的提交ID(2642edf)下面的切換操作使用了reflog的語法,即HEAD@{1}相當(dāng)于切換回master分支前的HEAD指向
$ git checkout masterWarning: you are leaving 3 commits behind, not connected toany of your branches:  2642edf 添加正文  133d8cf 編輯文本內(nèi)容  670829a 注意事項1If you want to keep them by creating a new branch, this may be a good timeto do so with: git branch <new-branch-name> 2642edfSwitched to branch 'master'
$ git reset --hard HEAD@{1}HEAD is now at 2642edf 添加正文
$ git log --oneline --decorate -62642edf (HEAD -> master) 添加正文133d8cf 編輯文本內(nèi)容670829a 注意事項1af8a1c5 (tag: B) 添加 注意事項060a9f4 (tag: A) 增加修改時間......306b97b 增加修改時間

3.3 rebase 變基操作

0)將master分支重新置回到提交F上
$ git checkout masterAlready on 'master'
$ git reset --hard FHEAD is now at 2cbfc1b 添加正文git rebase 可以實現(xiàn)將指定范圍的提交 嫁接到另一個提交之上命令格式:用法1:git rebase --onto <newbase><since> <till>用法2:git rebase --onto <newbase><since>用法3:git rebase <since><till>用法4:git rebase  <since>用法5:git rebase  -i ...用法6:git rebase --continue用法7:git rebase --skip用法8:git rebase --abort

用法6是在變基遇到?jīng)_突而暫停的情況下,先完成沖突解決(添加到暫存區(qū),不提交),然后在恢復(fù)變基操作的時候使用該命令。

用法7是在變基遇到?jīng)_突而暫停的情況下,跳過當(dāng)前提交的時候使用。

用法8是在變基遇到?jīng)_突而暫停的情況下,終止變基操作,回到之前的分支時候使用。

用法1為例,其用法如下:

git rebase --onto <newbase><since> <till>

1.首先會執(zhí)行 git checkout 切換到 <till>

如果<till>指向 的不是一個分支(如master),則變基操作是在 detached HEAD(分離頭指針)狀態(tài)進(jìn)行的,

當(dāng)變基結(jié)束后,像上述3.1那樣,對master分支執(zhí)行重置以實現(xiàn)變基結(jié)果在分支中生效。

2.將<since>...<till>所標(biāo)識的提交范圍寫到一個臨時文件中

包括<till>的所有歷史提交排除<since>及<since>的歷史提交后形成的版本范圍

3.將當(dāng)前分支強(qiáng)制重置(git reset --hard)到<newbase>

相當(dāng)于執(zhí)行g(shù)it reset --hard <newbase>

4.從保存在臨時文件中的提交列表中,將提交逐一按順序重新提交到重置之后的分支上

5.如果遇到提交已經(jīng)在分支中包含,則跳過該提交

6.如果在提交過程中遇到?jīng)_突,則變基過程暫停。

用戶解決沖突后,執(zhí)行 git rebase --continue 繼續(xù)變基操作,

或者執(zhí)行 git rebase --skip跳過此提交,

或執(zhí)行 git rebase --abort就此終止變基操作切換到當(dāng)前變基前的分支上

很顯然為了執(zhí)行將E和F提交跳過提交D,嫁接到提交C上,可以執(zhí)行如下變基命令:

git rebase --onto C E^ F

因為 E^ 等價于D,并且F和當(dāng)前HEAD的指向相同,因此可以這樣:

git rebase --onto C D

$ git status -s -b## master
$ git log --oneline --decorate -62cbfc1b (HEAD -> master, tag: F) 添加正文e869230 (tag: E) 編輯文本內(nèi)容6080809 (tag: D) 刪除 注意事項??!f94e582 (tag: C) 注意事項1af8a1c5 (tag: B) 添加 注意事項060a9f4 (tag: A) 增加修改時間......


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
国产精品91久久| 欧美国产91| 一级视频在线观看视频在线啦啦| 四虎免费av| 黄色av片三级三级三级免费看| 精品日本视频| 四虎成人免费| 综合在线一区| 美国毛片一区二区三区| 中文字幕一区二区精品| 少妇影院在线观看| 香蕉视频国产精品| 国产精品久久婷婷六月丁香| 女人裸体免费网站| 国产91绿帽单男绿奴| 国内精品视频| 欧美韩国日本综合| 国产美女精品人人做人人爽| 久久精品二区三区| 国产午夜精品一区在线观看| 国产高清一级片| 亚洲一级二级片| 日本国产欧美| 亚洲色图综合久久| 91蝌蚪视频在线| 亚洲一区二区三区精品在线观看| www.com黄色片| 久草福利在线视频| 久久精品久久精品国产大片| 免费h精品视频在线播放| 成人精品一区二区三区校园激情| 欧美极品美女视频网站在线观看免费| 午夜免费欧美电影| 欧美 日韩 国产一区二区在线视频| 国产日韩欧美黄色| 在线免费一区三区| 91国产视频在线| 激情五月婷婷网| 2021年精品国产福利在线| 欧美一卡二卡在线观看| 亚洲一区二区三区免费在线观看| 色婷婷综合久久久久中文| 精品国产乱子伦一区| 1000部国产精品成人观看| 一区二区三区日本| 999在线观看精品免费不卡网站| 九九九九九伊人| 欧美中文字幕精在线不卡| 久久综合久久综合这里只有精品| 国内精彩免费自拍视频在线观看网址| 美女一区视频| 一级黄色片在线免费观看| 国产精品久久久免费视频| 亚洲免费观看高清完整版在线观看| 日本成人伦理电影| 四虎国产精品成人永久免费影视| 亚洲成人激情社区| 奇米影视一区二区三区小说| 久久99中文字幕| yy6080午夜| 四虎国产精品成人免费影视| 亚欧精品一区| 国产精品视频福利一区二区| 精品不卡视频| 欧美在线你懂的| 国产成人精品视频在线观看| 国产精品日韩精品| 黄页网站在线免费观看| 黄黄视频在线观看| 国产人成一区二区三区影院| 岛国精品在线| 国产在线视频在线| 中文字幕97| 久久精品亚洲牛牛影视| 在线视频这里只有精品| 污污的网站在线免费观看| 一级少妇精品久久久久久久| 天天插天天色| 久久久女女女女999久久| 日韩一区二区三区在线观看| 丁香花在线影院观看在线播放| 欧美成人一区二区三区在线观看| 女人扒开双腿让男人捅| 男人天堂avav| 波多野吉衣中文字幕| 懂色中文一区二区三区在线视频| 一级片黄色免费| 国产精品一区二区久久精品爱涩| 亚洲一区二区| 国产九九九九| 欧美亚洲愉拍一区二区| 日韩午夜av在线| 日韩免费观看高清完整版| 免费久久一级欧美特大黄| 国产免费不卡视频| av男人的天堂在线观看| 欧美亚洲愉拍一区二区| 肉丝袜脚交视频一区二区| 先锋av资源站| 中字幕一区二区三区乱码| 国产精品久久精品视| 久久中文字幕一区| 色狠狠av一区二区三区香蕉蜜桃| 91精品国产自产精品男人的天堂| 在线亚洲美日韩| 超碰在线国产97| 久久久久亚洲av无码麻豆| 国产裸体舞一区二区三区| 91麻豆天美传媒在线| 日本精品一区二区三区在线| 啪啪免费网站| 成人爽a毛片免费啪啪| 小明成人免费视频一区| 亚洲av无一区二区三区久久| 毛片网站在线看| 美女一区二区三区| 国产欧美成人| 在线观看国产黄| 免费看成人午夜电影| 三级网站在线看| 亚洲在线免费视频| 一级日本免费的| 久久精品一区二区三区不卡免费视频| 伊人久久久久久久久| 精品剧情v国产在线观看在线| 中文在线观看免费高清| 亚洲中国色老太| av网站在线免费看推荐| 国产午夜性春猛交ⅹxxx| 国产剧情av在线| 1024视频在线| 69成人在线| 五月天亚洲精品| 欧美mv日韩mv亚洲| 给个网站可以在线观看你懂的| 黑人巨大狂躁日本妞在线观看| 天天操天天射天天色| 91av入口| 日本成人激情视频| 亚洲男人的天堂在线视频| 91久久久久久久久久久久久| 一区二区三区在线高清| www.超碰在线观看| 久久久久久久久久久91| 久久久久久国产精品| 99爱在线观看| 波多野结衣办公室33分钟| 国产在线一二三| 日本不卡免费在线视频| 国产67194| 亚洲第一精品在线观看| 日韩三级一区| 亚洲天堂网在线观看| 欧美最猛性xxxx| 成人免费观看网站| 日本一区二区不卡高清更新| 亚洲视频sss| 99九九99九九九99九他书对| 男人天堂网在线观看| 99久久婷婷国产综合精品| 99re这里只有精品在线| 亚洲日本视频在线观看| 欧美高清性xxxxhdvideosex| 在线视频观看国产| 91在线国产电影| 日韩欧美不卡在线观看视频| 免费观看美女裸体网站| 国产精品视频一区二区图片| 亚洲人永久免费| 久久99精品久久久久久久久久久久| 欧美日韩午夜激情| 最近免费观看高清韩国日本大全| 欧美黑白配在线| 亚洲理伦在线| 大香伊人中文字幕精品| 日韩xxxxxxxxx| 亚洲欧美另类日韩| 4438亚洲最大| 亚洲av午夜精品一区二区三区| 国产成人高清精品| 中国女人特级毛片| 国产日韩av在线播放| 日韩av成人在线观看| 国产午夜激情视频| 69堂亚洲精品首页| 久久久久久网址| 午夜精品一区二区在线观看的| 男女男精品视频站| 800av在线播放| 欧美国产中文高清| 国产精品福利网| 国产精品亚洲专一区二区三区| 亚洲综合色丁香婷婷六月图片| 免费一二一二在线视频| 亚洲免费福利视频| 国产中文字幕免费| 久久av一区二区| 天堂一区二区在线| 亚洲精品综合网| 午夜爽爽爽男女免费观看影院| 久久久一区二区三区不卡| 欧美日韩国产精品一区二区三区| 亚洲免费av一区二区三区| 日本精品一区二区三区在线| 99精品在线| 99久re热视频精品98| 国语精品免费视频| 思思99精品视频在线观看| 香蕉视频国产精品| 人妻av无码一区二区三区| 日韩欧美精品中文字幕| 日本高清不卡在线| 日韩一级免费在线观看| 国产蜜臀在线| 亚州精品一二三区| 亚洲春色在线视频| 91麻豆精品国产91久久久久推荐资源| 动漫黄在线观看| 国产日韩一级二级三级| 欧美一区影院| 色综合色综合色综合| fc2在线中文字幕| 午夜福利视频一区二区| 永久免费不卡在线观看黄网站| 亚洲视频在线观看一区二区| 成人羞羞国产免费图片| 久久久国产精品x99av| 青青在线视频一区二区三区| 尤物精品在线| 亚洲第一色网站| 国产精品一区亚洲| 国产3p在线播放| 欧美麻豆久久久久久中文| 国产传媒一区二区三区| 国产日产欧美视频| 日韩在线视频一区二区三区| 日本三级免费网站| 91麻豆精品秘密| 国产成人精品a视频一区| 亚洲欧美日韩精品久久久| 日韩欧美精品三级| 99在线免费观看视频| 欧美激情一区二区三区在线视频| www在线观看免费视频| 国产精品久久久久久久久借妻| 国产精品久久久久久久久搜平片| av资源网在线观看| 一区免费视频| 久久99久久久精品欧美| 羞羞在线观看网站| 内射一区二区三区| 国产亚洲第一伦理第一区| 国产亚洲成av人片在线观看| 理论视频在线观看| 精品无人国产偷自产在线| 日韩精品手机在线观看| 久久久久久中文| 国产精品毛片久久| 国产经典一区二区三区| 日本少妇全体裸体洗澡| 无码av免费精品一区二区三区| 99热精品在线观看| 亚洲国产日韩在线一区模特| 国产精品国内视频| 色综合久久悠悠| 欧美二区三区91| 婷婷丁香激情五月| 四虎www4hu永久免费| 国产精品久久久久一区二区三区共| 日韩av新片网| 亚洲午夜剧场| 日本免费视频| 国产精品露出视频| 精品极品三级久久久久| 国产高清一级毛片在线不卡| 在线综合视频| 在线播放免费| 福利在线白白| 久久久人成影片一区二区三区观看| 国产在线不卡一卡二卡三卡四卡| 欧美成人免费大片| 国产精品一区二区久久国产| 天堂中文资源在线观看| 成人精品电影在线观看| 好男人看片在线观看免费观看国语| 亚洲精品一区二区| 日韩一区二区视频在线观看| 日韩在线国产| 国产精品一区二区三区四| 国产高潮流白浆| 超碰在线caoporen| 一二区在线观看| 精品国产一区二区三区四区vr| 亚洲香肠在线观看| 日韩欧美一级二级三级久久久| 日本人亚洲人jjzzjjz| 91色在线porny| av在线免费不卡| 亚洲成av人片在线观看无| 午夜精品影视国产一区在线麻豆| 国产区欧美区日韩区| 亚洲最大成人网色| 污污美女网站| 美女激情视频网站| 免费精品一区| 麻豆传媒视频在线观看免费| 任你躁在线精品免费| 日本高清一二三区| 美女视频一区二区三区| 日韩一区二区中文字幕| 青青草视频在线免费观看| 欧美日本亚洲视频| 成人自拍在线| 久久www免费人成精品| 91超碰中文字幕久久精品| 欧美大香线蕉线伊人久久| 免费激情视频网站| 中文字幕高清在线播放| 欧美亚洲第一页| 在线视频在线视频7m国产| 牛牛在线精品视频| 99精品人妻少妇一区二区| 久久精品91久久香蕉加勒比| 最新天堂资源在线| 懂色av一区二区三区免费看| 亚洲黄网站黄| 国产精品无遮挡| 亚洲精品视频在线观看免费视频|