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/标签名
相关推荐
&Sinnt&7 小时前
Git 版本控制完全指南:从入门到精通
git·后端
Tiny21410 小时前
多人协同开发时Git使用命令
git
WebGirl11 小时前
代码Revert后再次Merge会丢失的问题
git
小皮侠16 小时前
nginx的使用
java·运维·服务器·前端·git·nginx·github
HalukiSan17 小时前
如何提交PR
git·gitlab·github
爱莉希雅&&&1 天前
shell编程之awk命令详解
linux·服务器·git
baiyu331 天前
成为git砖家(12): 看懂git合并分支时冲突提示符
git
wu_aceo1 天前
将本地项目提交到Gitee
git·gitee·提交·本地提交·上传git
随便取个六字2 天前
GIT操作 学习
git·学习
星源~2 天前
tree 命令集成到 Git Bash:可视化目录结构的指南
git·单片机·物联网·嵌入式·项目开发