IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> git办公常用使用场景 -> 正文阅读

[开发工具]git办公常用使用场景


git作为开发中常用代码版本控制工具,本文主要列举实际开发工作中使用git进行项目管理的常见场景,开始之前,默认已经配置好了本地git和已经创建了github账号,有gitlab或者gerrit也是可以的,底层都是走的git协议,操作起来大同小异。演示Idea版本为IntelliJ IDEA 2022.1 (Community Edition),不同idea版本在git使用上差异很小。

场景1:将新创建项目提交到github托管

(1)首先在本地新创建一个项目git-test,默认不加入idea托管。
在这里插入图片描述在这里插入图片描述

(2)初始化git

git init # 初始化git项目,默认项目名字是master

在这里插入图片描述

(3)根据自己需要,可以在.idea/.gitignore中添加target,这样就不用应用编译文件加入到代码控制中。

在这里插入图片描述

(4)将工程中所有文件使用git进行版本控制

git add . # 将工程中所有文件暂时放入到缓存区中
git commit -m '项目加入到版本控制' # 提交文件到本地仓库

(5)在github上创建一个新的项目(github从01/10/2021,仓库默认名字由master改为main)

(6)将本地分支和远程分支进行关联,并将本地项目推到远程分支

git branch -m main # 将本地master 分支名字修改为main,和要关联的本地分支一致
git remote add origin https://github.com/ChangBinHu/git-test.git # 和远程分支建立关联
git pull --rebase origin main # 远程仓库有README.md,拉取一下
git push -u origin main # 本地分支推到远程分支

在这里插入图片描述
在这里插入图片描述

note:在git push的时候,需要输入Username和Password,Username是https://github.com/XXXX/git-test.git//路径中的XXXX部分,Password是github中个人token,从2021年8月13日,github将通过个人密码登陆修改为通过个人token登陆,个人token生成方式

1.git --version    #查看版本
2.git config --global init.defaultBranch main   #git在2.28.0上,重新设置git默认分支为main

新项目使用git管理过程总结:

(1)git --version    #查看版本
(2)git config --global init.defaultBranch main   #git在2.28.0上,重新设置git默认分支
(3)创建本地工程项目,git init # git初始化
(4)git add . #工程所有文件加入版本控制
(5)git commit -m 'xxxxx提交信息' # 将工程中文件提交到本地git仓库
(6)github个人主页中创建远程仓库
(7)git branch -m main  #如果没有执行(1)(2)步,需要将本地master分支名字修改为main
(8)git remote add origin https://github.com/ChangBinHu/git-test.git(修改为自己的远程仓库地址)# 上一步创建的远程仓库建立连接
(9)git pull --rebase origin main #将远程仓库创建时,默认创建的README.md拉取到本地
(10)git push -u origin main #将本地分支推到远程仓库main中

操作结束之后,git log为:
在这里插入图片描述

场景2:修改最近的一次commit

当完成一次代码的编写,写完了commit进行了提交,提交之后,经过别人Code Review之后,给出了建议,进行了修改,因为没有大的修改,所以希望继续使用上次commit的内容,不再提交新的commit,换句话说,就是向上次commit中追加内容。当然一次请求中可以包含多次commit,但是只能对最后一次commit进行修改。

例如:新增两个数相除接口,编写完成之后进行提交,Code Reviewer给出建议没有对除数为零进行判断,重修修改自己的代码进行修改,修改上次commit,再次提交。

(1)git pull# 从远程仓库中获取当前分支的最新代码
(2)编写两个数相除的代码
(3)git add . # 添加当前目录下所有内容到暂存区
(4)git commit -m 'ADD:两个数相除'#提交代码到本地仓库
(5)git push # 提交代码到远程仓库
(6)Code Reviwer完成,提出修改意见,根据修改意见进行修改
(7)git add . #将修改内容添加到暂存区
(8)git commit --amend #修改最近一次commit,这个过程中会让进入到commit内容编辑界面,如果不需要修改直接退出(:q)就行
(9) git push # 将本地库内容同步到远程库

每次Commit提交的原则,修改代码应该大小适中,内容可以清晰表达本次修改内容,一次提交内容太多,给Code Reviewer造成困难,粒度太小,会造成Commit的滥用。

场景3:提交代码解决冲突

在提交代码时,会提示本地分支落后于远程分支,也就是我们常说的代码冲突,发生冲突的原因是本地编辑过程中,有其他开发者修改了远程分支并进行了提交。如果在本地在原来分支上修改了内容,这种情况在push时并不会产生冲突,进行异常冲突的覆盖,git将这种操作认为是对分支的正常修改,本地修改内容会直接覆盖远程分支内容。

解决方式1:提交之前先拉取远程分支,将远程分支和本地分支进行合并。

(1)使用idea 的update Project功能,会从远程分支拉去最新代码,并进行比较,现实冲突内容,按照提示解决冲突进行。
(2)git add .
(3)git commit -'XXXX'
(4)git push

场景4:切换一个新的分支&分支合并

工作中,修复一个bug或者进行新的功能迭代开发,一般需要创建一个新的分支,bug修复完成或者新迭代开发完成之后,再将分支和主分支进行合并。

(1)git checkout -b   'xxx'# xxx是新分支的名字,创建xxx分枝并同时切换到该分支
(2)git push -u origin 'XXX' [git push --set-upstream origin 'XXXX']# 创建并关联远程分支,XXX是要关联远程分支的名字,一般和上一步新创将本地分支名字一致
(3)在当前分支上进行修改
(4)提交本地修改到远程分支(git add . | git commit -m 'xxx'| git push)
(5)git checkout main #切换到主分支
(6)git pull #获取主分支最新代码
(7)git merge 'xxx' # 合并xxx到当前主分支 
(8)git push #将合并好的当前主分支推到远程仓库

note:如果合并过程中有冲突,使用intellij 的图形化界面进行合并,此处冲突和提交代码中的冲突定义一致。

存在问题

(1)目前gitHub访问不稳定,在拉取和提交gitHub代码的时候,出现gitHub无法访问(LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443),多重试几次可以解决。

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 11:40:32  更:2022-05-05 11:42:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/14 14:59:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码