git学习

一、git安装

git官方文档

mac安装包

windows安装包

linux安装

二、git配置

git config --global user.name 'your _name'
git config --global user.email 'your_email@domain.com'

config作用域:

local:只对某个仓库有效
global:对当前用户的所有仓库有效
system:对系统所有登录的用户有效

显示config的配置,加–list

git config --list --local
git config --list --global
git config --list --system

清除config设置

$ git config --unset --local user.name
$ git config --unset --global user.name
$ git config --unset --system user.name	

三、创建仓库并配置local用户信息

两种场景:
1、把已有的项目代码纳入git管理

cd 项目代码所在文件夹
git init

2、新建的项目直接用git管理

cd 某个文件夹
git init your_project #会在当前路径下创建和项目名称同名的文件夹
cd your project

四、基本使用

git add							#添加追踪文件
git add .						#将文件的修改、新建,添加到暂存区(git2.x下与git add -A效果一致)
git add -u						#将文件的修改、删除,添加到暂存区(不包含没有纳入git管理的新增文件)
git add -A						#将文件的修改、删除、新建,添加到暂存区
git status						#查看状态
git commit						#提交文件
git log							#查看git日志

五、文件重命名

将版本控制文件readme重命名为readme.md

方案一

mv readme readme.md
git add readme.md
git rm readme
git commit

方案二

git mv readme readme.md

清理暂存区内容

git reset --hard

六、查看git日志

git log --oneline				#整行简洁查看日志
git log -n4 --oneline			#查看最近4条日志
git log --all					#查看所有分支日志
git log --all --graph			#图形化界面查看日志
git log [branch]				#查看某分支日志
git help --web log				#跳转到git log的帮助文档网页
gitk							#调起图形化界面工具
gitk /src/filename				#查看单个文件的修改历史

七、.git目录

在这里插入图片描述

git cat-file 							显示版本库对象的内容、类型及大小信息。
git cat-file -t b44dd71d62a5a8ed3 		显示版本库对象的类型
git cat-file -s b44dd71d62a5a8ed3 		显示版本库对象的大小
git cat-file -p b44dd71d62a5a8ed3		显示版本库对象的内容
git diff HEAD HEAD^1/ HEAD~3			比较当前版本与前1/前3次之前的差异

HEAD:指向当前的工作路径
config:存放本地仓库(local)相关的配置信息。
refs/heads:存放分支
refs/tags:存放tag,又叫里程牌 (当这次commit是具有里程碑意义的 比如项目1.0的时候 就可以打tag)
objects:存放对象 .git/objects/ 文件夹中的子文件夹都是以哈希值的前两位字符命名 每个object由40位字符组成,前两位字符用来当文件夹,后38位做文件。

八、git中commit、tree、blob对象之间的关系

每次commit会产生一个唯一的hash值,每个commit操作都至少会产生一个tree,这个tree是包含整个仓库中所有文件夹及文件和本次新增文件的一个“快照”,tree表征的是文件夹,blob表征的是文件。

通过git cat-file -p 某个commit的hash或git cat-file -p某个commit对应的tree的hash可以查看某次commit具体操作了哪些文件

九、分离头指针

detached HEAD:基于某次commit进行开发(HEAD指针指向某次commit),且未与分支绑定。在未绑定前,切换分支,会丢失之前的开发成果,故在进入分离头指针状态下,在切换分支前切记是否需要保留此次开发成果。

十、分支管理

git branch											查看本地分支
git branch -r										查看远程分支
git branch -av										展示所有分支
git branch branch_name								创建分支
git checkout branch_name							切换分支
git checkout -b branch_name master					在master分支上创建新分支,并切换至新分支
git branch -d branch_name							删除分支
git branch -D branch_name							强制删除分支
git branch --set-upstream master origin/next		指定本地master分支自动追踪origin/next分支,存在追踪关系,则git pull默认拉取该分支代码

十一、git commit

git commit --amend						修改最近一次commit的message
git rebase -i 目标commit前一次的hash值	变基操作,修改备注、合并commit

十二、git diff

git diff --cached/stage					比较暂存区和HEAD
git diff								比较工作区和暂存区
git diff branch1 branch2 <--file>			比较分支或commit之间的差异

十三、git reset

暂存区

git reset HEAD <file>	将暂存区文件恢复成和HEAD一样
git reset --soft		将HEAD修改为指定的commit,暂存区,工作区不变
git reset --hard		将HEAD,暂存区,工作区都修改为指定commit
git reset --mixed		默认值,将HEAD,暂存区修改为指定commit,工作区不变

十四、git checkout

工作区

git checkout filename	将工作区文件恢复为和暂存区一样

十五、git rm

git rm filename		删除文件

十六、git stash

git stash list			工作进度列表
git stash				保存工作进度
git stash apply			拉取最新的工作进度
git stash pop			拉取最新的工作进度,并删除该记录

十七、git的备份

在这里插入图片描述
直观区别:

哑协议传输进度不可见,智能协议传输进度可见;
智能协议比哑协议传输速度快;

十八、git remote

git remote											列出所有远程主机
git remote -v										查看远程主机网址
git remote show	<host>								查看主机详细信息
git remote add <host> <url> 						添加远程主机	隐式添加git clone git@192.168.118.128:/home/gitrepo/test.git
git remote rm/remove <host>							删除远程主机
git remote rename <oldhost> <newhost>				远程主机改名
git pull remotehost remotebranch localbranch		从remotehost主机拉取remotebranch分支代码到localbranch分支
git push [<host>] [<localbranch>][:<remotebranch>]	推送代码,host默认为origin,localbranch默认为当前分支,remotebranch默认为当前分支追踪的分支
														当remotebranch不存在时,会在远程主机新建一个同名分支
														省略localbranch时,表示删除指定的远程分支,等同于git push <host> --delete <remotebranch>
														当前分支与远程分支之间存在追踪关系时,可省略localbranch和remotebranch
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值