您的位置:首页 > 其它

Git-命令的使用

2014-06-02 00:00 183 查看
摘要: 记录着使用 git 命令来完成特定的事务.

丢弃历史

如现有提交历史: A->B->C->D->E->F,欲丢弃 C 之前的提交历史使得历史记录变为: C->D->E->F,则此时:

基于 C 创建一个根提交,可以使用 git commit-tree

将 D,E,F 变基到刚创建的根提交上.如下:

$ git log --oneline --decorate --graph  # 当前提交历史
* fdc7fff (HEAD, tag: F, master) F
* d46f42d (tag: E) E
* 6501e33 (tag: D) D
* a0699ec (tag: C) C
* b97d344 (tag: B) B
* 7929c37 (tag: A) A
$ git commit-tree -m 'C' tags/C^{}^{tree} # 创建一个根提交
7b99fe372d8324172f88b814ff1bdffac97338b8
$ git rebase --onto 7b99fe372d8324 C F    # 执行变基操作.
首先,重置头指针以便在上面重放您的工作...
正应用: D
正应用: E
正应用: F
$ git status    # 注意 git rebase 之后处于分离头指针状态.
# HEAD detached from 7b99fe3
nothing to commit, working directory clean
$ git checkout master   # 切换到 master.
警告: 您正丢下 4 个提交,未和任何分支关联:
4eb1223 F
c5d1c66 E
9686a0e D
7b99fe3 C
切换到分支 'master'
$ git reset --hard HEAD@{1} # 注意这一步.
$ git status
# 位于分支 master
nothing to commit, working directory clean
$ git log --oneline --decorate --graph  # 成功删除历史
* 4eb1223 (HEAD, master) F
* c5d1c66 E
* 9686a0e D
* 7b99fe3 C
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: