首页 >邮件操作 > 内容

关于Git的操做

2023年9月22日 00:21

一,基本概念

1.简介

Git是目前世界上最先进的分布式版本控制系统

git是林大神开发的。

2.git的作用

在这里插入图片描述

3.git的工作机制

工作区 git add 文件 暂存区 git commit 本地版本库

4.仓库的概念

本地仓库:是在开发人员自己电脑上的Git仓库。

远程仓库:是在远程服务器的Git仓库。

好处:跨团队协作

​ 团队内协作

操作

clone:克隆,就是将远程仓库复制到本地

push:推送,就是将本地仓库代码上传到远程仓库

`pull`:拉取,就是将远程仓库代码下载到本地仓库`Commit`:提交,就是将本地工作区代码上传到本地仓库中

优点

容灾能力强

本地版本管理

异地协作

灵活分支

二,安装与配置

1.安装

在这里插入图片描述
其他的全都无脑下一步就可以。
选择Git命令执行环境
在这里插入图片描述
第一种是不和windows的dos窗口混合在一起。
Configuring the line ending conversions
在这里插入图片描述
第一个选项:如果是跨平台项目,在windows系统安装

第二个选项:如果是跨平台项目,在Unix系统安装

第三个选项:非跨平台项目
在这里插入图片描述
在这里插入图片描述
新功能,不稳定,不勾选。

2.配置

1.整一个Git的工作空间

在任意的文件目录下,右键都可以开打Git的命令行窗口——Git Bash Here

2.设置用户名和用户邮箱

git config --global user.name "用户名"git config --global user.email "用户邮箱"

--global 表示全局属性,所有的git项目都会共用属性

查看配置信息:git config --list

在当前登录的系统用户路径下,生成~/.gitconfig隐含文件,里面可以看到刚刚设置的信息。如果不用命令设置,也可以直接打开文件进行设置。

3.相关概念

工作区:包含.git的目录

版本库:.git目录

暂存区:.git/index

分支: Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD
在这里插入图片描述
4.提交git版本库

1.提交缓存区

git add 文件名

2.提交版本库

git commit

需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。一旦提交完后,如果你又没有对工作区做任何修改,那么工作区就是“干净”的。即:nothing to commit (working directory clean)。因为在缓存区没有版本的概念,但是提交到本地版本库就有了版本的概念。

3.其他操作

①用git diff HEAD -- filename命令可以查看工作区和暂存区里面最新版本的区别。

②新建过撤销未add: git checkout -- 文件名

③撤销已add未commit:先git reset HEAD 文件名,再 git checkout -- 文件名

④撤销已add已commit:git reset --hard HEAD^

三,git实战

命令名称命令作用
git init初始化本地库
git config --global user.name 用户名设置用户签名的用户名部分
git config --global user.email 邮箱设置用户签名的邮箱部分
git status查看本地库状态
git add 文件名添加到暂存区
git commit -m “日志信息” 文件名提交到本地库
git reflog查看历史记录
git reset --hard 版本号版本穿梭

基本操作

#初始化git工作目录
git init
#创建一个文件
vim a.txt
#存入本地暂存区
git add a.txt
#存入本地版本库
git commit
#对a.txt文件进行修改
vim a.txt
#对修改后的a.txt重新存入暂存区
git add a.txt
#对修改后的a.txt重新放入本地版本库
git commit
#查看修改历史
git log
#查看文件状态
git status
#查看文件状态并格式化
git status -s
#撤销暂存区的文件
git reset a.txt
#提交并直接加上注释内容
git commit -m "注释内容"


说明

git status

On branch master:表示主分支

Untracked files:表示未跟踪状态

Git工作目录下的文件状态信息:

Untracked 未跟踪(未被纳入版本控制)

Tracked 已跟踪(被纳入版本控制)

Unmodified 未修改状态

Modified 已修改状态

Staged 已暂存状态

这些文件的状态会随着我们执行Git的命令发生变化

红色表示新建文件或者新修改的文件,都在工作区.

绿色表示文件在暂存区

新建的文件在工作区,需要添加到暂存区并提交到仓库区

也可以使用git status –s 使输出信息更加简洁

?? : 表示未跟踪状态


查看日志

git log

git log a.txt 查看文件日志

git log --pretty=online 一行显示

git reflog 查看历史操作


回退

git reset --hard HEAD

一次回退一个版本,一个^代表一个版本数量

git reset --hard HEAD~n

回退n个版本


版本穿梭

git reflog a.txt

查看历史操作

git reset --hard 版本号

回到最新版本


撤销

未add,未commit

vim修改文件,没有add和commit,进行撤销

命令

git checkout -- a.txt

​ 撤销修改(还原原来的文件)

已add,未commit

​ vim修改文件,添加add,但没提交commit,进行撤销

命令

git add a.txt

`git reset`

删除

① 手动拷贝图片java.jpg到工作空间目录,并查看目录列表:ls -l

② 添加:git add java.jpg

③ 提交:git commit -m "新建图片" java.jpg

④ 删除图片:rm java.jpg

⑤ 添加:git add java.jpg

⑥ 提交:git commit -m "新建图片" java.jpg

⑦ 回退:git reset --hard HEAD^

⑧ 文件不是被删除了吗?怎么又回来啦!呵呵…

⑨ 处处留痕:git reflog

在这里插入图片描述

分支

1.分支概念

