写在开头
这个并不是介绍Git如何使用的,而是记下了我需要用到某些功能时才去查询的,也许会是实用功能,也许并不会经常用到,当然本篇还记录了使用git中遇到的一些错误以及解决方法
(对本人)实用例子
如果是撤销所有的已经add的文件:
git reset HEAD .
从别人的远程分支checkout 一个本地的分支
git checkout -b mt-dcs remotes/origin/mt-dcs
可以合并代码并且不会有merge的commit
git pull -r origin xxx(就是rebase)
git fetch更新远程分支
git branch -a 只是显示保存在本地的远程分支的信息,有时会看不到远程分支新建的分支
删除某个branch
git branch -d xxx
查看某个文件的改动历史
git log -p filename
比较两个分支上的文件的区别
git diff master 分支名 (比较主分支和另一个分支的区别)
git 合并多个commit
git rebase -i xxxx
- -i xxx为不需要参与合并的commit的值
- p(pick) 提交的commit
- s(squash )为合并到前一个commit
例如
commit 3
message3
commit 2
message2
commit 1
message1
git rebase -i 1
出现
pick 2 message2
pick 3 message3
#.....
#.....
此时改为
pick 2 message2
squash 3 message3
#.....
#.....
即可将commit3合并到commit2,之后可以修改合并后的commit信息
合并后提交要 git push -f origin xxx
git更新远程分支(从fork的源仓库(别人的)更新代码)
先从远程别人的分支合并到本地分支,在push到自己的远程分支。
如果从图形界面会导致多一个commit
步骤:
添加一个远程仓库,此时只是空壳,还没有同步内容,引用 fork 的原仓库地址
git remote add originUpstream https://github.com/AFNetworking/AFNetworking.gitcommit(提交)本地的变更;如果本地没有修改内容,此步骤可忽略
git commit更新远程仓库,从引用 fork 的原仓库地址同步内容,此时原仓库的 master(主干分支)已经可以在本地访问了
git remote update originUpstreamcheckout(检出)用于操作的本地分支
比如 master分支 git checkout master如果此时分支为已检出状态,此步骤可忽略
直接从远程仓库的分支 pull(拉取) 数据
git pull originUpstream master 或者本地已检出分支基于远程仓库的分支进行 rebase(变基)操作 git rebase originUpstream/master把本地已检出分支的已提交数据 push(推送) 到自己 fork 的仓库中
git push origin master
ERROR
Interactive rebase already started
If you accidentally exit while doing an interactive rebase, you can clean it with this command.
git rebase -i --abort
这篇博客记录了Git的一些实用操作,如撤销已add文件、从远程分支检出本地分支、合并代码、查看文件历史及对比分支差异,同时也涵盖了在使用过程中遇到的'Interactive rebase already started'错误的解决方案。
674

被折叠的 条评论
为什么被折叠?



