网站首页 > 博客文章 正文
介绍
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-03-14 看了这篇,我确定你已经彻底搞懂Git了
- 2025-03-14 学不会你打我!保姆级 Git 入门教程,万字长文详解
- 2025-03-14 10分钟掌握Git常用命令,做一名有知识的程序员
- 2025-03-14 你必须知道的Git的34个命令(git命令大全(非常齐全))
- 2025-03-14 Git使用的小技巧(git的使用超详细版教程)
你 发表评论:
欢迎- 05-21上传图片到cloudflare r2
- 05-21wordpress通过代码实现百度主动推送和实时推送
- 05-21百度实时推送代码解决方案
- 05-21Elasticsearch的路由routing的应用技巧
- 05-21技巧:PHP版本怎样隐藏在Linux服务器
- 05-21Python 进阶-day24: API 开发
- 05-21kubectl常用删除命令
- 05-21HTTP 的常见头字段有哪些?说说它们的作用
- 377℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 372℃用AI Agent治理微服务的复杂性问题|QCon
- 364℃初次使用IntelliJ IDEA新建Maven项目
- 356℃Maven技术方案最全手册(mavena)
- 353℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 351℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 351℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 346℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)