当前位置: 首页 > news >正文

命令行——Git基本操作总结

介绍

我们的操作使用的是客户端TortoiseGit 操作的git ,实际上底层依旧是使用的命令行帮我们执行, 在早期 git 并没有窗口化工具,开发人员只能使用命令行模式

实际上,如果你掌握并熟练使用了命令行模式操作git 的话,你会发现某些操作命令行比窗口化操作要简单

所有你在工作中会发现高深的技术人员可能会喜欢命令行模式提交git

环境配置

当安装Git后首先要做的事情是设置用户名称和email地址。这是非常重要的,因为每次Git提交都会使用该用户信息

#设置用户信息 
git config --global user.name “itcast”
git config --global user.email “itcast@itcast.cn”
#查看配置信息
git config --list
git config user.name
#通过上面的命令设置的信息会保存在~/.gitconfig文件中

初始化本地仓库 init

# 初始化仓库带工作区
git init
# 初始化仓库不带工作区
git init --bare  

克隆 clone

# 从远程仓库克隆
git clone 远程Git仓库地址 
例如: git clone https://gitee.com/itcast/gittest.git

查看状态 status

# 查看状态
git status 
#查看状态 使输出信息更加简洁
git status –s 

add

# 将未跟踪的文件加入暂存区
git add  <文件名>  
# 将暂存区的文件取消暂存 (取消 add )
git reset  <文件名>  

commit

# git commit 将暂存区的文件修改提交到本地仓库
git commit -m "日志信息"  <文件名>  

删除 rm

# 从本地工作区 删除文件
git rm <文件名>  
# 如果本工作区库误删, 想要回退
git checkout head <文件名>  

命令行--git 远程仓库操作

查看远程

# 查看远程  列出指定的每一个远程服务器的简写
git remote 
# 查看远程 , 列出 简称和地址
git remote  -v  
# 查看远程仓库详细地址
git remote show  <仓库简称>

添加/移除远测仓库

# 添加远程仓库
git remote add <shortname> <url>
# 移除远程仓库和本地仓库的关系(只是从本地移除远程仓库的关联关系,并不会真正影响到远程仓库)
git remote rm <shortname> 

从远程仓库获取代码

# 从远程仓库克隆
git clone <url> 
# 从远程仓库拉取 (拉取到.git 目录,不会合并到工作区,工作区发生变化)
git fetch  <shortname>  <分支名称>
# 手动合并  把某个版本的某个分支合并到当前工作区
git merge <shortname>/<分支名称>
# 从远程仓库拉取 (拉取到.git 目录,合并到工作区,工作区不发生变化) = fetch+merge
git pull  <shortname>  <分支名称>
git pull  <shortname>  <分支名称>  --allow-unrelated-histories  #  强制拉取合并

注意:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal: refusing to merge unrelated histories ),解决此问题可以在git pull命令后加入参数--allow-unrelated-histories (如上 命令)

# 将本地仓库推送至远程仓库的某个分支
git push [remote-name] [branch-name]

命令行-- 分支

# 默认 分支名称为 master
# 列出所有本地分支
git branch
# 列出所有远程分支
git branch -r
# 列出所有本地分支和远程分支
git branch -a
# 创建分支
git branch <分支名>
# 切换分支 
git checkout <分支名>
# 删除分支(如果分支已经修改过,则不允许删除)
git branch -d  <分支名>
# 强制删除分支
git branch -D  <分支名>
# 提交分支至远程仓库
git push <仓库简称> <分支名称>  
# 合并分支 将其他分支合并至当前工作区
git merge <分支名称>
# 删除远程仓库分支
git push origin –d branchName

命令行 --tag

# 列出所有tag
git tag
# 查看tag详细信息 
git show [tagName]
# 新建一个tag
git tag [tagName]
# 提交指定tag
$ git push [仓库简称] [tagName]
# 新建一个分支,指向某个tag
$ git checkout -b [branch] [tag]
# 删除本地tag
$ git tag -d [tag]
# 删除远程tag (注意 空格)
$ git push origin :refs/tags/[tag]

案例

企业中我们是如何开发的

1、入职第一天,管理人员分配/git账号密码 
2、开发人员下载代码即文档/ 根据文档将环境搭建成功
3、团队一般会给你讲讲项目相关的支持
4、你接到第一个需求(或者某个功能,一般要经过沟通,分析,设计...等过程)
5、创建feature分支(一般一个需求对应一个feature,命名格式上标注该需求的id)
6、开发需求,本地测试,提交代码到当前需求对应的feature分支,
一般来讲为了避免将测试代码提交,需要提交前,检查如下步骤1.是否多提交了某个文件,比如测试文件2.是否漏提交文件3.打开每一个应该提交的文件,判断是否多提交了一行代码,是否少提交了一行代码,是否删除了本应该存在的代码 4.检查完毕提交代码
7、合并分支至test分支-- 测试人员会在test分支中测试
8、测试人员测试bug ,开发者在feature分支上继续修改,提交
9、测试人员测试通过 ,test分支会被测试人员合并到develop开发分支,再次测试
10、develop分支最终会被合并到master主分支
http://www.lryc.cn/news/138570.html

相关文章:

  • 验证评估守护关基安全 赛宁数字孪生靶场创新实践
  • R语言09-R语言中的字符函数和分布相关函数
  • pnpm无法加载文件 (解决方法 )
  • 做一个蛋糕店小程序需要哪些步骤?
  • Docker的革命:容器技术如何重塑软件部署之路
  • 【ARM-Linux】项目,语音刷抖音项目
  • Linux驱动开发:技术、实践与Linux的历史
  • # Go学习-Day5
  • 创建型(二) - 单例模式
  • 基于swing的图书借阅管理系统java jsp书馆书籍信息mysql源代码
  • Android相机-HAL-Rockchip-hal3
  • 基于Java+SpringBoot+vue前后端分离华强北商城二手手机管理系统设计实现
  • 【论文阅读】HOLMES:通过关联可疑信息流进行实时 APT 检测(SP-2019)
  • HTML 网页中 自定义图像单击或鼠标悬停时放大
  • 从程序员进阶到架构师再到CTO,该如何破解焦虑?
  • 批量将excel文件转csv文件
  • 实现 CSS 文字渐变色效果
  • C++信息学奥赛1148:连续出现的字符
  • 【笔记】岂不怀归:三和青年调查
  • 使用Mavon-Editor编辑器上传本地图片到又拍云云存储(Vue+SpringBoot)
  • QT使用QXlsx实现对Excel的创建与文字的存取 QT基础入门【Excel的操作】
  • 前端遇到困扰怎么办?10年前端在线帮您解决问题,只需一杯下午茶
  • c#值类型和引用类型
  • 机器学习算法示例的收集;MetaAI编码工具Code Llama;“天工AI搜索”首发实测
  • 大模型一、大语言模型的背景和发展
  • Linux常用命令——dhcpd命令
  • Apache和Nginx各有什么优缺点,应该如何选择?
  • 基于JAVA SpringBoot和UniAPP的宠物服务预约小程序
  • TensorRT推理手写数字分类(三)
  • 创建git项目并提交