在使用之前要求用户的信息就行设置一下: 通过下面的命令可以设置.
这两个信息是非常重要的,因为每次Git提交都会使用该用户信息。
git config --global user.name “用户名”
git config --global user.email “邮箱”
可以通过 git config --list
命令查看所有的配置
仓库初始化命令:
git init 这个不推荐,因为后面肯定会和远程仓库关联, 建议使用clone,
git clone 仓库地址
仓库的地址可以在git中看到,那个颜色最亮的位置,点击复制
见下图:
对于文件一般有两种状态.未跟踪,已跟踪, 即git能管理, git 不能管理 认识未跟踪这个单词就可以
untracked 未跟踪(未被纳入版本控制)
tracked 已跟踪(被纳入版本控制)
1)Unmodified 未修改状态
2)Modified 已修改状态
3)Staged 已暂存状态
命令格式:git add fileName
加入暂存区后再执行 git status 命令,可以发现文件的状态已经发生变化。
命令: git reset 文件名
这个时候再查看状态就是未跟踪的状态
命令格式:git commit -m “提交信息” 文件名
提交信息一定要有,这是为了以后区分.强制
提交信息后面不加就是所有
每一次的提交就会生成一个版本 --hard
现在对该文件进行修改之后add添加到暂存区 commit提交到本地仓库,使用log命令可以查看版本的历史,也就是commit操作的历史
通过git log命令查看日志,可以发现每次提交都会产生一个版本号,提交时设置的message、提交人、邮箱、提交时间等信息都会记录到日志中
上面介绍了git reset的取消文件暂存的方式.还有一个就是版本回退的功能. 比如对于index.html文件, 想要回到"first commit"的时候的代码. 这个时候就可以通过使用git reset 命令.
版本号,在通过git log命令可以查看之前提交的版本,然后在使用下面的命令,就可以回到提交状态的代码.
命令格式: git reset --hard 版本号
回退. 通过cat命令查看内容,就是第二次提交的时候的内容
这个命令和 git log 命令类似 , 这个是查看精简版的日志内容
对于版本切换可以使用前面简短的版本号.可以看到当前就在第二次提交的版本
这个对于使用创建方式的第一种的就没有办法查看,因为此时的仓库还没有"关联"远程仓库. 但是下面可以通过关联,在第二个命令中会介绍.
origin 是远程仓库的名字,也是默认的名称.不需要过于升入,没意义,知道远程仓库交origin就可以,如果想要深入了解,可以通过下面的这篇文章. git中origin master详解 - 知乎 (zhihu.com)
添加远程仓库命令格式:git remote add 简称 远程仓库地址
testgit目录是使用第一种方式初始化的,这里就使用git remote命令查看, 这是就会显示远程仓库,此时就说明本地和远程仓库管理成功.
注意:一个本地仓库可以关联多个远程仓库
git pull 命令的作用是从远程仓库获取最新版本并合并到本地仓库
命令格式:git pull 远程仓库简称 分支名称
注意:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal: refusing to merge unrelated histories )
解决此问题可以在git pull命令后加入参数–allow-unrelated-histories
命令格式:git push 远程仓库简称 分支名称
对于分支这样理解: 开发项目的过程是类树状结构 首先要有一个主分支, 主干 master分支,
其次都是在主干的基础上的衍生分支. 每个分支都是一个独立的整体.
git branch 列出所有本地分支
git branch -r 列出所有远程分支
git branch -a 列出所有本地分支和远程分支
后面加参数 -r
r remote 代表远程 即:
git branch -r 列出所有远程分支
参数 -a
也就是 all
git branh -a 列出所有本地分支和远程分支
创建分支命令格式:git branch 分支名称
创建一个"张继科"分支, 据说在开发中使用自己的名字命名的分支名,咱也不知道是不是
现在就有两个分支了, master 分支 和 张继科分支
一个仓库中可以有多个分支
切换分支命令格式:git checkout 分支名称
现在就在张继科分支了.
命令格式:git push 远程仓库简称 分支名
注意:将当前分支推送到远程分支时,需要在当前分支 ,即只要当前处于"张继科"分支才可以推送张继科分支,建议吧,但是不知道为啥,下面也成功了, 在master成功推送了,张继科分支,在张继科分支推送了master分支, 可能是选择协议是默认的原因吧
首先有分支的作用就是为了协同开发,最终的目的还是要合并为一个项目.
命令格式:git merge 分支名称
此时在"张继科"分支有一个独有的内容. 这个时候再master分支中把"张继科"分支中的内容合并过来
可能会有一个提示,这个时候要求简单知道vim
编辑器的操作
链接; 【Linux】vim的使用详解-Linux编辑器__麦子熟了的博客-CSDN博客
快速解决: :wq
英文状态输入
当两个分支对一个分支进行修改的时候就产生了合并冲突,此时合并分支界面如下
这个时候就需要手动的解决冲突. 因为合并的操作是master分支操作的此时对应的冲突文件就会发生变化.如下:
git 没有操作,只是标注了出来,这个时候就需要手动处理, 看看到底要哪个.
中间的 =========
是分割作用, 用来分割当个合并分支的同一位置相同的内容.
很明显上面是master分支 下面是"张继科"分支 这个时候修改即可, 随后add commit 冲突处理完毕.
冲突解决之后面的MERGING
就会消失
Git 中的标签,指的是某个分支某个特定时间点的状态。通过标签,可以很方便的切换到标记时的状态。
比较有代表性的是人们会使用这个功能来标记发布结点(v1.0 、v1.2等)。下面是mybatis-plus的标签:
git tag 查看标签
git tag [name] 创建标签
git push [shortName] [name] 将标签推送至远程仓库
git checkout -b [branch] [name] 检出标签
命令: git tag 标签名
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-
命令: git tag
命令:git push 远程仓库简称 标签名
检出标签时需要新建一个分支来指向某个标签
命令格式:git checkout -b 分支名 标签名
作用也就是创建一个分支为当前标签的状态.