参考:https://www.bbsmax.com/A/E35pOQlBJv/
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/555294e1bc1636a20f9a208a6f5942f1.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e2a0706e77ecdbd42dbc7cfca7a81f1a.png)
git使用
Git 安装
Windows及Mac操作系统下的安装
Linux操作系统下的安装
Ubuntu
sudo apt-get install git
Centos
sudo yum install git
检验是否安装成功
出现gitbash命令行工具
git --version 查看git版本
git结构和状态
Git的三层结构
working directory 工作区
staging index 暂存区
git directory (Repository)版本库
git中文件的4种状态
untracked
未被追踪的
Modified
表示工作区修改了某个文件,但是还没有添加到暂存区
Staged
表示把工作区修改的文件添加到暂存区,但是没有提交到版本库
Committed
表示数据被安全的存储到本地库中
Git 基本命令
git init
初始化git仓库
出现.git文件
git add
git add filename
将文件添加到暂存区
git add .
将工作目录下的所有修改的文件添加到暂存区
git commit
git commit -m ‘description’
将暂存区内的文件提交到版本库
git commit -am ‘description’
跳过 git add 添加到暂存区命令,直接将工作区所有已跟踪的文件提交到版本库
git log
git status
查看项目文件状态
git config
$ git config --global user.name Hayden
$ git config --global user.email 544989423@qq.com
$ git config --list
Git 撤销操作
git commit --amend
撤销上一次提交,并将暂存区的文件重新提交
git checkout --filename
拉取暂存区的文件并将其替换工作区的文件
注意与 git checkout branchname的区别
git reset HEAD – filename
拉取最近一次提交的版本库中的这个文件到暂存区,该操作不影响工作区
git reset --hard HEAD
拉取最近一次提交到版本库的文件,回到暂存区和工作区
git reset --option 版本号
–hard
将暂存区和工作区回退
–mixed
将版本库和暂存区回退,工作区不变
–soft
将版本库回退,暂存区和工作区不变
Git 文件删除
git rm filename
删除工作区及暂存区中的该文件,相当于删除文件后 执行 git add
git rm --cached filename
在不小心将不需要追踪的文件添加到暂存区,想删除暂存区的文件但是不想删除工作区的文件很有用
git rm -f filename
当工作区或者暂存区文件修改了(同时删除工作区和暂存区的文件)
git mv oldname newname
相当于
1、mv oldname newname
2、git rm oldname
3、git add newname
Git 分支
Git 分支的创建、修改、切换、删除
git branch
查看分支
git branch branchname
创建分支
git branch -m oldname newname
修改分支名称
git checkout [-b] branchname
切换分支
git branch -D branchname
删除分支
分支的合并
分支的指针
HEAD指针指向当前分支
在切换分支时指向新分支
git diff
git diff
比较工作区与暂存区的文件差异
git diff --staged
比较暂存区与版本库的文件差异
git diff 版本号 版本号
比较分支内两个版本之间的文件差异
git diff 分支 分支
比较两个分支的最新提交版本的差异
git merge branchname
合并之前需要先切换到 master分支
快速合并和冲突合并
存储变更
git stash
仅保存工作区的文件,不保存暂存区的文件,并且将版本库的恢复到暂存区和工作区。(暂存区的文件修改会丢失)
git stash list
查看所有保存的记录
git stash apply stash@num
git stash apply 后面不加名字 则应用最近一次的存储信息
git stash drop stash@num
git stash apply只是运用存储的信息,并不删除它。drop命令可以删除它
远程仓库
github 上的仓库
git push 远程仓库地址 分支名
git pull 远程仓库地址 分支名
远程服务器上的仓库
git init --bare
创建一个裸露的仓库
git remote add name path
给远程仓库起个别名
git remote rm name
移除
git remote rename oldname newname
重命名
git remote -v
查看所有
git fetch
将远程分支指针,指向最新版本
git merge
合并远程分支和本地分支
git diff --check
检查是否存在合并标记
git ssh 免密登录
ssh-keygen
ssh-copy-id user@host
将本机的公钥复制到远程服务器的authorized_keys文件中
如果不是自己的服务器,可以将本地的公钥发送给服务器管理员,添加在authorized_keys文件后面
Git 帮助文档的使用
git help
git help command
官方文档地址
https://git-scm.com/docs