Git基础与应用

初始化git仓库

  1. 创建一个仓库目录
  2. cd CODEBASE
  3. git init
  4. git add .
  5. git commit -m “MESSAGE”

 

git全局参数配置

git config --global user.name “”

git config --global user.email “@”

git config --global core.editor subl

 

克隆仓库到本地

git clone git@

 

本地仓库push到gitlab

git remote add NAME git@:/git_test.git

git push -u origin --all

git push -u origin –tags

 

常用命令

git help COMMAND

cat .gitignore                  忽略应该忽略的文件

git log 

git config --global alias.SHORTNAME COMMAND                  git命令起别名

 

本地仓库文件状态

git status              查看文件状态       -s缩略版

git diff                  对比文件目前和暂存的区别     -staged       查看已经暂存起来的变化

git add FILE开始跟踪文件

git rm FILE   取消跟踪文件-f –cached

git mv FILE  重命名并暂存

tips:每次commit之前都先add一下,暂存最新版。如果使用git commit -a只要跟踪过的文件的最新版本就会被commit

 

提交

git commit --amend      补充提交

 

撤销

git reset HEAD NAME     可以取消暂存

git checkout -- FILE       取消修改,还原成上次提交,注意无法再次撤销

 

远程仓库

git remote add SHORTNAME URL

git remote rename OLDNAME NEWNAME

git remote rm REMOTENAME

git remote -v                                    显示所有远程仓库

git fetch REMOTENAME抓取

git push REMOTENAME BRANCHNAME

git remote show REMOTENAME        可以看到很多信息(远程仓库url、分支信息、默认push分支,pull的分支合并方式)

 

标签

git tag

git tag -a TAGNAME -m ‘MESSAGE’附注标签

git tag TAGNAME           轻量标签

补充打标签要提交的校验和

git log --pretty=oneline查看提交历史

git tag -a TAGNAME 部分校验和

git push REMOTENAME --tags

 

分支

git branch BRANCHNAME                 创建分支

git branch -d BRANCHNAME

git checkout BRANCHNAME    切换分支

git log –online --decorate --graph --all 查看分支树

git merge BRANCHNAME                 合并时有时要手动合并冲突文件

git fetch REMOTENAME           更新远程仓库状态         REMOTENNAME/BRANCHNAME

git pull        == fetch+merge

git push REMOTENAME NATIVEBRANCHNAME:(REMOTEBRANCHNAME)  本地分支推送到远程

跟踪远程分支:

git checkout -b NATIVEBRANCHNAME REMOTENNAME/BRANCHNAME

=

git checkout --track REMOTENNAME/BRANCHNAME

git branch -vv       查看跟踪情况

git push REMOTENAME --delete REMOTEBRANCHNAME

git rebase BRANCHNAME        变基可以让历史更简洁

 

关键字

checkout

切换分支、查看分支历史、取消修改

Reset 

可以恢复到几个提交之前,之后的提交都会被删除,会破坏提交历史

Revert

用一些新的提交去转换某几个老的提交,一般仅针对过去的一个有问题的提交

Diff

对比提交之间或与和当前工作树之间的变化

fetch

拉取远程仓库的提交

Submodule

项目子模块管理

merge

mergetool冲突解决工具

show

查询git对象

Rebase

换基,会改变提交历史,将一条分支经过整合接到另一分支上

cherry-pick

将几个提交合并到目标分支上,产生几个新的提交

stash

保存当前工作状态,并恢复到当前分支状态

Worktree

使得本地能够同时维护不同的几个版本

 

git存储原理

一次提交的所有文件都会用blob类型的对象来存储,并计算一个唯一的校验和

目录结构会通过树对象来存储,树对象也有自己的校验和,并且存储子成员的信息

一个提交对象也有一个自己的校验和,提交会包含文件根目录的树对象以及作者等信息,并且还包含前一次提交的校验和(父提交)。

Master是默认主分支名字,会指向最新的一次提交。

分支本质上就是一个指向提交的可变指针。

 

标签分为两种,一种是轻量级的,本质和分支一样,只是一个指向特点提交的指针;另一种是带附注的一个独立对象,拥有自己的校验和。

 

Git中存在一个HEAD指针,它指向当前工作分支的指针

 

Merge request

将自己工作的分支合并到其他分支的请求。

 

关于git的分支大致分为几类。

master,主分支,用户使用的正式版本。

Release-*,即将上线的版本分支。

Dev,开发分支,最新版本就在这里。

Feature-*,功能开发版本的分支。

Bug-*,修复线上代码bug的分支。

 

Code review是在feature或是bug分支提出merge request后审批人进行的一个代码审查步骤。

能直接具体看到新代码,进行审查

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值