什么是git
Git是一种分布式版本控制系统,每个开发者都可以在自己的机器上拥有一个完整的仓库
特点
- 断网也可以工作:没网的情况下,不会影响工作。
- 对于未提交到远程库的代码可以随时撤销。
- 可以查看历史提交记录,以及文件内容的修改记录
git的工作流程
- clone(克隆):从远程仓库中克隆代码到本地仓库
- checkout(检出):从本地仓库中检出一个仓库分支然后进行修订
- add(添加):在提交前先将代码提交到暂存区
- commit(提交):提交到本地仓库。本地仓库中保存修改的各个历史版本
- fetch(抓取):从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少
- pull (拉取):从远程库拉到本地库,自动进行合并(merge),然后放到到工作区,相当于fetch+merge
- push(推送):修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库
git的安装
git的下载链接,下载安装包,按照流程安装好就可以了
git的配置
账号绑定
账号绑定 Your Name填写你的账号
git config --global user.name "Your Name"
邮箱的绑定
邮箱绑定 email@example.com填写你的邮箱
git config --global user.email "email@example.com"
生成SSH公钥
生成SSH公钥 email@example.com填写远程仓库邮箱
ssh-keygen -t rsa -C "email@example.com"
查看SSH公钥并绑定远程仓库(gitee)
查看SSH公钥
cat ~/.ssh/id_rsa.pub
绑定到远程仓库Gitee中的SSH公钥
git的基本操作
获取本地仓库git init
- 进入项目目录中,点击右键打开Git bash窗口
- 执行命令git init
- 如果创建成功后可在文件夹下看到隐藏的.git目录。
了解工作区、暂存区、本地仓库的关系
- 工作区:即个人克隆项目到本地后,项目所在的文件夹目录。
- 暂存区:用于储存工作区中的变更(增删改等改动)的文件的地方。操作时使用git add会将本地所有的变更提交到暂存区中,是提交到仓库之前的缓存区。
- 本地仓库:用于储存工作区和暂存区中提交上来的文件,使用git commit -m '提交内容的描述'。
查看状态git status
- git status用来显示工作目录和暂存区的状态
- 未创建test.txt文件前使用git status查看会提示无需提交没有任何操作
- 创建文件后会提示有个未跟踪的文件test.txt
- 然后通过git add test.txt提交到暂存区,会显示新文件test.txt需要提交更改
- 使用git commit -m '提交内容的描述'提交到本地仓库
- 在用git status查看已经没有需要提交的了
查看提交日志git log
命令形式:git log [options]
options参数
- --all 显示所有分支
- --pretty=oneline 将提交信息显示为一行
- --abbrev-commit 使得输出的commitid更简短
- --graph 以图的形式显示
版本回退
修改内容重新提交,发现有两条记录,当我们想返回之前的节点
# HEAD^ 是commit提交的ID git reset --hard HEAD^
查看所有操作记录
如果还想返回已经删除的版本,可以通过git reflog查看操作记录,然后在git reset回退版本
添加文件到忽略列表
可以新建个
.gitignore
文件,里面的内容可以决定忽略列表比如忽略一个文件log.txt,在
.gitignore
文件中一行填进log.txt如果想要忽略一个文件夹log,在
.gitignore
文件中一行填进/logs
git的分支
几乎所有的版本控制系统都以某种形式支持分支,使用分支意味着你可以把你的工作从开发主线上分离开来进行重大的BUg修改、开发新的功能,以免影响开发主线,也可以实现多人协同开发、功能隔离、版本发布等目的
查看本地分支
git branch
创建本地分支
git branch 分支名
切换分支
# 切换分支 git checkout 分支名 # 切换分支,如果不存在,直接创建并切换 git checkout -b 分支名
如果分支commit提交了该文件,在其他分支和主分支是看不到的
分支合并
git merge 分支名
删除分支
不能删除当前分支,只能删除其他分支(包括主分支)
# 删除分支时,需要做各种检查 git branch -d 分支名 # 不做任何检查,强制删除 git branch -D 分支名
删除分支恢复
git checkout -b 分支名/ID 如果不记得了,可以通过git reflog查看操作记录,然后在恢复
git的冲突解决
冲突出现场景一般是不同分支对同一个文件提交修改不同内容,然后合并的时候出现的问题
- 查看冲突文件
- 检查冲突内容
- 手动修改内容
- 在重修提交
gitee和github的使用
查看是否关联gitee或github远程仓库
git remote
关联gitee或github远程仓库
git remote add <name> <url> <name> : 远程仓库的名字,一般是origin <url> : 远程仓库地址
推送到远程仓库
[-f] 是强制删除
git push [-f] [--set-upstream] [远端名称[本地分支名][:远端分支名]]
如果本地分支名和远程分支名相同,则可以只写本地仓库
git push origin master
--set-upstream 推送到远端的同时并目建立起和远端分支的关联关系
git push -set-upstream origin master
如果当前分支已经和远端分支关联,则可以省路分支名和远端名。
git push
本地分支与远程分支的关联关系
git branch -vv
从远程仓库克隆git clone
git clone <远程仓库> [本地目录] <远程仓库> : 远程仓库的地址
抓取git fetch和拉取git pull
抓取指令就是将仓库里的更新都抓取到本地,不会进行合并。如果不指定远端名称和分支名,则抓取所有分支文章来源:https://www.toymoban.com/news/detail-840112.html
git fetch [远程仓库的名字] [远程分支的名称]
拉取指令就是将远端仓库的修改拉到本地并自动进行合并,等同于fetch+merge。如果不指定远端名称和分支名,则抓取所有并更新当前分支。文章来源地址https://www.toymoban.com/news/detail-840112.html
git pull [远程仓库的名称] [远程分支的名称]
到了这里,关于git的学习与使用(笔记最全)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!