本文共 2139 字,大约阅读时间需要 7 分钟。
Git的安装详解请移步至另一篇文章
1:工作区:写代码的地方
通过`git add`命令将工作区文件上传到暂存区
2:暂存区:临时存储
通过'git commit'命令将暂存区文件上传至本地库
3:本地库:历史版本
git init
(本地化仓库后.git目录中存放的是本地库相关的子目录和文件,不要删除,修改)
用户名:***Email地址:*********@****.com(设置的签名和登录远程仓库(代码托管中心)的账号,密码没有任何关系。)
项目级别/仓库级别:仅在当前本地仓库范围内有效
git config user.name ***git config uesr.email *****@***.com**信息保存目录:当前项目./.git/config
系统用户级别:登录当前操作系统的用户范围
git config --global user.name *****git config --global uesr.email *****@***.com信息保存位置:~/.gitconfig
级别优先级:
就近原则:项目级别优先于系统用户级别,二者都有时采用项目级别的签名如果只有系统用户级别的签名,就以系统用户级别的签名为准二者都没有时不允许
显示当前仓库信息(状态查看)
git status
添加文件至缓存区
git add + 文件名
从暂存区撤回
git rm --cached main.c
从暂存区提交至本地库
git commit main.cgit commit -m "版本更改信息" 《文件名》
git log
git log --pretty=oneline
git log --oneline
调出所有版本信息
git reflog
版本的前进后退操作:
本质:是对HEAD指针的操作
1:基于索引值操作:
git reset --hard 【索引值】
2:使用^符号【只能后退】
git reset --hard <<< (一个退一步,以此类推)git reset --hard~3
3:使用~符号【只能后退】
git reset --hard~3 (~3,后退3步)
reset参数区别:
--soft 在本地库移动指针--mixed 在本地库移动HEAD指针并且重置暂存区--hard 在本地库移动指针,充重置暂存区和工作区
前提 删除前,文件存在时的状态提交到了本地库删除 rm <文件名> 找回 倒回到上一个版本,从而找回上一个版本文件 git reset --hard 【指针位置】 删除操作已经提交到本地库:指针位置指向历史记录 删除操作尚未提交到本地库:指针位置使用HEAD 文件名>
git diff 《文件名》
将工作区的文件和暂存区的文件比较
git diff 【本地库中历史版本】【文件名】
将工作区中的各个文件和本地库历史文件比较
git diffgit diff HEAD
不带文件名比较多个文件
Git分支管理的本质是创建和移动指针
修复bug时,会创建一个hot_fix的分支,热修复在程序运行时进行维护
查看分支:
git branch -v
创建一个新的分支
git branch hot_fix(***分支名)
切换分支
git checkout <分支名>分支名>
合并分支:
①:切换到接受修改的分支(被合并,增加新内容)上 git checkout 【被合并分支名】 ②:执行merge命令 git merge 【有新内容的分支】
解决冲突
①:编辑文件,删除特殊符号 ②:把文件修改到你满意的程度,保存退出编辑器 ③:git add【文件名】 ④:git commit -m ”日志信息“ 注意:此时commit一定不能带具体文件名
特点:不管输入数据的数据量有多大,输入同一个哈希算法,加密结果长度固定 哈希算法确定,输入数据有变化,输出数据一定有变化,而且通常变化很大 哈希算法确定,输入数据确定,输出数据能够保持不变 哈希算法不可逆 Git底层采用的是SHA-1算法 在服务器端对文件用SHA-1算法运算。下载之后再次对文件进行运算,得到的输出数据一样,则证明文件传输过程中无数据丢失
创建完成之后进入你创建的仓库会得到一个HTTP的网址,复制进入Git Bash
git remote -v "地址别名" + 地址
git push “仓库名” “分支名"
推送到github上之后:
初始化本地库
完整的把远程库下载本地库git clong + ”克隆时的远程库地址“
转载地址:http://ulsa.baihongyu.com/