Git使用总结
2016-11-28 本文已影响17人
karlsu
1.为了完成新的业务需求,创建了feature分支,完成开发之后,需要将代码merge到release分支同时删除此feature分支,删除远程分支之后,调用git branch -a 的时候,之前创建的feature分支依旧存在,如何删除本地缓存的分支呢?
- git remote prune origin
- git fetch -p
2 . git revert和git reset的区别
git reset是直接删除指定的commit(适用于commit未push到远端到情况)。
- reset --hard 默认将本地commit全部重置
- reset --hard HEAD~3 会将最新的3次提交全部重置
git revert是用一次新的commit来回滚之前的commit(适用于commit已经push到远端到情况)。
- git revert commitId 撤销指定一次commit
- git revert HEAD 撤销前一次 commit
- git revert HEAD^ 撤销前前一次 commit
git reset 是把HEAD向后移动了一下,而git revert是HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容。
3. git查看远程仓库地址命令
git remote -v
3.git log查找某一个author的提交
git log --author='author'
4.基于当前分支拉远端分支
方法1
- 1.git checkout -b branch_xxx
- 2.git push origin branch_xxx
方法2
git push --set-upstream origin branch_xxx
5.git 中如何撤销部分修改?
1、如果没有被git add到索引区
git checkout a 便可撤销对文件a的修改
2、如果被git add到索引区,但没有做git commit提交
1)使用git reset将a从索引区移除(但会保留在工作区)git reset HEAD a
2)撤销工作区中文件a的修改git checkout a
3、如果已被提交,则需要先回退当前提交到工作区,然后撤销文件a的修改
1)回退当前提交到工作区git reset HEAD^
2)撤销工作区
git checkout a
6.git 打标签并推送tag到托管服务器
git标签分为两种类型:轻量标签和附注标签。轻量标签是指向提交对象的引用,附注标签则是仓库中的一个独立对象,建议使用附注标签。
1.创建轻量标签
git tag v_1.0
2. 创建附注标签
git tag -a v_1.0 -m '1.0.0版本'
创建轻量标签不需要传递参数,直接指定标签名称即可。
创建附注标签时,参数a即annotated的缩写,指定标签类型,后附标签名。参数m指定标签说明,说明信息会保存在标签对象中。
7.合并分支报错
error: Commit 48d4329664e66e6ccf43c3655ec1f82903ce47b8 is a merge but no -m option was given.
fatal: cherry-pick failed
增加-m 参数
git cherry-pick 48d4329664e66e6ccf43c3655ec1f82903ce47b8 -m 1