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

Git项目版本控制学习

一、工作流程图

在这里插入图片描述

二、本地仓库相关操作

1、第一次使用时,设置用户信息

#设置用户信息
git config --global user.name “用户名”
git config --global user.email “用户邮箱地址”
#检验是否设置成功

2、初始化当前目录为一个git仓库

git init

3、状态转换

git add . (将当前工作区所有文件转换到暂存区)
git commit -m "注释内容"(将当前暂存区所有文件转换到本地仓库)

4、查看修改状态

git status

5、查看提交日志

git log [option]
options:
	--all 显示所有分支
	--pretty=oneline 将提交信息显示为一行
	--abbrev-commit  使得输出的commitId更简短
	--graph 以图的形式显示

6、版本回退

git reset --hard commitID
commitID可以使用git log指令进行查看
git reflog可以看到已经所有提交记录

7、添加文件至忽略列表(对于一些无需使用git管理的文件)

直接在工作目录中创建一个名为 .gitignore 的文件(文件名称固定),列出要忽略的文件模式。

8、分支

8.1、创建分支

#创建分支
git branch 分支名
#切换分支
git checkout 分支名
#创建并切换到该分支
git checkout -b 分支名

8.2、合并分支

git merge 分支名称

8.3、删除分支

#删除分支时需要做各种检查
git branch -d 分支名 
#不做任何检查,强制删除
git branch -D 分支

9、解决冲突

当两个分支上对文件的修改可能存在冲突时,例如同时修改了同一个文件的同一行,这时就需要手动解决冲突,解决冲突步骤如下:

1. 处理文件中冲突的地方
2. 将解决完冲突的文件加入暂存区(add)
3. 提交到仓库(commit)

在这里插入图片描述

三、远程仓库相关操作(基于码云)

1、注册码云,并建立一个仓库

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

2、配置SSH公钥

2.1 本地仓库生成公钥

ssh-keygen -t rsa

然后不断回车,如果之前存在公钥,将会直接自动覆盖

2.2 获取公钥

cat ~/.ssh/id_rsa.pub

2.3 码云设置账户公钥在这里插入图片描述

2.3 验证是否配置成功

ssh -T git@gitee.com

3、操作远程仓库

3.1 添加远程仓库

git remote add <远端名称> <仓库路径>
########
远端名称:默认为origin,取决于远端服务器设置
仓库路径:从远端服务器获取此URL

仓库路径在新建仓库时可以获得
在这里插入图片描述

3.2 查看远程仓库

git remote

4、将本地仓库的内容推送到远端仓库

git push [-f] [--set-upstream] [远端名称 [本地分支名][:远端分支名] ]
##########
(1)如果远程分支名和本地分支名称相同,则可以只写本地分支
git push origin master
(2)-f 表示强制覆盖
(3)--set-upstream 表示推送到远端的同时并且建立起和远端分支的关联联系
(4)如果当前分支已经和远端分支关联,则可以省略分支名和远端名
(5)将分支推送到远端仓库
git push origin 分支名

5、查看本地分支与远程分支的关系

git branch -vv

6、从远程仓库克隆

git clone <仓库路径> [本地目录]
#############
本地目录可以省略,会自动生成一个目录

7、从远程仓库抓取和拉取

git fetch [remote name] [branch name]
#######
抓取指令就是将远端仓库里面的更新都抓取到本地,不会进行合并
git pull [remote name] [branch name]
#######
拉取指令就是将远端仓库的修改拉取到本地并自动进行合并,等同于fetch+merge
如果不指定远端名称和分支名,则拉取所有并更新当前分支

8、解决合并冲突

在这里插入图片描述

四、在IDEA中使用Git

待整理更新


http://www.kler.cn/a/466541.html

相关文章:

  • nginx学习之路-nginx配置https服务器
  • PostgreSQL学习笔记(一):PostgreSQL介绍和安装
  • [论文笔记]Representation Learning with Contrastive Predictive Coding
  • 如何提高软件研发效率?
  • java项目之校园管理系统的设计与实现(源码+文档)
  • 当今世界如何减少暴戾之气和矛盾纷争
  • 【面试AI算法题中的知识点】方向涉及:ML/DL/CV/NLP/大数据...本篇介绍Tensor RT 的优化流程。
  • python pytesseract库,ocr
  • mybatis-plus自动填充时间的配置类实现
  • Time-vulnhub打靶-Chronos
  • Golang的容器化技术深入
  • linux-25 文件管理(三)复制、移动文件,cp,mv
  • Springboot日志打印、SpringBoot集成Log4j2、异步日志
  • 一、数据库 Sqlite3 资料
  • Linux下部署Redis集群 - 一主二从三哨兵模式
  • 计算机网络•自顶向下方法:链路层编址、ARP协议、以太网
  • U盘格式化工具合集:6个免费的U盘格式化工具
  • 【记录】Angr|Angr 标准库函数替换怎么看哪些库函数被Angr支持?
  • Couchbase是不是MPP数据库
  • 学生管理系统springboot+论文源码调试讲解
  • 【Seed-Labs 2.0】Cross-Site Scripting (XSS) Attack Lab (Web Application: Elgg)
  • Python:爬虫基础《爬取红楼梦》
  • Redis Hash哈希
  • 使用Clion在ubuntu上进行交叉编译,并在Linux上远程编译五子棋
  • ABAQUS三维Voronoi晶体几何建模
  • 多台DHCP服务器时的问题讨论