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/标签名
相关推荐
程序猿chen10 小时前
《JVM考古现场(十六):太初奇点——从普朗克常量到宇宙弦的编译风暴》
jvm·git·后端·程序人生·金融·java-ee·量子计算
死磕java的孤行者12 小时前
Git 分布式版本控制工具
分布式·git·elasticsearch
java搬砖工-苤-初心不变20 小时前
解决 Git 通过 SSH 克隆仓库时自动转换为 HTTPS 的问题
git·https·ssh
Naomi5211 天前
自定义汇编语言(Custom Assembly Language) 和 Unix & Git
服务器·开发语言·git·unix
@BreCaspian1 天前
Git 从入门到精通(开源协作特别版)
git·开源
谢尔登1 天前
【已解决】Webstorm 每次使用 git pull/push 都要输入令牌/密码登录
ide·git·webstorm
紫阡星影2 天前
TortoiseGit多账号切换配置
git·gitee·tortoisegit
予早2 天前
git kex_exchange_identification 相关问题
git
鸠摩智首席音效师2 天前
如何完整迁移 Git 仓库 ?
git
诚诚程程成2 天前
git配置github
git·github