目录
[使用"git log"命令查询添加日志](#使用"git log"命令查询添加日志)
[fast forward提交模式的拒绝](#fast forward提交模式的拒绝)
[1.git stash 存储工作区内容](#1.git stash 存储工作区内容)
[3.dev2 开发---开发完成---检验---提交](#3.dev2 开发—开发完成—检验—提交)
[网址获取进行git clone](#网址获取进行git clone)
[标签内容查询:git show v0.8](#标签内容查询:git show v0.8)
.git目录的内部结构

用户与.git形成
useradd [name] //创建用户
su - [username] //切换到指定用户
visudo //在root下运行打开权限管理列表 如:完成各账户的权限配置
git init //初始化形成".git"
提交、解释

使用"git log"命令查询添加日志

使用ID库内文件查询流程
git cat-file -p [ID]


git暂存区、修改、仓库的进程查询
git status //获取git的状态
git diff [file_name] //查询文件修改了什么

版本回退 (版本内部的所有文件)
性质:git内提交记录的选择性部分回退
回退选项:--soft --mixed --hard 回退程度依次增加 //其中mixed是默认选项 //慎用hard

回退格式:git reset [回退选项] [ID]

----------------------------------------------4-26-----------------------------------------------------
误回退、回退过度的弥补
1.git reeset [回退选项(同时也对应回退程度)] ID(恢复至目标位置)。
2.git reflog //重要 //简单显示提交版本的ID 可利用此简单ID来进行回退。
回退的原理
修改master的指向

文件回退
HEAD //当前版本
HEAD^ //上一个版本

版本库内文件的删除
分为两步进行:
①git rm [filename] //将工作区、暂存区内的文件都删除。
②git commit -m "删除xxx文件" //将删除信息提交给仓库 造成版本库的删除。
---------------------------------4-30-------------------------------------------
分支管理、创建、合并、切换1.0
前提:位于哪个工作区提交自然在哪个分支中进行。
git branch //查询分支情况带*的表示正在处于的工作分支
git branch [branch_name] //创建新分支

打印当前分支所处git的目录哪里:
位于能够看到.git的目录下执行:cat .git/HEAD 就可以显示了

切换分支:git checkout [branch_name]



①新分支dev1下的提交

②master继续merge到dev1

分支移动情况:

删除分支
git branch -d [branch_name]
只能在删除目标分支的其他分支上才能删除指定分支。

解决分支内容冲突问题
※一定要搞清楚创建的新的分支在提交中的位置 不要忘记合并!!!


在直接删除、选择性保留冲突内容后并进行add 与commit 就可以了。
--graph查询分支的内容管理
git log --graph --abbrev-commit //即使在merge时进行--no--ff依旧不会显示哪个分支提交的内容
但是这个命令不会显示dev分支相对主master的位置关系(随系统变化而不定)

git log --oneline --graph --decorate --all //美观、详细显示

---------------------------5-1----------------------------
fast forward提交模式的拒绝

使用 --no-ff 来进行常规提交。

修复master中的bug
1.git stash 存储工作区内容
当我们在一个非master分支开发时突然在master分支出现bug需要立即修改 此时位于工作分支上使用git stash 就将工作区的内容剪切保存到stash这个分支区域。通过 tree .git 可以看到stash区域位置。此ReadMe(泛指工作文件)。 //这个stash似乎是固定的不能指定其他名字?
2.master内的修复


3.dev2 开发---开发完成---检验---提交
先在dev2开发分支上进行master的合并(好的习惯 防止master与dev2的代码冲突 万一有冲突可以及时检验发现)。

重新到master分支上重新进行提交更新版本

删除无用分支
普通删除

分支的add与commit并不是提交到了master分支上!!而是工作区暂存区
强制删除分支
在分支dev3未进行merge的情况下强制执行删除 操作。 // git branch -d [branch_name]


非本地提交相关
解决多台机器间的合作开发 实时保护仓库资源

issue
关于此仓库代码中的一些问题在此提出与指定解决。
"issue"提问区---开发人员修复区。
PullRequest
于分支合并到master前的申请 询问/审查。
网址获取进行git clone

当前状态图解

库内查询
当前区域:


配置公钥SSH
在gitee内可查看公钥如下:

第一步:查询主目录下有没有.ssh目录,如果有,再看这个目录下有没有id_rsa和id_rsa.pub这两个文件。如果已经有了,可直接跳到下一步。如果没有,需要创建SSH Key:

注意要输⼊⾃⼰的邮箱,然后⼀路回⻋,使⽤默认值即可
ssh-keygen -t rsa -C "647234102@qq.com"

顺利的话,可以在⽤⼾主⽬录⾥找到 .ssh ⽬录,⾥⾯有 id_rsa 和 id_rsa.pub 两个⽂件,这两
个就是SSH Key的秘钥对, id_rsa 是私钥,不能泄露出去, id_rsa.pub 是公钥,可以放⼼地告
诉任何⼈。


远程仓库与本地仓库交互
push到gitee
本地分支类型
git commit push origion master:master //push成功的原因是本地与远程master间的自动链接
推送的目标\] \[目标分支类型

pull远程仓库内容到本地
合并+同步 远程仓库的内容到本地
git pull [远程仓库名] [远程仓库的分支类型]:[本地仓库的分支类型]
.gitignore的使用
解决部分文件不能传入仓库
.gitignore内的配置:

正常写入名代表隐藏
名前加!代表不隐藏此文件可以正常识别提交


被隐藏文件隐藏原因的查询

别名及其使用

标签管理
标签就是给某次提交写标识。
打标签:

标签内容查询:git show v0.8

本地、远端标签删除
git tag -d [tag_name] //本地删除指定标签
git push [远端仓库名称] :[tag_name] //删除远端标签

本地远程标签推送

多人协作
查询远端、本地分支。
分支查询

WIn下克隆本地分支到文件夹内

git克隆远端仓库到本地

协作开发时的同步与提交
第二个开发者在开发完成前第一个已经push那么第二个开发者需要先开发完毕后无法push因为文件冲突了 此时需要手动更新:再次pull最新内容并更改冲突代码。
建立链接:
git branch feature-2 origin/feature-2
git checkout -b feature-2 origin/feature-2
同步远端仓库内容:
git pull
1.建立链接后拉取分支内的内容()
2.建立链接后拉取仓库全部内容"形成同步"

git pull

1.建立链接后拉取分支内的内容
2.建立链接后拉取仓库全部内容"形成同步"
//创建本地分支链接远端feature-2分支
git branch feature-2 origin/feature-2
git checkout -b feature-2 origin/feature-2
git checkout feature-2 origin/feature-2//er

解决已删除远端分支在本地查询依旧显示(pruned)
git branch pruned(修剪) origin

企业级开发模型认识
团队:
开发团队->测试团队->运维团队
环境:
开发环境->测试环境->线上环境
灰度环境(部分人拥有的提前批环境)
预发布环境:尽量模拟真实的线上环境(保证提交后稳定性)
add、commit、push到远端仓库gitee
前置配置
配置姓名邮箱
创建目录
git init
写代码
git add
git commit
git remote 关联远程(gitee)仓库

git push 上传 "git push origin master:master"

操作实例
建立连接
