git常用指令
git bash的使用
- git init——初始化仓库
- git clone——克隆仓库
使用ssh连接github.com【参考: 绑定GitHub并提交文件 - 知乎 】
安装ssh,输入
ssh判断是否安装
ssh-keygen -t rsa生成公钥,复制公钥并添加到github的*SSH keys*中
ssh -T git@github.com检测是否成功
- git remote- -v——显示已添加仓库
- remove origin——删除已关联的仓库
- add origin 仓库地址
 
- ( - git checkout -b 分支名——创建并切到分支 )
- git status——显示未暂存的修改或未跟踪的文件(新创建)
- git add——将文件添加到缓存区- 具体文件或- .
 
- git ls-files——查看暂存区- –cached 或 -c:显示缓存区中的文件,这是 git ls-files 命令的默认参数
- –modified 或 -m:显示已修改的文件
- –deleted 或 -d:显示已删除的文件
- –other 或 -o:显示未被 Git 跟踪的文件
 
- git rm——清除文件- -r——recursive removal递归删除
- -f——override the up-to-date check强制删除
- --cached <file>——only remove from the index只清除缓存区具体文件
 
- git reset [--soft | --mixed | --hard] [HEAD]——撤销所有暂存的更改- --mixed为默认,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。- $ git reset HEAD^ # 回退所有内容到上一个版本,同HEAD~1,以此类推 $ git reset HEAD^ hello.php # 回退 hello.php 文件的版本到上一个版本 
 $ git reset 052e # 回退到指定版本
- --soft参数用于回退到某个版本- $ git reset –soft HEAD~3 # 回退上上上一个版本,同HEAD^^^,以此类推 
- --hard参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交- **注意:**谨慎使用 –-hard 参数,它会删除回退点之前的所有信息。 
- 指定版本——回退到指定版本(- git log获取,所以每次- commit认真写好注释),一般用于删除大文件的提交记录commit,回退版本
 
- git commit- -m "注释内容"——免得- git bash中打开- vim或- VS Code中打开- COMMIT_EDITMSG填写
 
- git log——查看提交历史
- git pull——更新到最新版
- git push- origin 分支名——推送
 
其他
- .gitignore文件的使用- 添加要忽略的文件(所有同名或指定文件或指定规则)或要忽略的文件夹;或加 - !符号变为白名单- 常用于忽略隐私文件、大文件(.zip/.mp4)、二进制文件【会使git追踪的修改过多】(.exe/.jpg)、编译过程文件(.o/.obj…)、日志文件(.log)等 - 参考: Git .gitignore 文件上传过滤配置_git过滤配置-CSDN博客 - 其中有常见的 - .gitignore文件配置
- github多人合作——参考: GitHub 多人队伍合作详细教程_github团队协作-CSDN博客
- github仓库分支改名后本地仓库操作【- github会自动生成代码并提醒】,例如:
2
3
4
git fetch origin
git branch -u origin/cv_car cv_car
git remote set-head origin -a
- 不小心add大文件并已经commit了,在push时才提醒报错
2
3
git reset 版本号(commit大文件前一个版本)
重新add、commit、push
- 清理.git占用空间(参考: 5 个 Git 仓库优化命令 )- git gc [--aggressive]——清理无用对象、压缩空间
- git prune——删除孤立的对象(历史上删除的分支、合并时产生的中间对象…)【一般在执行- git gc前执行;- git reset之后】- -n——显示要删除的对象,不执行删除
 
- git clean——清理工作目录中未跟踪的文件(无参数默认不执行)
- git repack——手动优化仓库存储结构【仓库性能下降;删除分支;定期维护】- [-a][-d][--aggressive]—— 重新打包所有对象 ; 删除未使用的对象文件 ;…
 
- git fsck—— 检查 Git 仓库完整性,检查所有对象是否有损坏的对象或丢失的文件【仓库损坏后检查;大规模仓库操作后;定期检查】
 
VS Code中联机github
侧边栏——源代码管理
- 更改列表- 暂存更改(+)
 
- 提交按钮(commit)【右键可提交同时推送】
- 源代码管理图- 拉取(pull ↓)
- 推送(push ↑)