git的学习与使用(笔记最全)

什么是git

Git是一种分布式版本控制系统,每个开发者都可以在自己的机器上拥有一个完整的仓库

特点

  • 断网也可以工作:没网的情况下,不会影响工作。
  • 对于未提交到远程库的代码可以随时撤销。
  • 可以查看历史提交记录,以及文件内容的修改记录

git的工作流程

  1. clone(克隆):从远程仓库中克隆代码到本地仓库
  2. checkout(检出):从本地仓库中检出一个仓库分支然后进行修订
  3. add(添加):在提交前先将代码提交到暂存区
  4. commit(提交):提交到本地仓库。本地仓库中保存修改的各个历史版本
  5. fetch(抓取):从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少
  6. pull (拉取):从远程库拉到本地库,自动进行合并(merge),然后放到到工作区,相当于fetch+merge
  7. 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

  1. 进入项目目录中,点击右键打开Git bash窗口
  2. 执行命令git init
  3. 如果创建成功后可在文件夹下看到隐藏的.git目录。

了解工作区、暂存区、本地仓库的关系

  • 工作区:即个人克隆项目到本地后,项目所在的文件夹目录。
  • 暂存区:用于储存工作区中的变更(增删改等改动)的文件的地方。操作时使用git add会将本地所有的变更提交到暂存区中,是提交到仓库之前的缓存区。
  • 本地仓库:用于储存工作区和暂存区中提交上来的文件,使用git commit -m '提交内容的描述'

查看状态git status

  1. git status用来显示工作目录和暂存区的状态
  2. 未创建test.txt文件前使用git status查看会提示无需提交没有任何操作
  3. 创建文件后会提示有个未跟踪的文件test.txt
  4. 然后通过git add test.txt提交到暂存区,会显示新文件test.txt需要提交更改
  5. 使用git commit -m '提交内容的描述'提交到本地仓库
  6. 在用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

抓取指令就是将仓库里的更新都抓取到本地,不会进行合并。如果不指定远端名称和分支名,则抓取所有分支

git fetch [远程仓库的名字] [远程分支的名称]

拉取指令就是将远端仓库的修改拉到本地并自动进行合并,等同于fetch+merge。如果不指定远端名称和分支名,则抓取所有并更新当前分支。

git pull [远程仓库的名称] [远程分支的名称]
  • 21
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值