git使用详细总结

集成常用的一些操作,方便快速上手
本文首先简单介绍一些git的几个区域和区域之间的命令,然后是git中一个比较重要的概念分支的相关操作,接着是打标签的一些相关内容,最后是对提交历史的一些查看和一些其他命令。

前置知识

在这里插入图片描述

Git的区域分为 工作区、暂存区、本地仓库区、本地远程仓、远程仓库

关联远程仓库 如果还没有Git仓库,你需要 git init

初次提交需要关联远程仓库 git remote add origin https://github.com/xxxxxx  # 是远程仓库的名称,通常为 origin

工作区(work directory):一般就是我们项目的根目录。

git add files:把当前工作文件拷贝到暂存区域。

暂存区(stage):版本库中设立一个暂存区(Stage or Index),作为用来直接跟工作区的文件进行交互,工作区文件的提交或者回滚首选都是通过暂存区,而版本库中除了暂存区之外,文件的提交的最终存储位置是分支(Branch),在创建版本库的时候默认都会有一个主分支(Master)。

git commit:在暂存区域生成文件快照并提交到本地仓库。

本地仓库(repository):我们在为项目添加本地库之后,会在工作区生成一个如下图所示的隐藏目录“.git”,.git目录即为当前工作区的本地版本库

git push origin master -f   			-f代表强制提交

Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换。

git status【查看当前工作空间状态】

在这里插入图片描述

分支
git branch xxx 创建一个新的分支

git branch 查看当前所在分支【* 表示当前】

git checkout xxx 从当前分支切换某个分支

git checkout dev【切到dev次分支】

git pull【获取dev分支变化,合并冲突,使本地dev次分支最新】


git checkout master【先切到主分支master上】

git merge dev【一般是git merge dev,将dev开发完的合并到master上】

git push -u origin master【提交master分支到线上master】
标签

常用的标签想必大家都用过,用来标记和记录一些未完成的事情,其实在Git中也有标记

标签命令如下:

列出标签

git tag # 在控制台打印出当前仓库的所有标签

git tag -l ‘v0.1.*’ # 搜索符合模式的标签 

#打标签

git tag v0.1.2-light

切换到标签

与切换分支命令相同,用git checkout [tagname]

查看标签信息

用git show命令可以查看标签的版本信息:

git show v0.1.2

删除标签

误打或需要修改标签时,需要先将标签删除,再打新标签。

git tag -d v0.1.2 # 删除标签

参数d即delete的缩写,意为删除其后指定的标签

给指定的commit打标签

这需要你知道某个提交对象的校验和(通过git log获取)。

补打标签

git tag -a v0.1.1 9fbc3d0

标签发布

通常的git push不会将标签对象提交到git服务器,我们需要进行显式的操作:

 git push origin v0.1.2 # 将v0.1.2标签提交到git服务器

git push origin –tags # 将本地所有标签一次性提交到git服务器

注意:如果想看之前某个标签状态下的文件,可以这样操作

git tag   查看当前分支下的标签

git  checkout v0.21   此时会指向打v0.21标签时的代码状态,(但现在处于一个空的分支上)
查看历史

查看历史命令:

显示全部的日志信息:git log 不能察看已经删除了的commit记录

显示1行日志信息: git log -pretty=oneline

显示1行的一部分:git log --oneline

显示全部信息:git reflog 可以查看所有分支的所有操作记录(包括(包括commit和reset的操作)
其他命令
查看配置 git config --list

检出到任意版本 git checkout a5d88ea

 git rebase -i HEAD~4 
这个命令,将最近4个commit合并为1个,HEAD代表当前版本。
将进入VIM界面,你可以修改提交信息。
推送到远程分支的commit,不建议这样做,多人合作时,通常不建议修改历史。

回调到上一个版本 git reset --hard HEAD^

回退错了 前进 git reflog

当文件名过长时会报错
	atal: unable to stat 'SlidingMenu/build/tmp/expandedArchives/classes.jar_9xsqkluthu17h6nhfgy4rp26h/android/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoJellyBeanMr2.class': Filename too long
 during executing git -c core.quotepath=false add --ignore-errors -- SlidingMenu/build/intermediates/classes/release/com/jeremyfeinstein/slidingmenu/lib/SlidingMenu$CanvasTransformer.class

需要执行一下命令配置

git config core.longpaths true

解决git每次提交推送都要输入密码

git config --global credential.helper store

配置用户名和邮箱(只是本地git的用户名和邮箱,不是GitHub的用户名和密码)

git config --global user.name  "username"  
git config --global user.email  "email"

出现错误:fatal: refusing to merge unrelated histories
解决: git pull origin master --allow-unrelated-histories

问题
git执行 git clone 或者 git push 报以下错误:

remote: HTTP Basic: Access denied

原因
账号密码验证不通过,密码或者权限不对,导致 Git 操作失败。

解决方法一 (最有效)
输入:git config --system --unset credential.helper
再次进行 Git 操作,输入正确的用户名,密码即可。

解决方法二
输入:git config –global http.emptyAuth true
再次进行 Git 操作,输入正确的用户名,密码即可。

解决方法三
进入控制面板》用户账号》凭据管理器?windows凭据》普通凭据,在里面找到git,点开编辑密码,更新为最新密码之后就可以正常操作了。


  

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值