Git常见命令--助力开发

news/2025/2/23 14:55:53

git常见命令:

创建初始化仓库:

git 将文件提交到暂存区

git add 文件名

将文件提交到工作区

git commit -m "注释(例如这是发行的版本1)" 文件名

查看状态

如果暂存区没有文件被提交显示:

$ git status
On branch master
nothing to commit, working tree clean

如果暂存区有文件

$ git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   Demo03.txt
​
git status

查看日志:

git log

出现的日志信息:

这个就是一时间为标准,由近到远的记录。

对于log他的展示方式和作用有很大的可操作性:

//历史记录过多是,会出现分屏的的效果
下一页:空格
上一页:b
最后一页会显示:end
退出:q

其他的日志展示方式:

  • git log

  • git log --pretty=oneline

  • git log --oneline

  • git log reflog

  • reset:前进或者是后退命令

    git reset --hard ****** 就是直接返回指定版本 这个是工作区,暂存区,本地代码仓库都会变。hard是最常用的

  • 演示效果:

  • 使用命令返回到aaa阶段:

  • mixed参数: 本地库的指针移动的同时,重置暂存区,但是工作区不动

    soft参数:

    本地库的指针移动的时候,暂存区,工作区都不动

删除文件:

使用命令rm:

直接演示删除的是test.txt文件:

之久就是将操作同步到暂存区和本地库:

将删除的文件开始恢复:

通过这个操作其实我们是可以发现我们的返回时返回的这个时间点,所以文件也是根据时间点截取的。

总结: git diff [文件名] ---》 将工作区中的文件和暂存区中文件进行比较

git diff --->比较工作区中和暂存区中 所有文件的差异

git diff 历史版本 ---》比较暂存区和本地库中内容

分支:

查看分支: git branch -v

创建分支:git branch branch1

切换分支:

git checkout branch1

合并分支并处理冲突:git merge chanch1

出现冲突,因为是在同一个文件的同一行出现的文件修改问题,解决的方法是公司内部沟通解决。

注意现在显示的是合并中,需要将解决之后的文件重新提交。

这个最终的提交是能带有文件的名字的

创建远程库:

使用的是gitHub 他创建远程库的时候,只是按着图形化界面就可以了。

https://github.com/Time-Passer-By-HDK/GitResp2.git这是你自己的远程库的地址。但是这个地址有点长,所以我们的git提供了起别名的方式,

别名:git remote add origin https://www.github/time-passer-by-HDK/GitResp2.git (origin他只是一个别名,这个随便)

fetch:根据这个地址获取数据

推送操作:

push:根据这个地址推送数据

推送:git push origin master (一个是远程库的别名,一个是推送的分支的选择)

克隆操作:

git clone +https://地址

就是将远程操作的数据拉取到本地

并且会为我们创建别名。

邀请加入团队:

如果不是团队中的人,是不可以直接提交代码的,需要项目负责人的拉取,现在拉取的方式还在查找。

如果我们修改之后我们的本地库的数据和远程代码仓库是不一样的,所以就要再次拉取数据.

拉取分为两步:

fetch操作:

git fetch origin master

fetch 这个是抓取的操作,他就只是将数据进行了读取,将文件下载到本地,可以直接合并。并没有直接将数据放置到咱们的工作区。

抓取之后可以去远程库去查看文件时候抓取成功:

git checkout origin/master

如果发现内容正确,就开始合并操作。

merge操作:

其实上面的两部合起来就是pull操作:

git pull origin master

如果是比较慎重的操作的话还是建议使用上面发步的操作,如果代码比较简单可以直接简单的使用pull操作

协同开发操作时的解决冲突的方式(这个是针对一个分支的不同的人的操作):

就是如果是两个人对同一位置进行操作的话,就会产生这个冲突,

如果是冲突的话就是先将远程的拉取下来,在进行修改和上传

还是拉取下来之后认为的选择,之后再上传,只要是解决重入的再commit提交时都是不带文件名的。

跨团队操作:

如果是B公司与A公司合作,首先是将A公司的数据放到自己的远程库中,如果是B的员工提交代码的话,休要A的项目负责人审核。

B公司员工做的事情:

  1. 进入到账号之后,将A公司的项目的地址输入,之后点击fork操作

  2. 之后就会出现这个项目,再将这个项目克隆到本地。

  3. 之后就可以开始自己的工作了

  4. 之后就是将代码提交到自己的远程库(B公司的)

  5. 之后就是直接再github操作创建一个新的请求,让A公司审批

  6. A的项目负责人审核

现在我们每次的push操作因为再windows系统中因为是有这个凭据管理器,所以不需要每次都输入密码,但是如果是别的系统的话,每次的提交都是需要输入密码的,这个其实是很不方便的。

在实际开发中,我们使用的是SHH的方式:

这个需要我们自己的设置也解决这个问题,

1.首先是进入到用户的主目录中 其实就是~ 这个目录,指令时cd ~

2.之后是执行命令生成一个.shh目录

ssh-keygen -t rsa -C 2827571574@qq.com

输入命令之后进行三次的回车确认,这个其实就是让你去选择使用他的默认值。

之后就会出现这个文件夹

