git指令
《缓存区》--->《暂存区》--->《本地库》
基础
git init 初始化本地仓库
git status 查看当前分支,当前分支暂存区里的文件(绿色),当前分支缓存区里的文件(红色)不提交到暂存区会丢失
--所有增删改操作都需要把缓存区文件添加到暂存区再提交到本地库,否则本地库不会有变化--
touch <文件名.类型> 命令是更新文件的最后修改日期,没有文件就创建
vim <文件名.类型>创建文件并编辑
rm <文件名.类型>删除文件
cat <文件名.类型>查看文件内容
git add <文件名.类型> 将没有提交文件添加到暂存区
git rm --cached <文件名.类型> 将文件从暂存区移除
git commit <文件名.类型> 将暂存区的文件提交到本地库,会弹出一个窗口,写这次提交做了什么事
历史版本
git log查看历史版本
每个哈希值就像一个身份证号是唯一的,对应着唯一的版本
git log --pretty==oneline 以一种简洁的方式输出历史版本(以哈希值+日志信息的方式输出)
git log --oneline 以一种简洁的方式输出历史版本(以部分哈希值+日志信息的方式输出)
git reflog 以一种简洁的方式输出历史版本(以部分哈希值+HEAD@{需要移动的次数}+日志信息的方式输出){推荐使用}
git reset --hard <哈希值(部分也行)>或<当前HEAD> 去到这个版本
比较文件差异
git diff <文件名> 将本地库中的文件和缓存区的进行比较
git diff<本地库中历史版本> <文件名> 将本地库中的文件和本地库历史中的文件比较
分支
git branch -v 查看所有的分支
git branch <分支名> 创建一个名为<分支名>的分支
git checkout <分支名> 切换分支
git checkout -b <分支名> 创建并切换分支
合并分支
合并分支是旧分支合并新分支,所以需要先切换回新分支
git merge <新分支>
远程仓库
git remote add <远程仓库的别名> <远程仓库> 给远程仓库起个别名
git remote rm origin 取消关联远程仓库
git remote -v 查看远程仓库(别名和地址)
推送远程仓库
git push <远程库(别名)> <需要推送的分支> 把 <需要推送的分支> 推送到<远程库(别名)>中
克隆
git clone <远程地址> 完整把远程库下载到本地,创建origin远程地址别名,初始化本地库
拉取
git fetch <远程库(别名)> <远程分支> 本地库的文件并没有变化,因为拉取的文件还在本地缓冲区,在这个阶段可以查看远程库中的文件在决定是否保存在本地,先执行git checkout <远程库(别名)>/<远程分支> 切换到远程分支,再进行查看命令就行
git merge <远程库(别名)>/<远程分支> 当前分支合并远程分支
git push <远程库(别名)> <远程分支> ==git fetch <远程库(别名)> <远程分支> +git merge <远程库(别名)>/<远程分支>