Git学习笔记

Git

概述

与SVN的差异: SVN存储文件的变化部分,Git存储改动过的文件。

三个工作区:

  • 工作目录(项目目录)
    • 在这里修改文件
  • 暂存区域(Stage)可以Commit到Git仓库
    • 在这里暂存文件,提供反悔机会
  • Git仓库(.git)
    • 提交到Git仓库,保存

配置用户信息

只在本地生效,告诉Git

git global user.name = "username"
git global user.email = "emailAddress"

基本操作

初始化

生成Git仓库 .git

git init

Add

git add 文件按名
git add . 		# 添加所有

查看暂存区状态

git status

提交

git commit -m "注释"

历史提交信息

git log --graph

回退版本

# 使用暂存区文件替换工作区文件
git checkout filename

# 从库里拿出来替换暂存区的文件
git reset filename
# 然后再checkout

# 使用HEAD的前一个版本覆盖工作区和暂存区
git reset --hard HEAD^  or git reset --hard HEAD ~ x
# x个^ 代表前x个

git reset --hard [commit id]

# soft, 不覆盖工作区和暂存区
git reset --soft [commit id]

# mixed, 只覆盖暂存区
git reset --mixed [commit id]

image-20201116144143720

列出所有命令日志

git reflog

分支操作

默认分支是master

常见分支

  • master分支
    • 稳定代码分支, 用于发布版本
  • dev分支
    • 开发代码分支,用于维护开发中的代码,向master合并
  • feature分支
    • 新功能开发分支,向dev合并
  • bug分支
    • fix bugs merge to dev

分支描述

查看分支

git branch

创建分支

从当前分支创建一个新的分支,并切换到新分支

git checkout -b dev
# 等于
git branch dev
git checkout dev

切换分支

git checkout master
# 移动当前指针head

合并分支

# 将dev 合并到master
git checkout master
git merge dev		# fast-forward Merge

#将dev 合并到merge 并创建一个新的新的版本,显示一个明显的合并迹象
git merge --no-ff -m "comment XXX" dev
# No fast forward

隐藏分支

git stash

# 应用场景
# 在feature 开发新功能时,需要切换到bug分支修复bug,feature分支只add 未commit 切换到bug分支可能会造成覆盖,可先将feature分支工作区隐藏起来
# 也可以直接commit 但可能会造成commit的内容不完整

# 再 checkout
git checkout dev

查看被隐藏的工作区列表

git stash list

# 恢复
git stash apply stash@{0}

远程仓库

创建

# 创建远程仓库,无自己的工作区
git init --bare

# 创建本地仓库
git init

# 为本地仓库添加远程仓库源
git remote add origin username@ipaddress:仓库目录
# 为本地仓库添加远程仓库源,默认远程仓库名字叫origin

推送到远程仓库

git push origin master
# 将本地主分支推送到远程仓库

git push <远程主机名> <本地分支名>:<远程分支名>

克隆到本地

git clone 仓库地址

从远程仓库拉取并与本地分支合并

git pull

fetch

# 将远程仓库中master分支的最新更新拉取到本地仓库的branch1分支
git fetch 仓库名 master:branch1

# 将远程仓库origin中所有分支的最新更新拉取到本地仓库
git fetch origin

# 将远程仓库origin中master分支的最新更新拉取到本地仓库
git fetch <远程主机名> <分支名>

pulls

git pull = git fetch + git merge
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值