在使用版本控制工具开发的过程中,同时推进多个任务

2.分支的好处

同时并行推进多个功能开发,提高开发效率

各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。

3.分支操作

命令名称作用
git branch 分支名创建分支
git branch -v查看分支
git checkout 分支名切换分支
git merge 分支名把指定的分支合并到当前分支上

4.创建分支和切换分支图解

master、hotfix其实都是指向具体版本记录的指针。当前所在的分支,其实是由HEAD决定的。

HEAD如果指向master,那么我们现在就在master分支上。

HEAD如果指向hotfix,那么我们现在就在hotfix分支上。

所以切换分支的本质就是移动HEAD指针
在这里插入图片描述

5.在两个不同分支分别做不同修改并合并到主分支图解

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
合并分支时一定是涉及到两个分支。这两个分支一个是“当前所在分支”,一个是“目标分支”。

所以分支合并命令的本质就是把“目标分支”合并到“当前分支”。

版本冲突

如上图所示,我们的分支合并的时候产生了冲突。

1.冲突产生的原因

合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git无法替我们决定使用哪一个。必须人为决定新代码内容。

2.冲突的解决

编辑有冲突的文件,删除特殊符号,决定要使用的内容

添加到暂存区

执行提交(注意:使用git commit命令时不能带文件名)

3.避免冲突

养成良好的操作习惯,先pull在修改,修改完立即commitpush

一定要确保自己正在修改的文件是最新版本的

各自开发各自的模块

如果要修改公共文件,一定要先确认有没有人正在修改

下班前一定要提交代码,上班第一件事拉取最新代码

一定不要擅自修改同事的代码


四,github远程库实战

目前我们使用到的 Git 命令都是在本地执行,如果你想通过 Git 分享你的代码或者与其他开发人员合作。 你就需要将数据放到一台其他开发人员能够连接的服务器上。
在这里插入图片描述
项目的发起者记得邀请一个项目的合作者来协同开发

收到邮件以后点击进入,然后就可以协同开发。
在这里插入图片描述

配置git忽略文件

位置:用户家目录下

1.创建忽略规则文件

git.ignore

# Compiled class file*.class # Log file*.log # BlueJ files*.ctxt # Mobile Tools for Java (J2ME).mtj.tmp/ # Package Files #*.jar*.war*.nar*.ear*.zip*.tar.gz*.rar # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xmlhs_err_pid* .classpath.project.settingstarget.idea*.iml

2.在.gitconfig文件中引用忽略规则文件

[user]name = rootemail = 1972039773@qq.com[core]excludesfile = C:\Users\Administrator\git.ignore

IDEA集成git

1.配置idea的git

在这里插入图片描述

2.初始化本地仓库

在这里插入图片描述

3.添加到暂存区

在这里插入图片描述

4.提交到本地仓库

在这里插入图片描述

5.创建分支

在这里插入图片描述

6.切换分支

在这里插入图片描述

7.合并分支

在这里插入图片描述

8.解决冲突

1.冲突的产生

仍然是同一个文件在同一个位置有不同内容。

2.合并分支
3.看到冲突提示

在这里插入图片描述
这里可以直接点Accept Yours或者Accept Theirs来解决冲突。这代表完全使用我们的内容或完全使用他们的内容。

如果我们想要详细修改冲突内容则点击Close。此时IDEA会提示Resolve

4.点击resolve

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后提交本地库就好了。

在IDEA中集成github

1.保存github账号

在这里插入图片描述

2.分享到github

在这里插入图片描述

3.克隆

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

4.push

在这里插入图片描述

5.pull

在这里插入图片描述
在这里插入图片描述
git推送马云

#git本地库关联马云  git remote ADD origin https://gitee.com/yin_huidong/java_learning_notes.git#git 将本地版本库推送到远程库 git push https://gitee.com/yin_huidong/java_learning_notes.git MASTER

五,git项目实战

1.gitLab配置ssh

1.本地生成ssh公钥

本机执行如下git命令:

ssh-keygen -t rsa -C "1972039773@qq.com"

执行以后,在本机当前用户的家目录下会生成.ssh文件夹
在这里插入图片描述

2.复制里面的公钥,并登录gitlab(这里以码云为例)

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

2.从远程库拉取代码到本地

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

3.创建自己的开发分支

在这里插入图片描述
在这里插入图片描述
此时就已经切换到了你创建好的dev分支。

4.在dev分支编码后并提交到远程库

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

5.将dev分支的代码合并到主分支

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


参考文章:https://blog.csdn.net/weixin_45596022/article/details/108502454

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时候联系我们修改或删除,在此表示感谢。

特别提醒:

1、请用户自行保存原始数据,为确保安全网站使用完即被永久销毁,如何人将无法再次获取。

2、如果上次文件较大或者涉及到复杂运算的数据,可能需要一定的时间,请耐心等待一会。

3、请按照用户协议文明上网,如果发现用户存在恶意行为,包括但不限于发布不合适言论妄图

     获取用户隐私信息等行为,网站将根据掌握的情况对用户进行限制部分行为、永久封号等处罚。

4、如果文件下载失败可能是弹出窗口被浏览器拦截,点击允许弹出即可,一般在网址栏位置设置

5、欢迎将网站推荐给其他人,网站持续更新更多功能敬请期待,收藏网站高效办公不迷路。

      



登录后回复

共有0条评论