git学习

                              版本控制器

 

1分布式版本控制器 git

可以独立存在于本地,不需要网络

中央版本控制器 : svn

必须存在两个端 服务端和客户端 典型的C/S机制

 

2 git与svn的区别

git每个客户端都可以创建分支,svn必须由服务端创建

git在没有网络情况也可以提交,svn则不能

git比svn更占空间,因为git在每个客户端都保留了所有的版本历史,而svn只在服务器中保存了历史版本记录,在客户端是没有保存本地版本历史的

 

3 git --version 可以查看是否已经安装git

git init 初始化仓库

初始化成功以后会生成.git 目录,里面包含了整个版本库的信息

目录文件

HEAD 文件指示目前被检出的分支

description 用来显示对仓库的描述

config 文件包含项目特有的配置选项

Info 目录包含一个全局性排除文件

hooks目录包含客户端或服务端的钩子脚本

index文件保存暂存区信息

objects目录存储所有数据内容

refs目录存储分支的提交对象的指针

4基础配置

git config user.name 查看是否配置昵称

git config user.email 查看是否配置邮箱

git config --global user.name ‘你的昵称’   设置昵称

git config --global user.email ‘你的邮箱’   设置邮箱

5 修改配置信息

⒈命令行修改配置

git config --global --replace-all user.name ‘你的昵称’

git config --global --replace-all user.email ‘你的邮箱’

⒉修改配置文件

.gitconfig 如果里面的name email 多余删除不需要的即可

git config --list 可查看配置信息

6 获取远程仓库

git clone 版本库地址 首次拉取

git pull 拉取代码
7 ssh

ssh-keygen生成公钥跟私钥(保证用户目录下存在.ssh文件夹)

然后将公钥上传到服务器

8

git status 查看文件改动

当执行这个文件后的状态

Untracked 一般是新增的文件

Modified 文件已修改

deleted 文件已删除,本地删除,服务器未删除

renamed 文件名称被修改

当git commit以后 使用git status 没改动文件的原因:

因为你已经将改动的文件都提交到版本记录中,而git status 是基于为提交的代码最后一个版本比较的,当你提交后,两个区域的文件内容一致,所以就显示没有改动。

 

无意中修改的文件想还原 git checkout 文件

9 git add 文件  添加指定文件到暂存区

git add . 一次性提交文件到暂存区

git commit -m ‘备注’ 将代码提交到本地仓库

git push 将文件推到远程

10 git diff

工作区:当前正在编辑的文件,还没有通过 git add 命令暂存起来

暂存区:文件已经通过git add 提交,但还没有通过 git commit提交

git diff 当前分支 需要比较的分支 --stat 查看两个分支差异

git diff 当前分支 需要比较分支 文件 某一文件具体修改了哪些东西

git diff 分支名 文件名 查看所有的修改

11 忽略文件可以加入 .gitignore

12 git branch

git branch 查看本地分支  绿色代表当前所属分支

git branch -a 查看本地的分支和远程的所有分支

git checkout 分支名(当分支名跟远程分支名相同时会在本地创建并切换)

 

git checkout -b 分支名 新建一个远程和本地都不存在的分支

这样创建以后需要把本地的分支推送到远程

git push --set-upstream origin 远程分支 (远程分支跟本地分支关联)

git merge 分支 合并代码

git log 查看记录

git branch -d 分支 普通删除分支

git branch -D 分支 强制删除分支

13 git reset HEAD^ 撤销上一次提交

git reset 版本号 撤销到指定版本

14删除远程分支git push origin --delete 分支名

15将本地的东西强推到远程(版本回退时会用到) git push -f

16 git fetch 拉取远程仓库信息(不会自动进行合并)

git reset --hard origin/分支名 将远程仓库完全覆盖本地仓库

17 git reflog show git操作日志

18 git revert 撤销某个版本的代码,然后在当前分支增加一条版本新记录

git revert 只会撤销指定版本的代码,而不是指定版本后的代码

19 git merge

合并时先切换到主分支,然后将需要合并的分支合并到主分支上面

解决冲突:当有冲突时把冲突解决完以后 git add . && git commit -a 不需要 -m

20钩子

钩子:提交版本时触发的事件,触发事件的动作就是钩子

分类:客户端和服务器端

21 git merge git rebase区别

git merge 合并代码后版本记录会按照时间顺序排序,并自动产生一个 merge branch版本

git rebase 合并代码后版本记录会将目标分支的版本放在后面,然后再将当前分支的版本记录放在前面

22 git cherry-pick 将某个分支中的某个版本复制到当前分支

23 git stash 暂存 git stash pop 将暂存的东西取出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值