Git学习笔记

git下载地址:https://git-scm.com/downloads

注意事项:千万不要使用Windows自带的记事本编辑任何文本文件。原因是Microsoft开发记事本的团队使用了一个非常弱智的行为来保存UTF-8编码的文件,他们自作聪明地在每个文件开头添加了0xefbbbf(十六进制)的字符,你会遇到很多不可思议的问题,比如,网页第一行可能会显示一个"?",明明正确的程序一编译就报语法错误,等等,都是由记事本的弱智行为带来的。建议你下载Visual Studio Code代替记事本,不但功能强大,而且免费!

安装完成后,需要进行用户名和Email的配置

git config --global user.name "Your Name"
git config --global user.email "Your Email"

概念:

工作区:就是你在电脑里能看到的目录

仓库:就是.git文件夹,这个文件夹里存放所有的版本信息

暂存区:相当于一个中间缓存区域,缓存本地的修改

仓库管理

创建仓库:git init
查看仓库状态:git status
添加文件到暂存区:git add 文件相对于版本库的路径
删除暂存区的文件:git rm 文件相对于版本库的路径
提交暂存区的文件到仓库:git commit -m "提交说明"
从仓库中还原指定的文件到工作区:git checkout -- 文件相对于版本库的路径
比较工作区文件与当前版本的文件的不同:git diff 文件相对于版本库的路径
比较工作区文件与上个版本的文件的不同:git diff HEAD^ 文件相对于版本库的路径
比较工作区文件与指定版本的文件的不同:git diff 版本号 文件相对于版本库的路径
查看完整版本历史记录:git log
查看清晰版本历史记录:git log --pretty=oneline
查看命令历史记录:git reflog
回退到当前版本(即撤销暂存区文件的更改):git reset --hard HEAD
回退到上一个版本:git reset --hard HEAD^
回退到上n个版本:git reset --hard HEAD^^^(n个^)
回退到指定版本:git reset --hard 版本号(版本号即为git log中查看的版本号,只输入前几位即可)

分支管理

创建分支:git branch 分支名
切换分支:git checkout 分支名
新版切换分支:git switch 分支名
创建并切换到分支:git checkout -b 分支名
新版创建并切换到分支:git switch -c 分支名
删除分支:git branch -d 分支名
查看所有分支:git branch
合并指定分支到当前分支:git merge 分支名
复制其他分支提交的修改到当前分支:git cherry-pick 版本号

标签管理

创建标签:git tag 标签名
给指定的提交创建标签 git tag 标签名 版本号
创建附带说明的标签:git tag -a 标签名 -m "说明" 版本号
删除标签:git tag -d 标签名
查看所有标签:git tag
查看标签详细信息:git show 标签名

储藏区管理

储藏当前工作区:git stash
查看储藏区信息:git stash list
恢复储藏区信息到工作区:git stash apply
恢复储藏区信息到工作区并删除储藏区信息:git stash pop

远程仓库管理

查看远程仓库的关联情况:git remote -v
创建远程仓库与本地仓库的关联关系:git remote add 远程库名字 远程库地址
删除远程仓库与本地仓库的关联关系:git remote rm 远程仓库名
克隆远程仓库到本地:git clone 远程仓库地址
创建远程分支到本地:git checkout -b 远程库名/远程分支名
关联本地分支到远程分支:git branch --set-upstream-to=远程库名/远程分支名 本地分支名
推送本地分支到远程分支:git push 远程仓库名 本地分支名:远程分支名
拉取远程分支的修改到本地分支:git pull
推送指定标签到远程:git push 远程仓库名 标签名
推送所有标签到远程:git push 远程仓库名 --tags
删除远程标签:先删除本地标签,然后执行命令git push origin :refs/tags/标签名
相关推荐
研究是为了理解3 小时前
Git Bash 常用命令
git·elasticsearch·bash
DKPT4 小时前
Git 的基本概念和使用方式
git
Winston Wood7 小时前
一文了解git TAG
git·版本控制
喵喵先森8 小时前
Git 的基本概念和使用方式
git·源代码管理
xianwu5439 小时前
反向代理模块
linux·开发语言·网络·git
binishuaio11 小时前
Java 第11天 (git版本控制器基础用法)
java·开发语言·git
会发光的猪。12 小时前
如何在vscode中安装git详细新手教程
前端·ide·git·vscode
stewie613 小时前
在IDEA中使用Git
java·git
晓理紫1 天前
使用git lfs向huggingface提交较大的数据或者权重
git
我不是程序猿儿1 天前
【GIT】sourceTree的“当前分支“,“合并分支“与“检出分支的区别
git