3.打开文件id_rsa.pub文件,将里面的内容直接复制。

4.打开GitHub,将内容放置到Settings里面。

 

5.生成密钥之后,开始正常的操作,就是正常的起别名,之后提交什么的

IDEA集成操作:

在使用这个提交时显示错误:

$ git push origin_SHH master ssh: connect to host github.com port 22: Connection timed out fatal: Could not read from remote repository.  Please make sure you have the correct access rights and the repository exists.

解决方案:

如果没有配置文件就自己写一个:

vim config

创建一个配置文件,之后换一个端口使用。

Host github.com
User git
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443
​
Host gitlab.com
Hostname altssh.gitlab.com
User git
Port 443
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
​

保存退出之后检查是否成功:

这个问题就解决了。

IDEA整合GIT

将Git整合:

将本地库初始化:

点击VCS 之后开始选择创建的工具:

发现文件中已经有了git文件

在创建文件之后弹出窗口,询问时候添加到仓库中:

注意之后是将这个项目添加到暂存区,之后就是简单的提交

在控制台查看数据:

查看日志:

现在只是将代码提交到本地库,并没有提交到远程库,所以现在需要将代码提交到远程库,但是我们还是使用刚刚的远程库的话,就会出现一个问题,这两个库是相关的库,所以在拉取时,他的语法是:

git pull origin master --allow-unrelated-histories 哪个别名随便用,可以直接是地址

git push -u origin master -f 这是推送的命令,添加-f 就是直接覆盖

通过命令之后就可以发现现在的文件夹中出现了所有的文件。

现在信息就是同步的了。

一般在开发中都是先拉取,在进行push操作。

项目中的克隆操作:

在实际开发中我们都是先将项目经理的项目克隆到本地,之后再对于代码进行开发和编写

使用idea的话如何解决版本冲突:

如果出现冲突,会先让你合并,这个具体还是让人选择。这里会出现选项,让开发者选择是选择你的还是选择别人的,这个具体的选择的方式就是自己做主了。

但是如何避免冲突呢:

一般在开发中都是先拉取,在进行push操作。


http://www.niftyadmin.cn/n/5863501.html

相关文章

cs106x-lecture14(Autumn 2017)-SPL实现

打卡cs106x(Autumn 2017)-lecture14 (以下皆使用SPL实现&#xff0c;非STL库&#xff0c;后续课程结束会使用STL实现) 1、min Write a function named min that accepts a pointer to a ListNode representing the front of a linked list. Your function should return the …

基于ffmpeg+openGL ES实现的视频编辑工具-添加转场(九)

在视频编辑的广阔领域中,转场效果无疑是提升视频流畅性与观赏性的关键要素。巧妙运用转场,能够让不同视频片段之间的衔接更为自然,同时赋予视频独特的创意魅力。本文将深入探讨如何借助 ffmpeg 和 openGL ES 技术,在视频编辑工具中实现丰富多样的转场效果。 一、转场技术原…

DeepSeek最新开源动态:核心技术公布

2月21日午间&#xff0c;DeepSeek在社交平台X发文称&#xff0c;从下周开始&#xff0c;他们将开源5个代码库&#xff0c;以完全透明的方式与全球开发者社区分享他们的研究进展。并将这一计划定义为“Open Source Week”。 DeepSeek表示&#xff0c;即将开源的代码库是他们在线…

使用LangChain构建第一个ReAct Agent

使用LangChain构建第一个ReAct Agent 准备环境 使用Anaconda 安装python 3.10 安装langchain、langchain_openai、langchain_community &#xff08;安装命令 pip install XXX&#xff09; 申请DeepSeek API&#xff1a;https://platform.deepseek.com/api_keys&#xff08;也…

[ComfyUI]Recraft贴图开源方案,实现服装印花自由

一、介绍 今天发现了一个简单又好用的插件&#xff0c;可以实现类似Recraft的贴图功能&#xff0c;这是一个作者开发的ComfyUI插件&#xff0c;叫做Comfyui-Transform 这个插件比我们简单的图像覆盖多了一些可控参数&#xff0c;形状、透明度、倾斜、拉升和混合模式等诸多可控…

前端八股——JS+ES6

前端八股&#xff1a;JSES6 说明&#xff1a;个人总结&#xff0c;用于个人复习回顾&#xff0c;将持续改正创作&#xff0c;已在语雀公开&#xff0c;欢迎评论改正。

CSS按钮点击效果实战:scale(0.95) 与10个交互动画优化指南

[TOC](CSS按钮点击效果实战&#xff1a;scale(0.95) 与10个交互动画优化指南) 导语 在现代 Web 开发中&#xff0c;细腻的交互效果是提升用户体验的关键。通过简单的 CSS 动画&#xff08;如 transform: scale(0.95)&#xff09;&#xff0c;无需 JavaScript 即可实现高效、流…

解析多模态、Agent与Code模型的演进

引言&#xff1a;AI大模型的技术分化与融合 随着大模型技术的爆发&#xff0c;AI领域正在经历从“单一模态专用”到“多模态通用智能”的进化。**多模态模型&#xff08;Multimodal Models&#xff09;**彻底打破了人类感知与表达的界限&#xff0c;Agent模型赋予了AI自主决策…