Git常见命令--助力开发

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操作。

相关推荐
AC使者2 分钟前
介绍 TensorFlow 的基本概念和使用场景。
开发语言·自然语言处理·sqlite·github
Struggle Sheep7 分钟前
容器化部署tomcat
java·tomcat
JustHappy17 分钟前
「我们一起做组件库🌻」做个面包屑🥖,Vue的依赖注入实战💉(VersakitUI开发实录)
前端·javascript·github
爱吃南瓜的北瓜1 小时前
Maven之jjwt依赖爆红
java·pycharm·maven
土豆儿@1 小时前
java之泛型
java·开发语言
橘猫云计算机设计1 小时前
基于SSM的《计算机网络》题库管理系统(源码+lw+部署文档+讲解),源码可白嫖!
java·数据库·spring boot·后端·python·计算机网络·毕设
菜鸟一枚在这2 小时前
深度解析建造者模式:复杂对象构建的优雅之道
java·开发语言·算法
桃林春风一杯酒2 小时前
HADOOP_HOME and hadoop.home.dir are unset.
大数据·hadoop·分布式
gyeolhada2 小时前
2025蓝桥杯JAVA编程题练习Day5
java·数据结构·算法·蓝桥杯
菜鸟一枚在这2 小时前
深入理解设计模式之代理模式
java·设计模式·代理模式