git 基本使用
一个分布式版本系统,用于版本管理和多人协同开发
安装配置
安装过程没什么好说的,就是到官网下载合适的版本,选择一路点点点就可以了。
安装完成后可以打开cmd窗口查看
git --version
//如果有版本显示则说明安装成功
//接着配置
git config --global user.name "用户名"
git config --global user.email "用户邮箱"
git config --l //可以查看信息是否正确
git架构
可以分为工作区,暂存区和版本库。
工作区就是平时写代码的目录
暂存区和版本库都在.git目录下,被git管理
后续可以进一步深入了解
git基本使用
- git init
- 在当前目录下生产一个.git目录,作为git仓库
- git status
- 查看当前状态
- git add
- 将工作区的文件放到暂存区中
- git add . (暂存所有文件)
- git commit
- 将暂存区中的内容放到版本去中
- git commit -m/-message "描述信息"
- 给当前版本添加一个描述信息
- git diff
- 用来查看git status的详细信息
- git log
- 用来查看日志,完整版
- git log -oneline 简易版
- git reset --hard HEAD^
- 回退到上一个版本,HEAD表示当前版本,HEAD^表示上一个版本,HEAD^^表示上上一个版本,还可以这样写HEAD~100
- git reset HEAD
- 用于取消已经缓存的内容,如:git reset HEAD hello.php ,取消了对hello.php的缓存
git 和 github 关联
- 首先在本地生成ssh秘钥,使用:ssh-keygen -t rsa -C "youremail@example.com"
- 在相应的用户目录的id_rsa.pub复制里面的key
- 在github用户的ssh key设置中添加生成的key
- 在本地输入:ssh -T git@github.com,如果出现You've successfully authenticated, but GitHub does not provide shell access.则说明连接成功。
提交本地仓库到github
关联成功后就比较简单了。
-
可以先在github上创建一个空白仓库,会出现以下提示

-
如果本地已经有仓库了,可以直接使用,就可以提交成功了
-
git remote add origin + git地址 (这个git地址可以在提示里看到)
-
git push -u origin master
查看当前的远程仓库(github)
git remote
或者 git remote -v 可以看到详细的链接地址
提取远程仓库(github)--关联后
- 从远程仓库下载新分支和数据:git fetch
- 将数据合并到当前分支:git merge
另一种是直接:git pull origin master
可以简单粗暴地理解为:git pull origin master = git fetch + git merge
推送到远程仓库(github)
还是一样的操作
- git add 文件/. git到暂存区
- git commit -m "描述" git到本地仓库
- git push origin master git到远程仓库,就是github上
另一种关联远程仓库的方法
首先我们可以了解一下怎么获取别人的远程仓库。
- 进入别人的仓库页面后,可以看到一个clone or download的选项
- 复制给定的地址,ssh或者https都可以,但是ssh会快一点
- 在本地执行:git clone 复制的地址
可以这样下载别人的代码进行学习,但是这是别人的仓库,所以不能直接push。
那么我们可以用git clone的方法,关联一个远程仓库
- 在github上创建一个空仓库
- 复制创建完毕的创库的ssh或者https地址
- 在本地执行:git clone 达到关联。
分支管理
使用分支可以在不影响开发主线的基础上进行其他工作,是一个版本控制的重要工具。
可以这样理解,版本控制就像一个链表,每一个版本都是一个节点,而每一个分支则是指向节点的一个
指针。
- git branch
- 查看分支,仓库默认只有master分支,每次commit总会在master上记录新的版本。
- git branch BranchName
- 创建分支,如:git branch dev,创建一个dev的分支
- git checkout BranchName
- 切换分支。注意,创建后当前分支还是master,可以在git branch中看到,有标识的是当前分支
- git log
- 历史记录
- git log --online
- git log --online --graph 用图像的形式表现出来
- git branch -d BranchName
- 删除分支
- 合并分支
- git merge BranchName,将该分支合并到当前分支中
- 分为快速合并和三方合并
- 快速合并:master主分支没有改变,所以这时只要将master分支的指针移动到新的指针节点即可,合并信息中会出现fast-foward的提示
- 三方合并:当master和其他新的分支都有修改时,这时的合并成为三方合并。
解决冲突
不同的分支可能对同一文件进行了修改,合并时git无法判断,则会出现冲突。
冲突的文件中会保留两个分支的代码,进行取舍后再次提交就可以顺利解决冲突。
-
对冲突的内容进行取舍
-
重新提交:git add .
-
git commit
配置vs code中的git
只要将git安装目录下cmd中的git.exe的路径完整复制下来,配置到vs code中的git.path,注意对""会有转义,可以用以下的方式解决。
"git.path":"D:/Git/cmd/git.exe"//方法一
"git.path":"D:\\Git\\cmd\\git.exe"//方法二
配置成功就可以顺利使用了