网站首页 > 精选文章 正文
介绍
Git(读音为/gt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理,也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
特点
分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。
- 生成补丁(patch),把补丁发送给主开发者,主开发者可以审核合并内容。
- 速度快,灵活,能很好的保留各个阶段修改内容。
- 离线工作,等有网了再提交修改内容。
- 分布式开发,强调个体。
- 在自己的机器上根据不同的开发目的,创建分支,修改代码,写好代码后提交代码。
使用
克隆仓库
# 克隆仓库到一个新目录
git clone $git_url
初始化仓库
# 设置为仓库
git init
# 设置并创建使用名为$branch的分支,$branch需要修改为指定的,例如Main,master
git init -b $branch
# 设置要提交的远程地址,$git_url为具体地址
git remote add origin $git_url
# 拉取分支内容
git pull origin $branch
# 如果上面出现报错,有可能原来的分支有内容了,需要进行下面的操作
git branch --set-upstream-to=origin/$branch $branch
git config pull.rebase true
git pull
# 提交代码
git add .
git commit -m $commit
git push -u origin $branch
切换/创建分支
# 查看分支
git branch
# 创建分支
git branch $branch
# 切换分支
git checkout $branch
# 创建+切换分支
git checkout -b $branch
# 合并某分支到当前分支
git merge $branch
# 删除分支
git branch -d $branch
# 删除远程分支
git push --delete origin $branch
# 查看远程分支
git branch -r
# 查看所有分支
git branch -a
提交代码
git pull
合并分支
在Feature分支,进行开发完成后,将修改内容合并到Master分支。rebase可以保留提交的修改内容。
git rebase master
使用merge进行合并分支(不推荐)
git merge master
设置
# 设置名字和邮件地址
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
# 设置代理
git config --global https.proxy http://127.0.0.1:1087
git config --global https.proxy https://127.0.0.1:1087
# 取消代理
git config --global --unset http.proxy
git config --global --unset https.proxy
其他使用
# 查看git推送统计的代码行数
git log --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -
git log --author="Lucifer" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s ", add, subs, loc }' -
added lines: 3909, removed lines: 372, total lines: 3537
# 查看仓库提交者排名前 5
git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 5
# 贡献者统计:
git log --pretty='%aN' | sort -u | wc -l
# 提交数统计:
git log --oneline | wc -l
猜你喜欢
- 2025-09-01 在大型项目中如何使用Git子模块开发,看完涨姿势了
- 2025-09-01 初学者指南:直观理解 MCP 架构_mcm架构
- 2025-09-01 总结几个常用的Git命令的使用方法
- 2025-09-01 告别分支切换噩梦:Git Worktree让多任务并行开发效率提升300%
- 2025-09-01 Git 操作流程_git的操作命令
- 2025-09-01 git常用命令整理_git常用操作命令 简书
- 2025-09-01 Git常用命令及操作指南_git的基本操作命令
- 2025-09-01 GitCode的一些命令_git下代码命令
- 2025-09-01 第三章:Git分支管理(多人协作基础)
- 最近发表
-
- 安防方案系统图制作利器——浙江大华图标库元素版V1.0
- 如何在Eclipse中搭建Zabbix源码的调试和开发环境
- 【FFmpeg笔记】 从零开始之滤镜_ffmpeg入门教程
- Zabbix的智能运维体系建设实践,超详细Zabbix安装部署详情
- Linux 命令总结,建议收藏_linux命令大全chm版
- 《ChangeFolderIcon v1.0.4:文件夹图标的定制化解决方案》
- 谷歌浏览器 Chrome 100 正式版发布:图标有变
- 轻松DIY一个专属个人网盘_轻松diy一个专属个人网盘下载
- 精品博文配置编译 及测试QT/Embedded 环境
- 乌克兰最高拉达通过法案,禁止在乌使用字母“Z”和“V”
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)