一、Git 是什么?
Git 是一个 开源的分布式版本控制系统,由 Linus Torvalds(Linux 内核之父)于 2005 年 开发,旨在高效管理大型项目的代码版本。它能够记录文件的每一次修改,帮助开发者追踪代码历史、协作开发,并确保代码的稳定性和可追溯性
二.基本流程
- 使用git命令将远程仓库上的文件克隆到本地仓库中
- 从本地仓库中检出文件到工作区(一般都自动完成)
- 将新创建的文件添加到暂存区
- 将暂存区中的内容提交到本地仓库
- 将本地仓库中的内容推送到远程仓库上
三.初始化
git init
对Git进行初始化配置
# 定义当前系统git的使用者名称和邮箱,提交代码时显示的名字和邮箱
git config global user.name "xxx"
git config global user.email "xxx@qq.com"
四.本地仓库
- git init 初始化本地Git仓库(项目) 会在当前目录中创建一个.git目录,用于记录所有的版 本变更信息
- git status 查看本地仓储的文件状态
- git add 文件路径 将文件添加到跟踪列表(暂存区),交 由git托管 A 或 all 或 . 表示添加所有文件,也可以使用*进行 匹配
- git commit 将跟踪列表中的文件提交到本地仓库 m指定提交日志
- git log 查看提交日志 git reset hard 版本id 回退到指定版本 HEAD表示当前的版本
- git reflog 查看所有操作记录 包括被回退的版本id、reset操作等
五.远程仓库
1.git remote add 仓库别名 远 程仓库地址 添加远程仓库地址 仓库别名可以自定义,一般默认使用origin
2.git remote v 查看远程仓库信息 fetch抓取、push推送
3.git remote rm 名称 删除远程仓库地址
4.git push 名称 分支 将本地仓库指定分支推送到远 程仓库 一般为master主分支,默认推送到远程仓库的同名 分支,没有则新建
5.git pull 名称 分支 拉取远程仓库指定分支中新的 数据到本地 会与本地仓库进行merge合并(更新操作,非第一 次)
6.git clone 远程仓库地址 克隆远程仓库的项目到本地 用于从远端下载git项目(第一次)
注意:
git clone和git pull区别:
clone是没有本地仓库时,将远端的整个项目下载过来 pull是有本地仓库时,将远程仓库里 新的数据更新过来,并且与本地代码进行merge合并操作
六.分支Branch
1.git branch 显示所有分支 默认只有master分支
2.git branch 分支名 创建分支
3.git checkout 分支名 切换分支
4.git fetch origin master #将远程 master 分支 下载到本地当前 branch
5.git log -p master ..origin/master #比较本地的master分支和远程 master分支的差别
6.git merge origin/master #分支合并
七.其他
1.git stash save "save message" : 执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别。
2.git stash list :查看stash了哪些存储
3.git stash show :显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}
4.git stash show -p : 显示第一个存储的改动,如果想显示其他存存储,命令:git stash show stash@{$num} -p ,比如第二个:git stash show stash@{1} -p
5.git stash apply :应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply stash@{$num} , 比如第二个:git stash apply stash@{1}
6.git stash pop :命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}
7.git stash drop stash@{$num} :丢弃stash@{$num}存储,从列表中删除这个存储
8.git stash clear :
删除所有缓存的stash
9.git checkout xxxxx(文件名):切 换分支
10.撤销最后一次提交而不丢失更改
git reset --soft HEAD~1
此时更改会回到暂存区,你可以重新提交正确的信息:
git commit -m "正确的提交信息"