1.下载地址:Git (git-scm.com)
安装git时还会安装这三种工具:
git bash
; git cmd
; git gui
1. 查看工具:
( 左下角输入git)
2. 启动:
既然已经在系统上安装了Git,你会需要做几件事来定制你的Git环境:
计算机上只需要配置一次
,程序升级时会保留配置信息;在任何时候再次通过运行命令来修改它们
;Git自带一个git config 的工具来帮助设置控制Git外观和行为的配置变量:
/etc/gitconfig 文件
:包含系统上每一个用户及他们仓库的通用配置 :
如果在执行git config时带上–system选项,那么它就会读写该文件中的配置变量;
由于它是系统配置文件,因此你需要管理员或超级用户权限来修改它。(开发中通常不修改)~l
~/.gitconfig 或C/用户/sevgilid.gitconfig文件
:只针对当前用户
- 你可以传递–global选项让Git 读写此文件,这会对你系统上所有的仓库生效;
当前使用仓库的Git目录中的config 文件(即.git/config)
:针对该仓库
- 你可以传递—local选项让Git强制读写此文件,虽然默认情况下用的就是它;
配置用户名和邮件地址
安装Git后,要做的第一件事就是设置你的用户名和邮件地址。
每一个Git提交都会使用这些信息
,它们会写入到你的每一次提交
中,不可更改;--global选项,那么该命令只需要运行一次
,因为之后无论你在该系统上做任何事情,Git 都会使用那些信息;检测当前的配置信息
通过git config --list
命令检测配置信息来查看是否成功配置,若是需要修改配置则再执行一次命令
更改用户名/邮箱进行覆盖就行了
我们需要一个Git来管理源代码,那么我们本地也需要有一个Git仓库。
通常有两种获取Git项目仓库的方式:
初始化一个Git仓库
,并且可以将当前项目的文件都添加到Git仓库中(目前很多的脚手架在创建项目时都会默认创建一个Git仓库);从其它服务器克隆(clone)一个已存在的 Git仓库
(第一天到公司通常我们需要做这个操作);获取示例:
从零创建没有远程仓库也没有本地仓库时:
使用git init
命令创建本地仓库
提示初始化了一个空的git仓库,此时打开项目文件夹可以看到
git clone 地址
未跟踪:默认情况下,Git仓库下的文件也没有添加到Git仓库管理中,我们需要通过add命令来操作;
已跟踪:添加到Git仓库管理的文件处于已跟踪状态,Git可以对其进行各种跟踪管理;
总结:无论是新增的文件,还是修改的文件,都需要进行添加和提交操作
git add. 或者git add 某个文件
git commit -m “”
也可以简写成一条命令:
git commit -a -m “注解”
使用git status
命令检测文件状态
示例:
git log
查看记录(基本演示:下方详细讲解)
一般我们总会有些文件无需纳入Git的管理,也不希望它们总出现在未跟踪文件列表。
通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等;
我们可以创建一个名为.gitignore的文件,列出要忽略的文件的模式;
git add.
来添加到仓库vue cli创建项目会自动生成这个文件已自动配置;可以手动添加
)和前边的演示一样,在新增或修改新的代码后,首先要做的就是将代码添加至暂存区;
git add .
将所有的变动代码都添加进去git add js/nba.js
具体添加某个文件每次准备提交前,先用git status看下,你所需要的文件是不是都已暂存起来了;
提交命令git commit
;如果我们修改文件的add操作,加上commit的操作有点繁琐,那么可以将两个命令结合来使用:
git commit -a -m"修改了bbb文件"
git log
命令来查看仓库的完整提交历史记录。git log --pretty=oneline
:
git log --pretty=oneline --graph
:
如果想要进行版本回退,我们需要先知道目前处于哪一个版本:Git通过HEAD指针记录当前版本。
我们可以通过HEAD来改变Git目前的版本指向:
git reset --hard HEAD^
: 回到上一个版本(掌握)
git reset --hard Head~x
: 回到上X个版本
git reset --hard xxxxx
: xxxxx为上面的唯一ID,一般记录8位(掌握)
什么是远程仓库(Remote Repository) 呢?
那么如何创建一个远程仓库呢?
目前我们有如下方式可以使用Git服务器:
以Gitee服务器示例
(1) 在公司时需要先了解远程仓库地址(此处以上方刚建立的仓库地址举例)
(2)使用git clone
命令用于从远程仓库中克隆一个副本到本地计算机上。
HTTPS示例:git clone https://gitee.com/sevgilid/luzhai-psychology.git
SSH示例: git clone [email protected]:sevgilid/luzhai-psychology.git
(3) 验证身份:直接进行上述命令发现都没有成功执行
对于私有的仓库我们想要进行操作,远程仓库会对我们的身份进行验证:
目前Git服务器验证手段主要有两种:
HTTP的凭证存储
(Credential Storage) ;SSH的密钥
;Secure Shell (安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。
用法示例:
(1)在bash终端里执行:
ssh-keygen -t ed25519 -c “邮箱地址”
git clone ssh地址
访问git commit -a -m "注释"
提交后git push
提交到仓库1.查看远程地址
git remote
:用来查看当前仓库存在的远程仓库的列表。如果当前仓库关联了一个或多个远程仓库,git remote命令会输出远程仓库的名称列表,每个名称占一行。git remote -v
:可以展示当前仓库所有远程仓库的详细信息,其中包括远程仓库的名称、URL地址以及读写权限(fetch和push)git remote add
一个本地仓库是可以和多个远程仓库建立链接的
示例:
git remote add origin 地址 //最重要的一般用一个仓库(常规命名orgin)
在git pull时会遇到问题:
上面已经提到git pull 是git fetch和git merge两个命令的合并操作,所以第一次执行时会遇到这两个命令的问题:
git fetch的问题
解决办法:执行
git merge的问题
解决办法:执行 git merge --allow-unrelated-histories
命令允许合并没有共同基础的分支
创建tag
删除和检出tag
检出:回到某个版本,但不会在这个版本修改什么。通常是需要在此创建新的分支
git checkout v1.0.0
创建新分支的同时切换过去
新分支后立即切换过去
;git checkout -b
一条命令搞定;场景一:
1.上图第四步的具体操作:切回到master分支,使用git merge hotfix
合并两个分支
(1)合并时可能会出现合并冲突
:当修改的代码和当前代码在一个文件
里时,就会出现冲突(出现可能性较少,因为都是在自己负责的部分开发:都是在自己创建的文件下,基本不可能修改别人的代码)
(2)解决办法:
2.修改为想要的代码后,再进行git add .
和git commit -m "合并hot_fix分支"
操作即可
分支的应用场景二(理解即可):