Git常用命令
1. 查看和获取信息
-
查看文件提交信息及获取文件状态版本号:
git cat-file -p 文件版本名 -
获取文件信息:
git cat-file -p 文件状态版本号(tree)//即tree所标识的版本号通过查询tree所标识的版本号,可以获得被查看文件的文件名和后缀,即指向了文件本身
获取文件内容:
git cat-file -p 文件版本号//即二次查询出来的版本号即可查询到文件的内容
-
版本号关联图:
add指令和commit指令下文件存储过程
2. 初始化与克隆
-
初始化本地仓库:
git init -
克隆云端仓库:
git clone 仓库地址 [重命名]
3. 配置
-
配置当前仓库:
用于标识该仓库的作者信息等
git config 配置项 配置值 git config user.name rice git config user.email 12345@163.com配置信息可以在仓库内的.git文件夹下的config文件中查看
-
配置全局:
git config --global 配置项 配置值 //config仅设置当前仓库,加上--global表示所有仓库均进行设置
4. 文件状态和存储过程
-
查看暂存区状态: 将工作区和暂存区进行比对,查看当前是否存在修改后没有提交的文件
git status当我们在代码仓内完成文件的更改时
-
将文件从工作区放到暂存区:
git add 文件名此时我们再次使用 git status命令
发现我们的修改已经被提交
-
将文件从暂存区移动到工作区: 提交了错误文件,取消提交
git rm --cached 文件名重新status查询,发现文件已经被转移至工作区
-
新增文件到存储区:
git commit -m "操作备注"首先要将文件通过 git add 提交到暂存区
随后使用 git commit -m 将文件保存到本地仓库内
5. 查看操作记录
-
查看文件的操作记录:
git log -
一行显示操作记录:
git log --oneline
6. 恢复与重置
-
将文件从存储区返回到工作区: (在commit到本地仓库之前将误删除的文件恢复)
git restore 文件名新建一个文件2 并将该文件通过add提交到暂存区
此时不小心把文件2删除掉
这时候使用git restore 将文件2恢复
如果我们将文件2删除后执行了commit操作
那么使用restore是不能将文件2恢复的
-
重置仓库到指定版本: 回档操作
git reset --hard 上一个版本号
当我们做了一些严重的误操作后,可以将代码仓进行回档
首先通过 git log 获取到提交的hash(commit所表示的值)
这里可以看到我们一共进行了提交和删除两次操作,这时候我们要将本地仓库回档到提交后的时刻(即删除的上一次操作)
commit: 00f874e1609d925f7547ced8a00fa36c79efeb15
使用git reset --hard 00f874e1609d925f7547ced8a00fa36c79efeb15
我们可以看到文件被恢复了
注意:该操作会将提交文件2之后的所有操作全部撤销,并且git log 无法查询到本次reset操作,所以谨慎使用
-
撤销本次提交
git revert 需要撤销的操作的commit号同样的,我们再次删除文件2
使用git revert eca2466d42634020e1d88bf245e1473efe5355bd 可以撤销本次删除操作,比reset安全
7. 分支操作
-
查看分支:
git branch -
创建分支: 如果是用命令行进行的仓库初始化,那么创建分支前需要先手动提交一个文件(随便一个文档即可),在有了主分支后,才可以进行其他分支的创建
git branch 分支名称 -
切换分支:
git checkout 分支名 -
切换并创建分支:
git checkout -b 分支名 -
删除分支:
git branch -d 分支名 -
合并分支:
git merge 分支名分支master中有两个文件,并且文件2中的内容是222
分支test1中有三个文件,并且文件2的内容是222 333
现在我们切换到分支master中,并将分支test1中的内容合并到master中
分支test1的内容被合并到master中
8. 标签操作
-
给操作添加别名标签:
git tag 标签名 版本号使用该hash值时可以用别名 add 进行替代
-
查看当前标签:
git tag -
删除标签:
git tag -d 标签名
9. 远程仓库操作
-
关联远程仓库:
git remote add 自定义名称 远程仓库地址 //可以在.git文件夹下的config文件中查看关联的地址 -
删除远程仓库:
git remote remove 名称 -
修改远程仓库名称:
git remote rename 原名称 新名称 -
上传本地内容到远程仓库:
git push 远程仓库名称远程仓库内仅有index.html一个文件
本地仓库内新增了一个文件
将文件add并commit后,进行push操作
远程仓库中也出现了这个文件
-
拉取远程仓库内容:
git pull 远程仓库名称 分支名称
在远程仓库中修改刚刚上传的文件
提交后,用pull命令,让本地仓库拉取远程仓库中更新后的内容
本地仓库中的1.txt的内容与远程仓库同步
-
加密仓库地址生成秘钥
ssh-keygen -t rsa -C远程仓库的地址有ssh加密的时候,是无法直接push的,需要使用这个命令生成秘钥
秘钥会被保存在本地
找到这个文件夹获取秘钥
我这里使用的是gitee,通过gitee的设置页面,提交ssh公钥,提交公钥后即可向远程仓库中push内容