Git基本核心操作总结

版权声明:欢迎转载,但是请附上原文链接! https://blog.csdn.net/zixiao217/article/details/82931096

git 与 svn 的区别

  • 存储方式
  • 使用方式
  • 管理模式

git 提交代码流程

本地开发分支,使用 add 命令将修改的内容添加到本地缓存空间,通过 commit 命令将添加的内容提交到本地仓库, push 命令将本地仓库的内容提交到关联的远程仓库。

DEVER -------(add) --> local cache ------(commit)--> local repository -------(push)--> remote repository

SVN 管理模式

local  -->  remote
remote挂了,导致本地不能做任何操作

GIT 管理模式

git 本地可以做remote一样的操作。
git可以关联多个远程仓库。

git remote还可以备份。

git使用K-V存储数据。SVN使用复制版本完成可回滚操作。

git 核心命令

创建、克隆、添加、提交、push、pull、更新、关联远程

- 创建git项目,生成一个 .git 目录
git init
git remote add origin XXX.git
echo 'You is a bad man, haha!' > readme.md
git status 
git add -A
git commit -m '提交记录'

git push --set-upstream origin master (首次),后面git push即可
git pull
git clone XXX.git 本地目录名

管理模式

mkdir -p src/main/java/com
echo 'package com' > hello.java
git remove --cached target -r
git commit -am '注释'
git commit -m '注释'

分支

git branch : #显示本地分支
git branch -av : #包含显示远程分支
git branch -avv : #包含显示远程分支,包含关联信息
git branch 新分支name   :# 基于当前分支新建分支
git branch 新分支name  #已存在分支 :# 基于已存在分支新建分支
git branch 新分支name commitid :# 基于提交id新建分支
git checkout 分支名  : #切换分支
git branch -d 分支名: # 删除分支
git merge branch : #将branch合并到当前分支

远程仓库

git remote -v : #查看远程信息
git remote add origin XXX.git
git remote add origin2 XXX.git
git push --upstream  origin2 master : #推送到关联的第二个仓库
git push origin[2]
git remote remove 远程仓库名 : # 删除关联的远程仓库

日志

git log: # 查看提交日志
git log --online : # 一行行的查看
git log branch --online: # 查看分支的日志
git log dev..master : # master有多少提交没有同步到dev来。
git log --graph --online : #查看提交网络图
git show [commitId]#展示变更的内容

git 原理

git 存储对象

git 是一个内容寻址文件系统,核心是一个简单的KV数据库,插入任意内容会返回一个用于取回该值的hash。

find .git/objects/ -type f : 查找所有的git对象
git hash-object -w README.md
git cat-file -p commitId > README.md : # 回滚内容,可以将commitId的内容写入到README.md中,完成了一次回滚的操作
git cat-file -t commitID : # 查看数据类型


> git add  会在objects添加对象。 
> 使用后可以 用  find .git/objects -type f 查看是否新增了对象。
```bash
$ find .git/objects -type f
.git/objects/69/f22ff2d6d6d4d8288fa9fa99ac2d58927ab1d6
.git/objects/99/f5369cae277ef56123d0012e2ef952e2e9d825

$ git add git基础.md

$ find .git/objects -type f
.git/objects/69/f22ff2d6d6d4d8288fa9fa99ac2d58927ab1d6
.git/objects/90/0aabe1fb581794dd7e5cd238828f112f5109af   #新增的
.git/objects/99/f5369cae277ef56123d0012e2ef952e2e9d825

搭建企业私有git服务

git 支持的协议

local 协议

本地共享目录; 快速;简单;局域网; 速度慢; 仅仅小项目;

D盘创建仓库:

git init --bare hello.git : 创建一个裸项目

E盘克隆:

git clone  /d/XXX/git

这样本地仓库在E盘,远程分支在D盘,就是一个基本的git服务了。

ssh 协议

git init --bare hello.git : 创建一个裸项目
git clone root@ip:XXX.git
ssh-keygen

http 协议

nginx 是基础(3 years experience)

git协议

一般不用

基于 gogs 开发企业git web 服务

比 gitlab 轻便

猜你喜欢

转载自blog.csdn.net/zixiao217/article/details/82931096